Files
SlabUploader/test-results/gate-b-2026-09-07-pass2/RESULTS.md
T

4.5 KiB
Raw Blame History

Gate B pass2 results — 2026-09-07

Evidence collected on gate-b @ 302d694.


Results

Case What this proves (mill-owner English) Evidence class Result Evidence Blocker
TV-1 Green-sheet chroma-key keeps interior green patch, does not eat border wood proxy-synthetic pass vitest.txt:13 —
TV-2 Black-sheet threshold keeps dark interior wood, flood-fill isolates border-only proxy-synthetic pass vitest.txt:13 —
TV-3 bdft = sqft × thickness_in; 1 sqft @ 1" = 1 bdft; no divide-by-12 product-state blocked — No real slab fixtures or Ty walk on real wood
TV-3 bdft identity holds on synthetic fixture (proxy proof only) proxy-synthetic pass vitest.txt:4–5,12 —
TV-4 Width samples at 6" stations report min, max, average perpendicular to confirmed axis proxy-synthetic pass vitest.txt:14–15,20 —
TV-5 Angled-end slab: length axis follows prevailing length; widths stay perpendicular after confirm proxy-synthetic pass vitest.txt:17–18,20 —
TV-6 3:4 crop, slab centered, 80% fill, transparent PNG, shorter side ≥ 1600 when source allows product-state blocked — No real slab photos or Ty walk on real wood
TV-6 Crop dimensions and fill ratio hold on synthetic fixture (proxy proof only) proxy-synthetic pass vitest.txt:80–90,101 —
TV-7 Undersized source warns, refuses upscale, photo not publishable until retake product-state blocked — No real slab photos or Ty walk on real wood
TV-7 Undersized-source logic holds on synthetic fixture (proxy proof only) proxy-synthetic pass vitest.txt:92–99,101 —
TV-8 Pricing: bdft 0.96 × $12.50 → $12.00 recommended; override stored; no rule leaves empty proxy-synthetic pass vitest.txt:11 —
TV-9 Thickness 1" rounds up to Woo range using synced attribute term, not hardcoded label proxy-synthetic pass vitest.txt:10 —
TV-10 Rounding: 96.04" → 96"; 0.641 sqft → 0.64; 11.525 bdft → 11.53; 12.345 price → 12.35 product-state blocked — No real slab measurements or Ty walk on real wood
TV-10 Rounding rules hold on synthetic fixture (proxy proof only) proxy-synthetic pass vitest.txt:7–8,12 —
V-1 SKU charset [A-Z0-9-]{3,24} accepted; invalid chars/rejected length rejected proxy-synthetic pass vitest.txt:21–50,79 —
V-2 Title/short_title/description maxLength enforced at field exit and submit proxy-synthetic pass vitest.txt:52–68,79 —
V-3 Validation module hash: client cache, submit carry, mismatch returns 412 with fresh module proxy-synthetic pass vitest.txt:70–77,79 —
AES-1 Credentials round-trip without ciphertext leak; settings GET never returns app password api-contract pass pytest.txt:46 —
AES-1 Encrypt-then-decrypt round-trips for username, password, empty, unicode, special chars proxy-synthetic pass pytest.txt:9–17 —
AES-2 Missing SLAB_AES_KEY env var: app refuses to start; no plaintext fallback proxy-synthetic pass pytest.txt:23–24 —
H-1 GET /api/health returns 200 { "status":"ok" } with woo_reachable false when not configured api-contract pass pytest.txt:27–31 —
D-1 POST /api/v1/slabs accepts multipart, returns 201 with status: calibrated and server_rev api-contract fail pytest.txt:32–39 #29
OPS-1 GET https://${APP_HOSTNAME}/api/health returns ok after compose up with filled inventory deploy blocked — health.txt: slab.local unresolved, 443/18443 refuse, HTTP :18081 timed out
GC-5 FastAPI refuses to start when WOO_BASE_URL missing or set to http:// proxy-synthetic pass pytest.txt:40–41 —

Counts

18 pass / 1 fail / 5 blocked (24 total rows)


Unproven / Gate exit

  • TV-3, TV-6, TV-7, TV-10 product-state: No real slab fixtures, no Ty walk. Proxy-synthetic rows pass but do not satisfy Gate B exit.
  • OPS-1 deploy: No compose-up, no Caddy, no inventory filled. Health endpoints all unreachable (health.txt).
  • Walkable UI / E2E: No Playwright E2E tests exist yet; no browser session captured.
  • Real draft create (D-1): All 8 TestCreateSlab tests failed with python-multipart missing; no slab was created.
  • Gate B is not green. UAT is not ready. Bots do not declare Gate B green.