docs(10-02): complete admin backend contract plan

This commit is contained in:
Jakub Zych
2026-09-27 16:30:15 +02:00
parent 9f296b0484
commit 453b8ae786
3 changed files with 340 additions and 12 deletions

View File

@@ -4,16 +4,16 @@ milestone: v1.0
current_phase: 10
current_phase_name: Admin Vue SPA
status: executing
stopped_at: Completed 10-01-PLAN.md
last_updated: "2026-09-27T13:36:49.057Z"
stopped_at: Completed 10-02-PLAN.md
last_updated: "2026-09-27T14:29:51.186Z"
last_activity: 2026-09-27
last_activity_desc: Phase 10 plan 01 tracer completed
state_head: dafdb18234b8be4445ebe05ff96e4cf86cd9e06f
last_activity_desc: Phase 10 plan 02 backend contract completed
state_head: 9f296b0484174cf180906140c646a8578d3568ad
progress:
total_phases: 15
completed_phases: 8
total_plans: 72
completed_plans: 68
completed_plans: 69
milestone_name: milestone
---
@@ -29,9 +29,9 @@ See: .planning/PROJECT.md (updated 2026-09-16)
## Current Position
Phase: 10 (Admin Vue SPA) — EXECUTING
Plan: 2 of 5
Plan: 3 of 5
Status: Ready to execute
Last activity: 2026-09-27 — Phase 10 plan 01 tracer completed
Last activity: 2026-09-27 — Phase 10 plan 02 backend contract completed
Progress: [██████████] 100%
@@ -121,6 +121,7 @@ Progress: [██████████] 100%
| Phase 09 P10 | 2h 20m | 3 tasks | 17 files |
| Phase 09 P11 | 1h 15m | 3 tasks | 21 files |
| Phase 10 P01 | 31min | 3 tasks | 111 files |
| Phase 10 P02 | 50min | 3 tasks | 63 files |
## Accumulated Context
@@ -315,6 +316,11 @@ Recent decisions affecting current work:
- [Phase 10]: Admin SPA uses the HttpOnly summer_admin cookie selected by X-Requested-With; cookie-only POST/PUT/DELETE without the header get 403 forbidden; Bearer bodies unchanged
- [Phase 10]: Framework owns admin/openapi/admin.json (swag -> swagger2openapi -> openapi-typescript); fonoteka docs/openapi.json no longer lists admin paths
- [Phase 10]: npm package gate approved: 17 exact pins in admin/package.json; any new package or version needs a checkpoint
- [Phase 10]: 10-02: Relation lists, field options and filter options share one mounted six-segment GET pattern dispatched by nestedGet (ServeMux cannot register them side by side); documented paths unchanged
- [Phase 10]: 10-02: Record responses carry relation values in data and labels in meta.labels; a belongsTo on a protected fill key is read-only (Collections owner)
- [Phase 10]: 10-02: Message key validation checks declared keys and framework defaults only; defaults derived from Winter prompt, noRecordsMessage or form name may be literal text
- [Phase 10]: 10-02: Filter options path {scope} is the filter name; the model's FilterOptions receives the scope method name
- [Phase 10]: 10-02: Tailwind excludes generated schema.d.ts and openapi/ from the class scan so API changes do not churn boardwalk/dist
### Pending Todos
@@ -337,6 +343,6 @@ Items acknowledged and carried forward from previous milestone close:
## Session Continuity
Last session: 2026-09-27T13:36:48.754Z
Stopped at: Completed 10-01-PLAN.md
Last session: 2026-09-27T14:29:50.876Z
Stopped at: Completed 10-02-PLAN.md
Resume file: None