refac: migration crash, real-database tests, site deleted during create, ruels out of the repo, lists

This commit is contained in:
Florian Sylvain committed 2026-11-03 05:06:04 +01:00
1 parent 680b9a1308
commit 9d284e65a9
62 files changed
+1858 -987

No files matched your search

+12 -5
View File
@@ -6,7 +6,7 @@ Baseline imported 2026-10-31 and refreshed 2026-11-01 (completion pass) from `.c
For localization, use this document for integration rules and corrections, `localization-tables.md` (generated from `source/locale-spec.js`) for the product tables, `screens/localization-*.md` and `states.md` for the state inventory, and `localization-corrections.md` for what the last design pass rendered, inspected and left open. Use `source/LocaleFrame.dc.html` for layout and rendered copy. This document supersedes conflicting board notes and older title/slug assumptions. Existing accepted `features/` behavior remains binding until a new accepted slice explicitly changes it. Report any remaining conflict at specification time; do not silently change behavior to match a mockup.
Imported sources are the Localization board, LocaleFrame, locale-spec.js, locale-fixtures.js (the single fixture set every list, count and pager derives from), and LocalizationShell. LocalizationShell is a snapshot of the exporter’s AppFrame with the optional editor-header slots and width option added, renamed only in LocaleFrame's import. Existing AppFrame and other board sources were not overwritten. Do not introduce a second application shell in production: continue using DashboardShell and existing editor components.
Imported sources are the Localization board, LocaleFrame, locale-spec.js, locale-fixtures.js (the single fixture set every list, count and pager derives from) and `localization-changelog.md` (state IDs and copy changed by the third pass). Since the third pass (2026-11-03), LocaleFrame draws inside the shared AppFrame, which gained optional editor-header slots and a width option; LocalizationShell is gone. Do not introduce a second application shell in production: continue using DashboardShell and existing editor components.
The LocaleLive prototype was deliberately not imported. The Prototype and Handoff boards remain unchanged and do not demonstrate localization. This written handoff replaces the missing localization handoff, not the missing interactive prototype. No rendered visual parity, keyboard flow, browser console check or production test is claimed by this import.
@@ -82,7 +82,7 @@ Content revision changes include title/body/excerpt/slug/alt/SEO/social text. Au
## Visual validation and implementation gaps
The board contains 15 groups and 169 states (L6 and L9 are release 2). Screen files map stable IDs to exported selectors. Markups are illustrations, not production accessible controls. Implement actual Nuxt UI input/menu/tab behavior. Retain the full existing editor toolbar; the shortened mockup toolbar does not authorize removing features.
The board contains 16 groups and 183 states (L6 and L9 are release 2). L7s (single-language list) replaces the old Back-office Articles groups as the list's pixel-gate reference. Screen files map stable IDs to exported selectors. Markups are illustrations, not production accessible controls. Implement actual Nuxt UI input/menu/tab behavior. Retain the full existing editor toolbar; the shortened mockup toolbar does not authorize removing features.
The existing visual checker must be extended to discover localization's groups, state tables and 1024px reference where needed, with scoped fixtures and API mocks. Do not claim `task visual:check` can already verify the import. No threshold increases or exceptions are authorized. Clock-sensitive skips only apply to states whose rendering actually depends on current time, not whole features containing dates.
@@ -109,10 +109,17 @@ Settle these during specification of the slice named, before coding.
| Topic | Gap | Slice |
| --- | --- | --- |
| Setup route | The route is `/settings/sites/:key/languages/setup` but the page lists every site, and the proposed setup API is global. Decide one global page reached from a per-site banner, or a per-site page. | Languages and setup |
| Article-level delete copy | The design uses "article" for the whole group of translations and for a single version. "Delete article" must say it removes all translations, and the dialog names the readable languages. Needs a copy change in the frames. | Editor |
| Conflict dialog weight | "Save over theirs" and "Reload theirs" have equal weight. Add a destructive cue to "Save over theirs". Needs a frame change. | Editor |
| Visual coverage | About 45 of the 169 states were rendered and inspected by the designer (see `localization-corrections.md`). Icons were never checked. Unseen frames may be broken; the visual check will reveal them. | All SPA slices |
| Visual coverage | About 45 of the original 169 states were rendered and inspected by the designer (see `localization-corrections.md`). Icons were never checked. Unseen frames may be broken; the visual check will reveal them. | All SPA slices |
| Header widths | Editor header widths between 1024 and 1440 are specified, not drawn. The checker captures 1440, 1024 and 390 only. | Editor |
| Mobile Languages rows | Rows are taller than needed. Tune in implementation. | Languages and setup |
| Partial fixtures | Archive, Notes and Gallery exist only as single states. | Languages and setup |
| Mobile list page 2 | The designer could not reproduce the overflow-chip and tab-strip issue on mobile page 2; they removed a stray character and gave the "+N" chip a 44 px tap area. Check it against the app. | Article list |
## Third-pass decisions (2026-11-03)
- No Languages item in the sidebar. Languages is reached from Settings → Sites → [site] → Languages, and from the setup banner.
- Mobile list rows show the version count on its own line.
- The Public URL pattern preview uses the site's default language (Journal previews the English address).
- A deleted source and an unreadable source show the same message after submit: "The source isn't available to you".
- "Save over theirs" is an error-coloured outline button with a warning icon; Keep my changes stays the only filled button.
- "Delete article" is atomic: on failure nothing is removed and every version stays.