diff --git a/src/app/app/layout.tsx b/src/app/app/layout.tsx
index b3dcec9..1077edd 100644
--- a/src/app/app/layout.tsx
+++ b/src/app/app/layout.tsx
@@ -1,16 +1,7 @@
"use client";
-import { usePwaMode } from "@/lib/use-pwa-mode";
import { PwaShell } from "@/components/pwa-shell";
export default function AppLayout({ children }: { children: React.ReactNode }) {
- const { isPwa } = usePwaMode();
-
- // In installed PWA mode, ConditionalShell already wraps everything in PwaShell.
- // Only apply PwaShell here when browsing /app in a regular browser tab.
- if (isPwa) {
- return <>{children}>;
- }
-
return {children};
}
diff --git a/src/app/app/more/page.tsx b/src/app/app/more/page.tsx
index 798bfa7..6e27119 100644
--- a/src/app/app/more/page.tsx
+++ b/src/app/app/more/page.tsx
@@ -49,7 +49,7 @@ export default function AppMorePage() {
@@ -69,12 +69,12 @@ export default function AppMorePage() {
href="https://github.com/sparshsam/openproof"
target="_blank"
rel="noreferrer"
- className="flex items-center gap-4 rounded-2xl border border-border-default bg-bg-surface p-4 transition hover:border-accent/50"
+ className="flex items-center gap-4 p-2 -mx-2 rounded-xl transition hover:bg-accent/5"
>
-
+
GitHub
Source code, issues, and contribution guide
@@ -100,9 +100,23 @@ export default function AppMorePage() {
- OpenProof v0.9.3 · AGPL-3.0
+ OpenProof v0.9.4 · AGPL-3.0
+ {/* Kovina wordmark — visible on all devices */}
+
+
{/* Footer spacer for bottom nav on mobile */}
diff --git a/src/components/conditional-shell.tsx b/src/components/conditional-shell.tsx
index 309d135..2e9dd56 100644
--- a/src/components/conditional-shell.tsx
+++ b/src/components/conditional-shell.tsx
@@ -26,7 +26,7 @@ export function ConditionalShell({ children }: { children: React.ReactNode }) {
}
}, [isPwa, pathname, router]);
- // After hydration: use PWA-aware routing (may differ from SSR)
+ // After hydration: use PWA-aware routing
if (hydrated && isPwa) {
// While redirecting from / → /app, show a minimal placeholder
if (pathname === "/") {
@@ -36,10 +36,17 @@ export function ConditionalShell({ children }: { children: React.ReactNode }) {
);
}
+ // /app routes: AppLayout provides PwaShell — pass through
+ if (pathname.startsWith("/app")) {
+ return <>{children}>;
+ }
+ // Non-/app routes: wrap in PwaShell here
return
{children};
}
// Before hydration OR browser mode: pathname-based routing (matches SSR)
+ // /app routes: AppLayout always provides PwaShell
+ // Non-/app routes: AppShell provides the website layout
const isAppRoute = pathname.startsWith("/app");
if (isAppRoute) {
return <>{children}>;