Commit graph

38 commits

Author SHA1 Message Date
cschlaefke
57305dad4b fix(auth): address review findings for login
Fixed-wording tests for the generic credentials error, redacted toString for
login/register state, shared AuthFailure.isRetryable, autofill context
finished even when the router removes the screen, stricter from validation
(encoded and control-character variants), more widget tests.

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:07:56 +01:00
cschlaefke
dd91c078e0 feat(auth): add login screen with unconfirmed-account resend and safe redirect
KTO-01 Kriterien 5, 6 und 7 (01b): LoginController/State/Screen replace the
/login placeholder. Generic failure text for wrong email and password,
resend via ResendController (ResendOrigin.login), throttle and offline
banners, autofill hints, double-submit guard, validated from redirect.

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 09:00:53 +01:00
fa7238a2ef Merge pull request 'feat(auth): KTO-01 Registrierung (01a) – Screens, Auth-Domäne, Formular-Komponenten (2/4)' (#34) from feature/1-01a-registrierung into main
All checks were successful
CI / flutter (push) Successful in 1m15s
CI / web-build (push) Successful in 1m2s
CI / supabase (push) Successful in 4s
CI / supabase-tests (push) Successful in 49s
Reviewed-on: #34
2026-11-03 07:56:15 +00:00
cschlaefke
239d0e1ac2 fix(auth): address review findings for registration
All checks were successful
CI / flutter (pull_request) Successful in 1m16s
CI / web-build (pull_request) Successful in 53s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 32s
- expose legal links to screen readers on web
- allow only http(s) legal URLs, prevent double submit
- detect transport errors without runtimeType, keep extra in memory
- ship third-party license text, document decisions

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 00:47:42 +01:00
cschlaefke
e632da2344 feat(auth): add registration, check-email and email-link screens
Implements KTO-01 criteria 1-4, 10 and 11 (client part).

Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 00:27:16 +01:00
cschlaefke
54337ffc59 feat(auth): add auth domain, repository, validators and router redirects
Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 00:09:47 +01:00
cschlaefke
ec8b2ab4c1 feat(ui): add auth form components and screen layouts
Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 00:03:11 +01:00
cschlaefke
3158abc344 docs(auth): use trim_ws in spec
Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 23:58:11 +01:00
6891b7cb03 Merge pull request 'feat(auth): KTO-01 Backend – Registrierungsregeln, Auth-Konfiguration, Mailvorlagen (1/4)' (#33) from feature/1-auth-registrierung-anmeldung into main
All checks were successful
CI / flutter (push) Successful in 1m7s
CI / web-build (push) Successful in 55s
CI / supabase (push) Successful in 3s
CI / supabase-tests (push) Successful in 34s
Reviewed-on: #33
2026-11-02 22:57:49 +00:00
cschlaefke
9f36cd0c33 feat(db): reject U+200B in display names
All checks were successful
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
All checks were successful
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
450af82234 Merge branch 'main' into feature/1-auth-registrierung-anmeldung 2026-11-02 22:21:24 +01:00
29f22605a1 Merge pull request 'feat(app): App-Fundament – Flutter-Gerüst und Supabase-Konfiguration' (#32) from feature/31-app-fundament into main
All checks were successful
CI / flutter (push) Successful in 1m8s
CI / web-build (push) Successful in 55s
CI / supabase (push) Successful in 3s
CI / supabase-tests (push) Successful in 31s
Reviewed-on: #32
2026-11-02 21:21:02 +00:00
cschlaefke
51ab6e2667 ci: run supabase-tests against the runner's docker-in-docker daemon
All checks were successful
CI / flutter (pull_request) Successful in 1m5s
CI / web-build (pull_request) Successful in 53s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Successful in 35s
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 22:05:08 +01:00
cschlaefke
04d9d01395 docs: update PostgreSQL version to 17 in CLAUDE.md
Some checks failed
CI / flutter (pull_request) Successful in 1m3s
CI / web-build (pull_request) Successful in 1m4s
CI / supabase (pull_request) Successful in 5s
CI / supabase-tests (pull_request) Failing after 36s
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 21:57:09 +01:00
cschlaefke
2ff657c03f fix(supabase): use db.major_version 17
Some checks failed
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
Some checks failed
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
b03d771869 fix(app): address review findings for foundation
Some checks failed
CI / flutter (pull_request) Successful in 2m29s
CI / web-build (pull_request) Successful in 53s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 23s
- add INTERNET permission, iOS localizations, html lang
- make focus ring visible on FilledButton
- neutral SITE_URL default, idempotent logger configure

Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:36:58 +01:00
cschlaefke
568f425ef7 ci: install pinned Flutter SDK from git tag instead of missing image
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:24:50 +01:00
cschlaefke
adf61b3ba2 test: add pumpApp helpers, fakes and coverage matrix template
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:21:55 +01:00
cschlaefke
936ca7bd4b feat(theme): add Material 3 light/dark theme base and design tokens
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:19:19 +01:00
cschlaefke
77c71c0169 ci: run Flutter and web build checks from app/
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:18:58 +01:00
cschlaefke
e5df79ee0a feat(app): add Flutter scaffold with config, logging, routing and l10n
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:17:24 +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
e56f75a5e1 docs(auth): add spec for KTO-01 registration, login and password reset
Refs #1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:10:07 +01:00
c0e89a806f Merge pull request 'chore: setup-check und Katalog-Test bereinigen' (#30) from chore/setup-check-and-catalog-test into main
Some checks failed
CI / flutter (push) Failing after 4s
CI / supabase (push) Successful in 2s
CI / supabase-tests (push) Failing after 21s
2026-11-02 18:17:11 +00:00
cschlaefke
079eb0b576 test(catalog): clear seed data before catalog count assertions
Some checks failed
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
4b2c7fe542 chore(scripts): drop OUTLINE_URL from setup check
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 19:16:17 +01:00
f15810ecf6 Merge pull request 'docs(requirements): R1 intake – backlog, clarifications, KTO-11, QUE-09' (#27) from docs/r1-intake into main
Some checks are pending
CI / flutter (push) Waiting to run
CI / supabase (push) Waiting to run
CI / supabase-tests (push) Waiting to run
Reviewed-on: #27
2026-11-02 15:27:14 +00:00
cschlaefke
f25bd85f53 docs(requirements): note resolved assumptions in changelog
Some checks failed
CI / flutter (pull_request) Failing after 3s
CI / supabase (pull_request) Successful in 2s
CI / supabase-tests (pull_request) Failing after 23s
Refs #25, #28, #29

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 16:15:03 +01:00
cschlaefke
9880a6fd09 docs(requirements): resolve follow-up questions N1-N14
Some checks failed
CI / flutter (pull_request) Failing after 4s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 20s
Decisions on the follow-up questions from the R1 intake are recorded
in requirements/r1-klaerungen.md and applied to the acceptance
criteria, requirements and backlog: settings (KTO-11), dashboard
(QUE-09, new label epic/querschnitt), catalog seed without third-party
covers (KAT-05), per-user dedup of BGG import reports (SAM-08) and the
confirmed PAR-08 rule. No open questions remain for R1.

Refs #1, #2, #13, #22, #23, #25, #28, #29

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 16:14:31 +01:00
cschlaefke
9d59244655 docs(requirements): apply R1 clarifications and add KTO-11, QUE-09
Some checks failed
CI / flutter (pull_request) Failing after 3s
CI / supabase (pull_request) Successful in 3s
CI / supabase-tests (pull_request) Failing after 20s
All 48 open questions from the R1 intake are answered in
requirements/r1-klaerungen.md. Acceptance criteria, requirements and
backlog are updated accordingly; removed criteria stay marked as
"entfällt" so references keep their numbers. New stories KTO-11
(settings, #28) and QUE-09 (dashboard, #29). backlog.md lists the data
model changes for the architect and new open questions N1-N14.

Refs #2, #25, #28, #29

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 15:52:59 +01:00
cschlaefke
56e57afd43 docs(requirements): add R1 backlog and story draft
Some checks failed
CI / flutter (pull_request) Failing after 3m35s
CI / supabase (pull_request) Successful in 55s
CI / supabase-tests (pull_request) Failing after 1m32s
Intake of the 26 R1 stories from requirements/20-r1-akzeptanzkriterien.md
into Forgejo issues #1-#26. backlog.md maps story IDs to issues, stages
R1.1-R1.4, dependencies and the 48 open questions.

Refs #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15,
#16, #17, #18, #19, #20, #21, #22, #23, #24, #25, #26

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:52:06 +01:00
cb2c75b0f8 .mcp.json aktualisiert
Some checks are pending
CI / flutter (push) Waiting to run
CI / supabase (push) Waiting to run
CI / supabase-tests (push) Waiting to run
2026-11-02 11:23:55 +00:00
cschlaefke
317634dac5 chore: initial project kit
Some checks are pending
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