cschlaefke
3135ed6381
docs(db): Meldungen (KAT-04) in Datenmodell, Katalogpflege, README und Umsetzungs-Nachtrag
...
Refs #13
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 19:16:31 +01:00
cschlaefke
0826c97471
test(db): Policy- und Fehlerpfade für KAT-04 nachgeschärft (Refs #13 )
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 19:14:15 +01:00
cschlaefke
7186cddac5
feat(db): Fehlendes Spiel melden – Migration, RPCs, RLS und pgTAP-Tests (KAT-04, 13a)
...
Refs #13
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 19:11:20 +01:00
694a66689d
Merge pull request 'docs(adr): Betriebsregel „Fork-PR-Läufe nie freigeben“ (ADR-0003)' ( #60 ) from docs/43-adr-0003-betriebsregel into main
...
CI / flutter (push) Successful in 1m29s
CI / web-build (push) Successful in 59s
CI / supabase (push) Successful in 8s
CI / supabase-tests (push) Successful in 32s
CI / e2e (push) Successful in 2m59s
Reviewed-on: #60
2026-11-04 17:53:39 +00:00
cschlaefke
a9ef27779d
chore: merge main into docs/43-adr-0003-betriebsregel
...
CI / flutter (pull_request) Successful in 1m22s
CI / web-build (pull_request) Successful in 56s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Successful in 3m1s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 18:30:13 +01:00
cc9d0aa191
Merge pull request 'feat(catalog): Katalogsuche in der App (KAT-01, 3b App)' ( #63 ) from feature/3b-katalog-suche-app into main
...
CI / flutter (push) Successful in 1m30s
CI / web-build (push) Successful in 57s
CI / supabase (push) Successful in 8s
CI / supabase-tests (push) Successful in 32s
CI / e2e (push) Successful in 2m59s
Reviewed-on: #63
2026-11-04 17:29:11 +00:00
4f5e314b96
Merge pull request 'fix(e2e): Throttle-Test „zweite IP“ toleriert Nachfüllrate' ( #66 ) from fix/65-throttle-test-zweite-ip into main
...
CI / e2e (push) Blocked by required conditions
CI / flutter (push) Successful in 1m37s
CI / web-build (push) Successful in 1m6s
CI / supabase (push) Successful in 11s
CI / supabase-tests (push) Has been cancelled
Reviewed-on: #66
2026-11-04 17:26:14 +00:00
cschlaefke
245c059458
fix(e2e): zweite-IP-Drosselungstest toleriert Nachfuellrate des Limiters
...
CI / flutter (pull_request) Successful in 1m16s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 10s
CI / supabase-tests (pull_request) Successful in 36s
CI / e2e (pull_request) Successful in 2m54s
Laufzeit der 30 Versuche messen und bis zu refillTolerance(elapsed) weitere
Versuche zulassen, bis 429 kommt (wie im ersten Test der Datei).
Refs #65
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 11:07:02 +01:00
cschlaefke
6020801fff
chore: merge main into feature/3b-katalog-suche-app
...
CI / flutter (pull_request) Successful in 1m19s
CI / web-build (pull_request) Successful in 56s
CI / supabase (pull_request) Successful in 9s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 3m0s
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 11:06:16 +01:00
19f2e676b0
Merge pull request 'feat(catalog): Katalogsuche Backend – RPC, Normalisierung, alternative Titel (KAT-01, 3a Backend)' ( #64 ) from feature/3a-katalog-suche-backend into main
...
CI / flutter (push) Successful in 1m33s
CI / web-build (push) Successful in 1m12s
CI / supabase (push) Successful in 8s
CI / supabase-tests (push) Successful in 32s
CI / e2e (push) Successful in 2m51s
Reviewed-on: #64
2026-11-04 10:04:03 +00:00
21ed0588eb
Merge pull request 'feat(auth): Anmelde-Einstieg auf der Startseite ( #49 , PR A)' ( #62 ) from feature/49a-anmeldung-einstieg into main
...
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: #62
2026-11-04 10:03:40 +00:00
cschlaefke
9fa91eb684
fix(db): single filter set, filter tests with query, perf guards, evidence docs (KAT-01, 3a review)
...
CI / flutter (pull_request) Successful in 1m19s
CI / web-build (pull_request) Successful in 57s
CI / supabase (pull_request) Successful in 11s
CI / supabase-tests (pull_request) Successful in 38s
CI / e2e (pull_request) Successful in 2m59s
Filters are evaluated once into an id set used by both search branches.
Adds tests for age/genre/mechanic filters with a search term, rank 2 vs 3
and null p_limit. approxNormalize uses NFKD. Perf script checks confirm_local
value and unix socket and re-analyzes after rollback. Adds
docs/specs/3-katalog-suche-umsetzung.md (measurements, log check incl. GET
finding), release checklist section 2a and the CSV-only note for alt titles.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 10:39:02 +01:00
cschlaefke
668fdf1705
fix(catalog): map 22003 and 22P02 to invalidInput
...
CI / flutter (pull_request) Successful in 1m21s
CI / web-build (pull_request) Successful in 54s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 35s
CI / e2e (pull_request) Successful in 2m54s
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 10:39:01 +01:00
cschlaefke
354206c766
Merge remote-tracking branch 'origin/main' into feature/3a-katalog-suche-backend
2026-11-04 10:31:07 +01:00
cschlaefke
25212929ce
feat(catalog): review fixes for catalog search
...
CI / flutter (pull_request) Successful in 1m46s
CI / web-build (pull_request) Successful in 59s
CI / supabase (pull_request) Successful in 12s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 2m54s
Word limit and no-retry state for rejected input, nested /catalog route for
system back, logger filter for supabase libs, more mutation-proof tests,
doc fix, umlaut-aware term sorting, thousands separators. Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 10:17:54 +01:00
cschlaefke
c8bbd10d37
test(db): pin runbook 8.2 queries and QUE-04 log assumptions in pgTAP (KAT-01, 3a)
...
Adds the unchanged runbook queries (rolconfig, pg_available_extensions,
pg_settings) and asserts the settings that keep search terms out of logs.
katalog-pflege 8.2 now states that the three log settings depend on each other.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 10:06:46 +01:00
cschlaefke
ae099eb3d7
feat(catalog): labeled start page button, prune unknown term IDs from the URL
...
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 09:59:54 +01:00
cschlaefke
0cbe813e5b
docs(db): document search, alt titles and image-upgrade check (KAT-01, 3a)
...
datenmodell-r1, supabase README and katalog-pflege (alt titles, merge step 2b,
normalization check after image upgrades, rate limit and log hints).
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:40:43 +01:00
cschlaefke
729e51620c
test(db): add local search measurement script (KAT-01 B5)
...
supabase/perf/catalog_search_perf.sql loads synthetic data in one rolled-back
transaction and measures search_catalog_games as anon with RLS (explain and
p50/p95/p99 per case). Lives outside supabase/tests so it never runs in CI.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:40:43 +01:00
cschlaefke
683b5c830e
perf(db): set-based rank 4 and filters in search_catalog_games, harden tests (KAT-01, 3a)
...
Rank 4 and the genre/mechanic filters ran a correlated subplan per game
(13 s at 10 000 games). Now: one set-based word coverage, filters as one hashed
IN set, 'like all' patterns, similarity only for hits. Adds pgTAP cases found
by mutation testing (paging by relevance, alt title choice, duplicate words,
mechanic duplicates) and a Deno case for mark characters.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:40:43 +01:00
2fa797020a
Merge pull request 'docs(catalog): Spec für KAT-01 Spiele suchen (Issue #3 )' ( #59 ) from docs/3-kat01-spec into main
...
CI / flutter (push) Successful in 1m23s
CI / web-build (push) Successful in 1m3s
CI / supabase (push) Successful in 8s
CI / supabase-tests (push) Successful in 33s
CI / e2e (push) Successful in 2m59s
Reviewed-on: #59
2026-11-04 00:30:08 +00:00
bb0d584f66
Merge pull request 'docs(catalog): Spec für KAT-04 Fehlendes Spiel melden (Issue #13 )' ( #58 ) from docs/13-kat04-spec into main
...
CI / flutter (push) Waiting to run
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
Reviewed-on: #58
2026-11-04 00:29:51 +00:00
220dfd195d
Merge pull request 'docs(auth): Spec für Anmelde-Einstieg und App Links (Issue #49 )' ( #55 ) from docs/49-mobil-login-spec into main
...
CI / flutter (push) Waiting to run
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
Reviewed-on: #55
2026-11-04 00:29:41 +00:00
66655b19a1
Merge pull request 'docs: Release-Checkliste (D1) mit checks.sql, Zugang, Auth/SMTP und Runner' ( #54 ) from docs/d1-release-checkliste into main
...
CI / flutter (push) Waiting to run
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
Reviewed-on: #54
2026-11-04 00:29:28 +00:00
cschlaefke
2d18a49fc2
fix(catalog): keyboard reach of the result list, tab order, stable select focus
...
Tiles are tab stops again, tab order is search field, filters, list (also
with the side bar), selects keep focus after a choice. Failure kind is
logged with stable names. Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:25:23 +01:00
cschlaefke
7eaed46dc2
test(auth): address review findings on sign-in prompt (PR A)
...
CI / flutter (pull_request) Successful in 1m38s
CI / web-build (pull_request) Successful in 1m38s
CI / supabase (pull_request) Successful in 13s
CI / supabase-tests (pull_request) Successful in 35s
CI / e2e (pull_request) Successful in 2m58s
Correct the focus comment (refs #61 ), test Space key and focus state,
prove scrollability at 200 percent text, drop needless minWidth, English
doc comment, allow OutlinedButton as secondary action in standalone cards,
English prompt text says plays instead of games.
Refs #49
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:25:22 +01:00
76d54adbd1
Merge pull request 'feat(catalog): Meldungen und Sichtbarkeitsschutz (KAT-05, 2c)' ( #57 ) from feature/2c-katalog-meldungen into main
...
CI / flutter (push) Successful in 1m38s
CI / web-build (push) Successful in 1m29s
CI / supabase (push) Successful in 11s
CI / supabase-tests (push) Successful in 38s
CI / e2e (push) Successful in 4m17s
Reviewed-on: #57
2026-11-04 00:18:36 +00:00
cschlaefke
80b548819b
docs(design): list components and catalog search behavior
...
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:18:23 +01:00
cschlaefke
3b66f4afb0
test(catalog): widget, a11y, URL sync and controller tests for catalog search
...
KAT-01 Kriterium 1-6 and 8, QUE-05, QUE-06. Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:18:23 +01:00
cschlaefke
28404edd10
fix(catalog): check auto-load also on size changes
...
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:18:23 +01:00
9a1d216f40
Merge pull request 'feat(catalog): Spiele zusammenführen per Admin-Funktion (KAT-05, 2b)' ( #56 ) from feature/2b-katalog-zusammenfuehren into main
...
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: #56
2026-11-04 00:17:33 +00:00
cschlaefke
976fbe9fe1
feat(db): startbestand tool reads alt_titles column (KAT-01, 3a)
...
Parses de:Title;en:Title (';' forbidden in titles, errors with line number),
generates an idempotent reconcile for game_alt_titles, adds an info row to
checks.sql and attaches alternative titles to Testspiel B. Regenerated files.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:12:25 +01:00
cschlaefke
3bb1c28831
feat(db): catalog search with search_normalize, alt titles and search_catalog_games RPC (KAT-01, 3a)
...
Adds pg_trgm/unaccent, search_normalize, generated title_search/name_search
columns, game_alt_titles (read-only for API roles), manual_fields key
alt_titles and the RPC search_catalog_games. pgTAP 09_catalog_search covers
rights, normalization, relevance, filters, paging and the runbook snippets.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:12:25 +01:00
cschlaefke
0775152870
feat(catalog): catalog search feature with domain, data layer, controller and screen
...
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:08:51 +01:00
cschlaefke
ffa264f827
docs(adr): accept no-approval rule for fork PR runs (ADR-0003)
...
CI / flutter (pull_request) Successful in 1m23s
CI / web-build (pull_request) Successful in 1m16s
CI / supabase (pull_request) Successful in 9s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Failing after 5m50s
Refs #43
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:06:55 +01:00
cschlaefke
f078c8a094
feat(auth): sign-in prompt card on the home screen for signed-out users
...
Adds SignInPrompt (sign in / create account), showSignInPromptProvider,
HomeScreen as ConsumerWidget, l10n de/en, widget/unit tests and a
Playwright web test (#49 criterion 1, QUE-09 criterion 13, QUE-06).
Refs #49
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 01:03:16 +01:00
cschlaefke
9a63985d74
Merge origin/feature/2b-katalog-zusammenfuehren into feature/2c-katalog-meldungen
CI / flutter (pull_request) Successful in 1m22s
CI / web-build (pull_request) Successful in 58s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 32s
CI / e2e (pull_request) Successful in 2m54s
2026-11-04 00:25:32 +01:00
cschlaefke
500763d5ca
docs(db): late references to merged source as known limitation, with test (KAT-05, 2b)
...
CI / flutter (pull_request) Successful in 1m34s
CI / web-build (pull_request) Successful in 58s
CI / supabase (pull_request) Successful in 9s
CI / supabase-tests (pull_request) Successful in 36s
CI / e2e (pull_request) Successful in 2m55s
Refs #2
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 00:24:49 +01:00
cschlaefke
de830a7148
feat(db): store cleared editions count in game_reports.editions_cleared (KAT-05 2c, Spec-F6) Refs #2
...
CI / flutter (pull_request) Successful in 1m16s
CI / web-build (pull_request) Successful in 57s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 2m50s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 00:15:46 +01:00
2513ed8ef2
docs(catalog): Hinweise aus dem Konsistenz-Review in die KAT-01-Spec
...
CI / flutter (pull_request) Successful in 1m17s
CI / web-build (pull_request) Successful in 57s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 30s
CI / e2e (pull_request) Successful in 2m52s
Stand von 2c (PR #57 ) und Fremdschlüssel-Wächter in 07 und 08,
normalize_game_title ausgeschrieben, Release-Checkliste als offener
PR #54 gekennzeichnet, Änderungsprotokoll nur ergänzt.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:32:09 +00:00
a4c7b47073
docs(catalog): Spec KAT-04 an Spec #3 und PR 2c angeglichen
...
CI / flutter (pull_request) Successful in 1m23s
CI / web-build (pull_request) Successful in 57s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 2m48s
Kandidatenschlüssel über title_search, gemeinsame Normalisierung
wörtlich aus Spec #3 , pg_trgm aus 3a, Abhängigkeiten 3a/3b,
Spec-F6 korrigiert (nur 2c-Nachtrag, vor Merge von PR #57 ).
Refs #13
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:30:15 +00:00
cschlaefke
119267bb26
fix(db): check owner of provisional game in admin_resolve_report, harden report tests (KAT-05 2c review) Refs #2
...
CI / flutter (pull_request) Successful in 1m18s
CI / web-build (pull_request) Successful in 57s
CI / supabase (pull_request) Successful in 9s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Successful in 2m52s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:23:13 +01:00
b65ec0efe7
docs(catalog): Review-Befunde in die KAT-01-Spec einarbeiten
...
search_normalize für alle API-Rollen ausführbar, Symbole vor unaccent
entfernen, eine Basisfunktion gemeinsam mit #13 , Reihenfolge 3a nach 2b,
Spec-F4 mit vorläufiger Messung ohne Staging, Indizes nicht als
Begründung, Grenzen und Hinweise aus dem Review.
Refs #3
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:16:26 +00:00
f7a7c1e54c
docs(catalog): Review-Befunde zur Spec KAT-04 eingearbeitet
...
Tageslimit-Rechte (report_day), Normalisierung als Wrapper um
search_normalize aus Spec #3 , Sperrreihenfolge und Rechte von
adopt_report_target, Indizes aus 2c, Testdatei 10, Edition-Hinweis
mit editions_cleared als Empfehlung.
Refs #13
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:07:44 +00:00
cschlaefke
e665a71f13
feat(db): reports tests, runbook section 6 and docs for KAT-05 2c Refs #2
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:07:19 +01:00
cschlaefke
ac5b5f2be2
Merge remote-tracking branch 'origin/feature/2b-katalog-zusammenfuehren' into feature/2c-katalog-meldungen
2026-11-03 21:05:02 +01:00
cschlaefke
147dd1870e
feat(db): game reports table, admin_resolve_report and visibility trigger (KAT-05 2c) Refs #2
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:05:02 +01:00
cschlaefke
127f765d85
test(db): close surviving mutants in merge tests, extend runbook (KAT-05, 2b)
...
CI / flutter (pull_request) Successful in 1m20s
CI / web-build (pull_request) Successful in 1m2s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 31s
CI / e2e (pull_request) Successful in 3m1s
Refs #2
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:04:12 +01:00
cschlaefke
e3532210ea
docs(auth): mark E4 and mail-link rows superseded by spec 49
...
CI / flutter (pull_request) Successful in 1m24s
CI / web-build (pull_request) Successful in 1m2s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Successful in 3m3s
Refs #49
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:01:55 +01:00
34bba3439b
docs(auth): address review findings on spec 49
...
Existing team KSX6GJY9C5 (C1), defer CODE_SIGN_ENTITLEMENTS until
the team is confirmed, local mobile builds mandatory, email_change
needs KTO-11, verified facts separated from spike assumptions,
QUE-06 keyboard criterion, T2 depends on PR A, limited interception
protection on Android < 12 (R13, F11), login CSRF accepted (R14),
supersession of spec 1 E4 recorded as task W2.
Refs #49
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:00:45 +00:00