POC [01/16]: Full slab CRUD, concurrency, and secrets redaction — API-1, API-2, API-3, API-9 #39
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Branch:
poc(from gate-b after Gate B accepted)Sprint: POC · Order 1/16 · Depends on: Gate C acceptance (#33–#38)
Acceptance (IMPL-PLAN): Routers per OPENAPI: slabs CRUD + upload + poll; optimistic concurrency (client_rev/server_rev, 409 paths); PUT stores client-sent derived fields without server recompute; GET settings returns SettingsView without password; DELETE soft-deletes unpublished drafts.
Test-SPEC case IDs: API-1, API-2, API-3, API-9
Same-PR tests: Tests-with-code — API contract tests via httpx TestClient. Revision conflict 409; no server-side recompute asserted; password absent from GET; soft-delete 204 for unpublished drafts, rejected for published.
In scope:
Out of scope:
Done when / evidence: API contract tests green for API-1, API-2, API-3, API-9. Evidence path in commit message.
POC [01/16]: Full slab CRUD, concurrency, and secrets redaction — API-1, API-2, API-3to POC [01/16]: Full slab CRUD, concurrency, and secrets redaction — API-1, API-2, API-3, API-9Verified in main @
0c00d25:✅ Optimistic concurrency: client_rev compare-and-set, 409 revision_conflict with current_server_rev (slabs.py:252-294)
✅ Client-sent derived fields stored as sent, never recomputed (slabs.py:3,22)
✅ GET settings masking: SETTINGS-75 default, no app_password leaked (settings.py:64-65)
✅ Soft-delete: 204 unpublished, 409 publish_conflict for published (slabs.py:299-307)
All four acceptance criteria met.