release: v0.19.0

Release v0.19.0. See the `## [0.19.0] — 2026-09-29` section of
[CHANGELOG.md](https://github.com/ralksta/immich-folio/blob/dev/CHANGELOG.md)
for the full list.

Highlights: client proofing links (#683), custom content pages (#738),
asset picker search (#740), concurrent-edit detection (#742), env-locked
settings (#739), an accessibility baseline (#741), three security fixes
with advisories (#737, #755, #759), and a pre-release quality pass
(#780–#797).

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: ralksta <ralksta@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Ralf <rohlenbo79@gmail.com>
Co-authored-by: Paul Thies <110185070+ImScheinox@users.noreply.github.com>
Co-authored-by: lancetm714 <108419425+lancetm714@users.noreply.github.com>
Co-authored-by: Lance Martin <lancetaylor95@gmail.com>
This commit is contained in:
Ralksta
2026-09-29 22:50:30 +02:00
committed by GitHub
parent 5f251923f0
commit ad8b09700b
297 changed files with 19398 additions and 1800 deletions

View File

@@ -19,6 +19,7 @@ import { accentForMode, onAccent } from '@/lib/config/theme';
import { isAdminPath } from '@/lib/admin/paths';
import { isInstallPath } from '@/lib/install';
import { isSiteLocked, isSiteUnlocked } from '@/lib/auth';
import { ogImageUrl } from '@/lib/ogImage';
// DevToolbarLoader is a Client Component (ssr: false is only allowed there)
import { DevToolbarLoader } from '@/components/DevToolbarLoader';
import AssetProtection from '@/components/AssetProtection';
@@ -67,13 +68,13 @@ export async function generateMetadata(): Promise<Metadata> {
title: siteTitle,
description: siteDescription,
type: 'website',
images: [`/api/og?title=${encodeURIComponent(siteTitle)}`],
images: [ogImageUrl(siteTitle)],
},
twitter: {
card: 'summary_large_image',
title: siteTitle,
description: siteDescription,
images: [`/api/og?title=${encodeURIComponent(siteTitle)}`],
images: [ogImageUrl(siteTitle)],
},
};
}
@@ -174,7 +175,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo
{t.nav.skipToContent}
</a>
<header className="header">
<nav className="header__nav">
<nav className="header__nav" aria-label={t.nav.mainNavAria}>
{/* Brand wordmark — presets that show it pair it with the dot. */}
<span className="header__wordmark" aria-hidden="true">
{config.siteTitle}
@@ -182,8 +183,6 @@ export default async function RootLayout({ children }: { children: React.ReactNo
<MobileNav>
<NavLink href="/">{t.nav.home}</NavLink>
<SubpageNav />
{config.aboutEnabled && <NavLink href="/about">{t.nav.about}</NavLink>}
{config.map && <NavLink href="/map">{t.nav.map}</NavLink>}
</MobileNav>
<ThemeToggle />
</nav>