- sessionKey.ts: one 32-byte base64url key per form mount, sent only in headers - api/files.ts: FileRoutes over the record and child file routes, XHR upload with progress, 401 refresh and retry - FileuploadField and FileCaptionModal per UI-SPEC section 3: dropzone, image grid, rows, per-item states, client pre-checks, reorder, protected previews - FormView provides FORM_SESSION, counts pending changes as dirty and sends X-Session-Key on create and update - fileupload lang keys in en and pl, admin-spa docs note, deferred smoke test, rebuilt dist
3.5 KiB
3.5 KiB
phase, slug, status, nyquist_compliant, wave_0_complete, created
| phase | slug | status | nyquist_compliant | wave_0_complete | created |
|---|---|---|---|---|---|
| 13 | p-ytarium-api-wishlist-notifications-csv-credentials-public | draft | false | false | 2026-10-02 |
Phase 13 — Validation Strategy
Per-phase validation contract for feedback sampling during execution.
Test Infrastructure
| Property | Value |
|---|---|
| Framework | Go testing (+ testify, Go fuzzing), testcontainers Postgres |
| Config file | none — fonoteka.go/parity/parity_test.go TestMain starts Postgres |
| Quick run command | go -C ../fonoteka.go test ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... -short -count=1 |
| Full suite command | go vet ./... && go test ./... -count=1 && go -C ../fonoteka.go vet ./... && go -C ../fonoteka.go test ./... -count=1 |
| Parity command | `go -C ../fonoteka.go test ./parity -run 'TestParityCorpus |
| Phase gate | ../fonoteka.go/scripts/check-phase13.sh --self-test && ../fonoteka.go/scripts/check-phase13.sh --all |
| Estimated runtime | ~180 seconds (full suite with testcontainers) |
Sampling Rate
- After every task commit: Run the quick run command plus
go vetin the touched repo - After every plan wave: Run the full suite command, the parity command and the corpus check
- Before
/gsd-verify-work:scripts/check-phase13.sh --allmust be green - Max feedback latency: 180 seconds
Per-Task Verification Map
Filled by the planner per task; the requirement → test map lives in 13-RESEARCH.md § Validation Architecture.
| Task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status |
|---|---|---|---|---|---|---|---|---|---|
| 13-01-01 | 01 | 1 | (framework) | T-13-23 | Overlapping constrained routes dispatch to the right handler | unit | go test ./modules/surf -run TestOverlappingConstrainedRoutes -count=1 |
❌ W0 | ⬜ pending |
Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky
Wave 0 Requirements
surfconstraint-aware overlap dispatch, plus a test (blocks every wishlist route)congaunregistered-kind insert while a worker runs, plus a testlagoonprohibitedrule; tide Content-Disposition date and notification publication masksphp_parity.shQUEUE_CONNECTIONoverride;capture-rules.yamlshare:wishlistcapturefonoteka_reset.php+seedFonotekaCasestates:wishlist,csv,credentials,empty,invite-for-registerscripts/check-phase13.sh(copy of the check-phase12 structure)
Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|---|---|---|---|
| Re-recording PHP fixtures against the isolated PHP instance | API-03..API-07 | Needs the local PHP stack running | Run php_parity.sh recordings per D-12 with the database queue override |
Validation Sign-Off
- All tasks have
<automated>verify or Wave 0 dependencies - Sampling continuity: no 3 consecutive tasks without automated verify
- Wave 0 covers all MISSING references
- No watch-mode flags
- Feedback latency < 180s
nyquist_compliant: trueset in frontmatter
Approval: pending