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
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
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
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
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
2c2546ab47
docs(db): runbook section merging, data model and spec notes (KAT-05, 2b)
...
Refs #2
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:49:42 +01:00
cschlaefke
daeae999dd
feat(db): add admin_merge_games and repoint_game_references (KAT-05, 2b)
...
Refs #2
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 20:46:19 +01:00
cschlaefke
9952efa2fe
test(catalog): address review findings on PR 2a
...
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
23816377a5
ci(e2e): add Playwright e2e job on docker-host with throttle GoTrue and artifacts
...
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
9f36cd0c33
feat(db): reject U+200B in display names
...
CI / flutter (pull_request) Successful in 1m3s
CI / web-build (pull_request) Successful in 54s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 34s
Refs #1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 23:51:56 +01:00
cschlaefke
fb0f4b9d3f
fix(db): trim all Unicode whitespace in display name, harden templates
...
CI / flutter (pull_request) Successful in 1m3s
CI / web-build (pull_request) Successful in 58s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 34s
- add public.trim_ws mirroring Dart String.trim
- require JSON string metadata, tolerate non-string locale in templates
- add tests, align docs with review
Refs #1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 23:48:01 +01:00
cschlaefke
47721a48e8
docs(auth): align spec with spike results and add AUTH-CFG-25
...
Refs #1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 23:26:03 +01:00
cschlaefke
59a47c5a5d
feat(auth): configure Supabase Auth and add de/en mail templates
...
Adds AUTH-CFG settings, confirmation/recovery templates and
docs/auth-konfiguration.md (KTO-01 criteria 1, 3, 4, 7, 8, 11).
Refs #1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 23:23:06 +01:00
cschlaefke
395816609f
feat(db): enforce registration rules and add terms_version
...
Adds display name validation, terms_version, locale sync trigger and
pgTAP tests (KTO-01 criteria 1, 2, 10, 11). Includes GoTrue spike results.
Refs #1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 22:36:21 +01:00
cschlaefke
2ff657c03f
fix(supabase): use db.major_version 17
...
CI / flutter (pull_request) Successful in 1m0s
CI / web-build (pull_request) Successful in 52s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 17s
Refs #31
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 21:48:16 +01:00
cschlaefke
9fc3ed0a32
fix(supabase): use db.major_version 15 accepted by CLI 3.0.0
...
CI / flutter (pull_request) Successful in 1m1s
CI / web-build (pull_request) Successful in 51s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 18s
The CLI rejects 16; 15 matches the self-hosted Supabase image.
Refs #31
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 21:40:14 +01:00
cschlaefke
c498db5366
chore(supabase): add config.toml and ignore app env files
...
Refs #31
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:12:09 +01:00
cschlaefke
079eb0b576
test(catalog): clear seed data before catalog count assertions
...
CI / flutter (pull_request) Failing after 4s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 22s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 19:16:17 +01:00
cschlaefke
317634dac5
chore: initial project kit
CI / flutter (push) Waiting to run
CI / supabase (push) Waiting to run
CI / supabase-tests (push) Waiting to run
2026-11-02 12:14:09 +01:00