Gate B [09/10]: Draft store stub — D-1 #29

Closed
opened 2026-09-07 05:21:52 +00:00 by grokbot_ty · 4 comments
Owner

Branch: gate-b

Sprint: Gate B · Order 9/10 · Depends on: #28 (seq-08)

Acceptance (IMPL-PLAN): Draft can store client-uploaded originals + PNGs + numbers without server recompute.

Test-SPEC case IDs: D-1

Same-PR tests: Tests-with-code — API contract test via httpx TestClient alongside backend feature code. Multipart upload with data JSON + files + metadata.

In scope:

  • POST /api/v1/slabs accepts multipart with data JSON + files + metadata
  • Returns 201 with status: calibrated and server_rev
  • Server stores client-sent numbers only; no server-side recompute of sqft/bdft/widths

Out of scope:

  • Client deterministic modules, inference, Woo create/publish, settings encryption

Done when / evidence: API contract test green for D-1 via httpx TestClient with multipart payload and 201 response asserted.

**Branch:** `gate-b` **Sprint:** Gate B · Order 9/10 · Depends on: #28 (seq-08) **Acceptance (IMPL-PLAN):** Draft can store client-uploaded originals + PNGs + numbers without server recompute. **Test-SPEC case IDs:** D-1 **Same-PR tests:** Tests-with-code — API contract test via httpx TestClient alongside backend feature code. Multipart upload with data JSON + files + metadata. **In scope:** - POST /api/v1/slabs accepts multipart with data JSON + files + metadata - Returns 201 with status: calibrated and server_rev - Server stores client-sent numbers only; no server-side recompute of sqft/bdft/widths **Out of scope:** - Client deterministic modules, inference, Woo create/publish, settings encryption **Done when / evidence:** API contract test green for D-1 via httpx TestClient with multipart payload and 201 response asserted.
grokbot_ty changed title from Gate B: Draft store stub — D-1 to Gate B [09/10]: Draft store stub — D-1 2026-09-07 05:39:57 +00:00
grokbot_ty added this to the Gate B milestone 2026-09-07 05:39:57 +00:00
grokbot_ty added the gate-bseq-09 labels 2026-09-07 05:42:21 +00:00
Author
Owner

Gate B test pass fail — case D-1 (2026-09-07 PT, tip 48b6438 on origin/gate-b).

Result: fail

Evidence: test-results/gate-b-2026-09-07/pytest.txt

All 8 tests/contract/test_slabs.py cases failed the same way:

AssertionError: The `python-multipart` library must be installed to use form parsing.
app/api/slabs.py:263 create_slab → await request.form()
8 failed, 31 passed (3.06s)

python-multipart>=0.0.30,<1 is listed in backend/requirements.txt but is not importable in backend/.venv for this run. POST /api/v1/slabs multipart (D-1) cannot be verified until form parsing works in the test environment.

This is the fail log for D-1. Do not treat chat as the bug.

Gate B test pass fail — case **D-1** (2026-09-07 PT, tip `48b6438` on `origin/gate-b`). **Result:** fail **Evidence:** `test-results/gate-b-2026-09-07/pytest.txt` All 8 `tests/contract/test_slabs.py` cases failed the same way: ``` AssertionError: The `python-multipart` library must be installed to use form parsing. app/api/slabs.py:263 create_slab → await request.form() 8 failed, 31 passed (3.06s) ``` `python-multipart>=0.0.30,<1` is listed in `backend/requirements.txt` but is not importable in `backend/.venv` for this run. POST `/api/v1/slabs` multipart (D-1) cannot be verified until form parsing works in the test environment. This is the fail log for D-1. Do not treat chat as the bug.
grokbot_ty added the blocking label 2026-09-07 17:01:43 +00:00
Author
Owner

Gate B pass2 re-confirm (2026-09-07 PT)

Case: D-1 (api-contract)
Result: fail (unchanged)
Evidence: test-results/gate-b-2026-09-07-pass2/pytest.txt lines 32–39 — all 8 TestCreateSlab cases FAILED.
Error: AssertionError: The python-multipart library must be installed to use form parsing. (starlette request.form())
Runner tip: origin/gate-b @ 302d694

Still blocking draft-create API contract. Not Gate B green.

## Gate B pass2 re-confirm (2026-09-07 PT) **Case:** D-1 (`api-contract`) **Result:** fail (unchanged) **Evidence:** `test-results/gate-b-2026-09-07-pass2/pytest.txt` lines 32–39 — all 8 `TestCreateSlab` cases FAILED. **Error:** `AssertionError: The python-multipart library must be installed to use form parsing.` (starlette `request.form()`) **Runner tip:** origin/gate-b @ 302d694 Still blocking draft-create API contract. Not Gate B green.
Author
Owner

Gate B pass3 — D-1 now PASS (api-contract)

Tip: origin/gate-b @ 8d8b3a2 (includes d5d5cde multipart fix).
Evidence: test-results/gate-b-2026-09-07-pass3/pytest.txt lines 32–39 — all 8 TestCreateSlab PASSED.

D-1 no longer blocking Gate B api-contract for draft create. (Gate B overall still not green — product-state TV + human-walk remain.)

## Gate B pass3 — D-1 now PASS (api-contract) Tip: origin/gate-b @ 8d8b3a2 (includes d5d5cde multipart fix). Evidence: `test-results/gate-b-2026-09-07-pass3/pytest.txt` lines 32–39 — all 8 `TestCreateSlab` **PASSED**. D-1 no longer blocking Gate B api-contract for draft create. (Gate B overall still not green — product-state TV + human-walk remain.)
Author
Owner

Closed: superseded by different design (implemented during M3).

Closed: superseded by different design (implemented during M3).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Ty_Tech/SlabUploader#29