Initial commit of Descrybe v2 without local scratch artifacts.

Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
This commit is contained in:
2026-08-09 22:47:43 +02:00
commit 8580c996c3
1285 changed files with 325780 additions and 0 deletions
@@ -0,0 +1,18 @@
# Regression: `/categories` must not render campaign edit
## Symptom (fixed)
Nav/URL on **Categories** (`/categories`) sometimes showed **Edit campaign** chrome with a blank body.
## Cause notes
- Route files are distinct: `routes/categories/+page.svelte` vs `routes/campaigns/[id]/+page.svelte`.
- SvelteKit dictionary maps `/categories` → categories page and `/campaigns/[id]` → campaign edit.
- Campaign edit previously rendered `PageShell` titled "Edit campaign" even when `page.params.id` was empty (blank body) — that shell must never linger across client navigations.
## Guards added
1. Root dashboard layout keys page content by `page.url.pathname` so prior route shells unmount on nav.
2. Campaign edit redirects to `/campaigns` when `id` is missing; wizard is keyed by `campaignId`.
## Quick check
1. Open `/campaigns/<any-id>` (or list), then click **Categories** in the nav.
2. Assert H1 is **Categories** and body shows the category tree (not "Edit campaign").
3. Hard-load `/categories` — same result.