Close out the read-only surface before cutover with three families of
small fixes that the previous phases left unfinished:
- Error boundaries: add src/app/error.tsx (route-segment), global-error.tsx
(root crash fallback with its own minimal html/body — no Providers
dependency since those may be the thing that crashed), and not-found.tsx
for a Hebrew 404 instead of the default Next page.
- Accessibility: wire usePathname() into AppShell so the current nav item
gets aria-current="page" and a gold underline. Add aria-label + aria-hidden
on the icon-only buttons that Phase 5 left text-less (corpus trash,
parties-field Plus). Nav gets an aria-label of its own.
- Metadata template: title on each route now reads "X · עוזר משפטי" via
the layout.tsx title.template. Description localized to Jerusalem.
- README: full E2E smoke test checklist covering all 9 screens, plus a
backend contract table so future phases know which hook wraps which
endpoint. Documents the known Gitea→Coolify webhook issue.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>