Commit graph

91 commits

Author SHA1 Message Date
cschlaefke
a9a7990636 chore: merge main into feature/2a-game-cover
All checks were successful
CI / flutter (pull_request) Successful in 1m20s
CI / web-build (pull_request) Successful in 55s
CI / supabase (pull_request) Successful in 9s
CI / supabase-tests (pull_request) Successful in 34s
CI / e2e (pull_request) Successful in 2m54s
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:07:46 +01:00
cschlaefke
13db8ebb9c fix(l10n): regenerate localizations after ARB key order
All checks were successful
CI / flutter (pull_request) Successful in 1m16s
CI / web-build (pull_request) Successful in 1m0s
CI / supabase (pull_request) Successful in 4s
CI / supabase-tests (pull_request) Successful in 32s
CI / e2e (pull_request) Successful in 2m56s
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 19:48:13 +01:00
4536e4d027 Merge pull request 'feat(catalog): Katalog-Fundament, Rechte und Startbestand-Werkzeug (KAT-05, 2a Backend)' (#53) from feature/2a-katalog-datenmodell into main
All checks were successful
CI / flutter (push) Successful in 1m20s
CI / web-build (push) Successful in 59s
CI / supabase (push) Successful in 8s
CI / supabase-tests (push) Successful in 31s
CI / e2e (push) Successful in 2m51s
Reviewed-on: #53
2026-11-03 18:46:42 +00:00
cschlaefke
9952efa2fe test(catalog): address review findings on PR 2a
All checks were successful
CI / flutter (pull_request) Successful in 1m28s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 9s
CI / supabase-tests (pull_request) Successful in 34s
CI / e2e (pull_request) Successful in 3m2s
Replace tests that could not fail (manual_fields stability, no-op update), select runbook games by id, add grant matrix and forged-admin tests, assert vocabulary seeding and Deno checksum in CI, clarify the set local convention and API notes.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 18:18:32 +01:00
cschlaefke
52cbd79fb4 feat(catalog): run checks.sql in CI and document seed loader result
Adds the checks.sql smoke step, the verified CLI result for generated seed content and the created_at/updated_at note for the API.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 16:40:55 +01:00
cschlaefke
24b27c3776 docs(catalog): add catalog runbook, data model and README updates
Includes the checked CLI assumptions (sql_paths, begin/commit) and implementation notes in the spec.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 15:38:28 +01:00
cschlaefke
9dbafbcad7 feat(catalog): add starting-stock tool, vocabulary proposal and CI checks
Deno script validates vocabulary.csv and startbestand.csv and generates the idempotent SQL, key list and checks.sql. startbestand.csv stays header-only; vocabulary.csv is a proposal pending approval (C0). seed.sql no longer inserts genres and mechanics.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 15:38:28 +01:00
cschlaefke
3c762003b2 feat(catalog): add catalog foundation migration with pgTAP tests
Sources, publishers, hidden/merged columns, manual_fields triggers, catalog_games view and column grants on games (KAT-05, PR 2a). Fixtures for the tests are generated from supabase/catalog/testdata.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 15:38:28 +01:00
cschlaefke
f99c82b1e0 feat(catalog): address review of GameCover (labels, tests, spec notes)
Some checks failed
CI / flutter (pull_request) Failing after 51s
CI / web-build (pull_request) Successful in 1m1s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 2m50s
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 15:26:38 +01:00
cschlaefke
8a68d4f449 feat(catalog): add GameCover widget with uniform placeholder
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 15:18:48 +01:00
79e06fbfe9 Merge pull request 'fix(ci): Fork-PR-Risiko für den docker-host-Runner dokumentieren (ADR-0003)' (#50) from fix/43-ci-fork-pr-guard into main
All checks were successful
CI / flutter (push) Successful in 1m26s
CI / web-build (push) Successful in 1m2s
CI / supabase (push) Successful in 4s
CI / supabase-tests (push) Successful in 36s
CI / e2e (push) Successful in 2m57s
Reviewed-on: #50
2026-11-03 14:15:18 +00:00
982a689b7f Merge pull request 'docs(catalog): Spec für KAT-05 Katalogdaten (freigegeben)' (#51) from docs/2-kat05-spec into main
Some checks failed
CI / web-build (push) Waiting to run
CI / supabase (push) Waiting to run
CI / supabase-tests (push) Waiting to run
CI / e2e (push) Blocked by required conditions
CI / flutter (push) Has been cancelled
Reviewed-on: #51
2026-11-03 14:15:11 +00:00
b77146eabf docs(catalog): mark design choices W1, W4, W6, W7, H1, H2, H7 as confirmed
All checks were successful
CI / flutter (pull_request) Successful in 1m16s
CI / web-build (pull_request) Successful in 56s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Successful in 2m45s
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 14:07:21 +00:00
6dd5854eab docs(catalog): address re-review of KAT-05 spec and record clarification N15
All checks were successful
CI / flutter (pull_request) Successful in 1m14s
CI / web-build (pull_request) Successful in 55s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 2m51s
Visibility is immutable, variant copying is derived from visibility,
startbestand idempotency and vocabulary handling are defined, and the
edition deviation from KAT-04 criterion 4 is recorded as N15.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 14:02:17 +00:00
8c57e05458 docs(catalog): address review findings on KAT-05 spec
All checks were successful
CI / flutter (pull_request) Successful in 1m18s
CI / web-build (pull_request) Successful in 56s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Successful in 2m51s
Variants are no longer copied when repointing provisional entries,
all PRs only reference #2, grants, idempotency, checks and merge
rules are spelled out.

Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:35:40 +00:00
c0f832fd1d docs(catalog): record approval and decisions F1-F9 in KAT-05 spec
All checks were successful
CI / flutter (pull_request) Successful in 1m18s
CI / web-build (pull_request) Successful in 56s
CI / supabase (pull_request) Successful in 4s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Successful in 2m51s
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:15:52 +00:00
074118db69 docs(catalog): note default privileges, studio role and schema test count
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:08:49 +00:00
34eaab12e1 docs(catalog): add technical spec for KAT-05 catalog data
Refs #2

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:02:24 +00:00
cschlaefke
6c4e2cc2e9 docs(ci): align auth-konfiguration guard wording with ADR-0003
All checks were successful
CI / flutter (pull_request) Successful in 1m21s
CI / web-build (pull_request) Successful in 58s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 32s
CI / e2e (pull_request) Successful in 3m1s
Refs #43

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:59:02 +01:00
cschlaefke
25610c1ec9 docs(ci): correct guard rationale and unverified claims in ADR-0003
Refs #43

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:58:09 +01:00
cschlaefke
501310f43b docs(ci): verify fork-PR approval logic and correct runner advice in ADR-0003
Refs #43

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:51:46 +01:00
cschlaefke
666ba64fcc fix(ci): document fork-PR risk for docker-host runner and guard supabase-tests
Add ADR-0003 with Forgejo 8.0.3 options and a step-by-step guide for
runner/Forgejo settings, correct the misleading guard comments in ci.yml
and apply the comfort guard to supabase-tests too.

Refs #43

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:50:25 +01:00
455b3bf708 Merge pull request 'fix(auth): Semantics-Knoten im breiten Layout trennen (a11y Web)' (#48) from fix/41-semantics-split into main
All checks were successful
CI / flutter (push) Successful in 1m16s
CI / web-build (push) Successful in 55s
CI / supabase (push) Successful in 4s
CI / supabase-tests (push) Successful in 32s
CI / e2e (push) Successful in 4m11s
Reviewed-on: #48
2026-11-03 12:32:33 +00:00
cschlaefke
ffc30db2e5 fix(auth): address review findings for semantics split
All checks were successful
CI / flutter (pull_request) Successful in 1m14s
CI / web-build (pull_request) Successful in 53s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Successful in 2m56s
Refs #41

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:17:09 +01:00
cschlaefke
eb63636fd9 test(e2e): click buttons via getByRole instead of keyboard helper
Removes pressFirstButton; the web build now exposes real button nodes.

Refs #41

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:07:01 +01:00
cschlaefke
cda9417353 fix(auth): keep heading, text and button as separate semantics nodes in the wide card
Card is a semantics container without explicitChildNodes, so on >= 600 dp
(web/tablet) title, text and button folded into one node. AppFormScaffold now
wraps the card content in Semantics(explicitChildNodes: true).

Refs #41

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 13:07:01 +01:00
d8f47f0827 Merge pull request 'fix(auth): SMTP-Fehler wie Erfolg behandeln (Konten-Seitenkanal, F13)' (#47) from fix/37-smtp-neutral into main
All checks were successful
CI / flutter (push) Successful in 1m15s
CI / web-build (push) Successful in 56s
CI / supabase (push) Successful in 3s
CI / supabase-tests (push) Successful in 32s
CI / e2e (push) Successful in 3m5s
Reviewed-on: #47
2026-11-03 11:58:11 +00:00
cschlaefke
97222ebb5b chore(auth): regenerate generated files after doc comment changes
All checks were successful
CI / flutter (pull_request) Successful in 1m13s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 2m54s
Refs #37

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 12:38:42 +01:00
cschlaefke
3805c71225 fix(auth): address review findings for smtp-neutral handling
Some checks failed
CI / flutter (pull_request) Failing after 44s
CI / web-build (pull_request) Successful in 51s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 29s
CI / e2e (pull_request) Successful in 2m44s
Refs #37

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 12:24:25 +01:00
cschlaefke
de093b68ed docs(auth): renumber SMTP risk to R17 (R16 was taken)
Refs #37

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 12:03:11 +01:00
cschlaefke
7d094a6732 fix(auth): treat SMTP failures like success on enumeration-sensitive calls
Refs #37

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 12:03:04 +01:00
f8774359ee Merge pull request 'chore(mcp): Outline-MCP per OAuth statt API-Key-Header' (#45) from chore/44-outline-mcp-oauth into main
All checks were successful
CI / flutter (push) Successful in 1m20s
CI / web-build (push) Successful in 54s
CI / supabase (push) Successful in 3s
CI / supabase-tests (push) Successful in 33s
CI / e2e (push) Successful in 2m45s
Reviewed-on: #45
2026-11-03 10:57:09 +00:00
cschlaefke
083035d2d7 chore(mcp): use OAuth for the Outline MCP server
All checks were successful
CI / flutter (pull_request) Successful in 1m17s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 35s
CI / e2e (pull_request) Successful in 3m9s
Refs #44

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 11:54:31 +01:00
3a9af3b96b Merge pull request 'chore(mcp): Outline-MCP als Projekt-Server einbinden' (#40) from chore/39-outline-mcp into main
All checks were successful
CI / flutter (push) Successful in 1m14s
CI / web-build (push) Successful in 53s
CI / supabase (push) Successful in 3s
CI / supabase-tests (push) Successful in 32s
CI / e2e (push) Successful in 2m56s
Reviewed-on: #40
2026-11-03 10:42:59 +00:00
0f7eee80a9 Merge pull request 'test(auth): KTO-01 Playwright-E2E (api, web, throttle) und CI-Job e2e' (#42) from feature/38-auth-e2e into main
Some checks failed
CI / web-build (push) Waiting to run
CI / supabase (push) Waiting to run
CI / supabase-tests (push) Waiting to run
CI / e2e (push) Blocked by required conditions
CI / flutter (push) Has been cancelled
Reviewed-on: #42
2026-11-03 10:42:01 +00:00
cschlaefke
15ccae2b52 ci(e2e): seed mail templates in dind before supabase start
All checks were successful
CI / flutter (pull_request) Successful in 1m15s
CI / web-build (pull_request) Successful in 56s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 4m34s
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 11:16:13 +01:00
cschlaefke
354fdd4e41 ci(e2e): provide mail templates under remote docker daemon
Some checks failed
CI / flutter (pull_request) Successful in 1m12s
CI / web-build (pull_request) Successful in 53s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Failing after 53s
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 11:09:21 +01:00
cschlaefke
aa421b12b0 test(auth): address review findings for e2e
Some checks failed
CI / flutter (pull_request) Successful in 1m15s
CI / web-build (pull_request) Successful in 53s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Failing after 3m56s
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:55:27 +01:00
cschlaefke
da8305c12d ci(e2e): address review findings
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:53:32 +01:00
cschlaefke
23816377a5 ci(e2e): add Playwright e2e job on docker-host with throttle GoTrue and artifacts
Some checks failed
CI / flutter (pull_request) Successful in 1m15s
CI / web-build (pull_request) Successful in 54s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Failing after 4m3s
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:45:17 +01:00
cschlaefke
ec2d45c319 docs(auth): document E2E setup and SMTP outage spike result
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:42:28 +01:00
cschlaefke
d390b60bd6 test(auth): add web E2E tests for KTO-01 criteria 1-10 against the Flutter web build
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:42:28 +01:00
cschlaefke
2542679797 test(auth): add throttle and SMTP-down spike projects, start-throttle-gotrue.sh
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:30:15 +01:00
cschlaefke
f302c56904 test(auth): add Playwright project with api tests for KTO-01 (GoTrue, Mailpit, db helper)
Refs #38

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:29:18 +01:00
cschlaefke
b04a655d15 chore(mcp): add Outline MCP server to project config
All checks were successful
CI / flutter (pull_request) Successful in 1m22s
CI / web-build (pull_request) Successful in 57s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 32s
Refs #39

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 10:24:28 +01:00
6bcbaff95a Merge pull request 'feat(auth): KTO-01 Passwort zurücksetzen (01c) (4/4)' (#36) from feature/1-01c-passwort-reset into main
All checks were successful
CI / flutter (push) Successful in 1m18s
CI / web-build (push) Successful in 1m5s
CI / supabase (push) Successful in 3s
CI / supabase-tests (push) Successful in 32s
Reviewed-on: #36
2026-11-03 09:21:43 +00:00
cschlaefke
7c2f684098 fix(auth): address review findings for password reset
All checks were successful
CI / flutter (pull_request) Successful in 1m13s
CI / web-build (pull_request) Successful in 55s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 30s
Finish the recovery guard only after the password change, mark the change
in the repository so a late userUpdated event is harmless, keep the form
locked after success, carry from through the reset check-email page,
share the password error texts and focus the continue button.

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:58:31 +01:00
cschlaefke
3b2995463e docs(auth): document 01c deviations, reset mode route and AppBanner actionEnabled
Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:50:42 +01:00
cschlaefke
fd4183c202 fix(auth): restore the reviewed success text for the password change
Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:50:42 +01:00
cschlaefke
87c0d7d1ec feat(auth): add password reset (forgot password, recovery link, new password)
ForgotPasswordScreen with neutral reaction (F12), CheckEmail reset mode on
its own path, recovery link handling and ResetPasswordScreen with the
recovery guard held until the user confirms the success message. Carries
the from parameter between login, register and forgot password. Removes
the route placeholders.

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:47:03 +01:00