Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ python -m venv .venv
pip install -r requirements-dev.txt
pip install -e ".[server]" # [server] adds the API (fastapi + multipart)

pytest # 289 offline backend tests
pytest # 290 offline backend tests
python -m claimscene.cli --case demo --out out
```

Expand Down Expand Up @@ -353,7 +353,7 @@ desynced or over-length video fails the build.

## Testing & CI

- **289 offline backend tests** (unit / integration / e2e): schema
- **290 offline backend tests** (unit / integration / e2e): schema
round-trips and rejection of hallucinated fields, layout determinism and
contact-geometry properties, golden-file SVG, provenance seal/tamper, real
B2 adapter against an S3 stub (**+ a presign contract test asserting SigV4 +
Expand All @@ -362,7 +362,7 @@ desynced or over-length video fails the build.
SDK-boundary contract tests, and the **full API chain** through FastAPI's
TestClient (extract → preview → render → get → verify → playback, honest
degrade, path sanitisation, 422s).
- **126 frontend tests** (Vitest): the review-panel edit logic, the
- **208 frontend tests** (Vitest): the review-panel edit logic, the
schematic-preview live-update wiring, the ReviewStep centrepiece render, the
**ExtractProgress** extract-latency UI, the playback-url selection, and the
in-browser verify pinned to a **golden manifest produced by the real backend**
Expand Down
2 changes: 1 addition & 1 deletion demo/SUBMISSION.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The honest lesson came from the live path. Our contract tests run against the re
- A measured accuracy number (100% on the committed set) instead of a vibe.
- A human-in-the-loop review step that is the trust story and the production-readiness story at once.
- A sealed AI→human approval receipt: the render seals the exact proposed→confirmed scene diff with a recomputable `decision_digest` that self-voids if the confirmed scene drifts, and the whole case re-verifies from stored bytes through a named-check receipt (`GET /cases/{id}/verify`) plus a detached, self-sealed receipt written as its own B2 object.
- 289 backend tests plus 126 frontend tests, gitleaks, CodeQL and a machine-checkable readiness gate, all runnable with zero credentials.
- 290 backend tests plus 208 frontend tests, gitleaks, CodeQL and a machine-checkable readiness gate, all runnable with zero credentials.

### What we learned
Constrain the model to a vocabulary and let deterministic code do the geometry. Label the generative layer loudly. And make honesty a data structure: a sealed manifest that records sources and disclosure by construction, not a promise in the footer.
Expand Down
Binary file modified demo/assets/claimscene-07-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions demo/assets/src/claimscene-07-architecture.patch.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
{
"_comment": "Regenerates demo/assets/claimscene-07-architecture.png by patching only the two stale stat numbers in place. Source of truth for the numbers: the latest green CI run's pytest/vitest summary lines (see README.md '289 offline backend tests' / '126 frontend tests'). Run via: python scripts/patch_gallery_card.py demo/assets/src/claimscene-07-architecture.patch.json -- or push a change to this file and let .github/workflows/render-cards.yml do it.",
"_comment": "Regenerates demo/assets/claimscene-07-architecture.png by patching only the two stale stat numbers in place. Source of truth for the numbers: the latest green CI run's pytest/vitest summary lines (see README.md '290 offline backend tests' / '208 frontend tests'). Run via: python scripts/patch_gallery_card.py demo/assets/src/claimscene-07-architecture.patch.json -- or push a change to this file and let .github/workflows/render-cards.yml do it.",
"base_image": "demo/assets/claimscene-07-architecture.png",
"output_image": "demo/assets/claimscene-07-architecture.png",
"font": "DejaVuSansMono-Bold",
"fill_color": [15, 22, 20],
"text_color": [232, 163, 61],
"patches": [
{
"note": "backend test count: 181 -> 289 (pytest summary, README.md:190)",
"note": "backend test count: 289 -> 290 (pytest summary, README.md:191)",
"erase_box": [85, 568, 148, 596],
"new_text": "289",
"new_text": "290",
"anchor_left_x": 92,
"ink_top_y": 574,
"ink_bottom_y": 593
},
{
"note": "frontend test count: 42 -> 126 (vitest summary, README.md:364)",
"note": "frontend test count: 126 -> 208 (vitest summary, README.md:365)",
"erase_box": [192, 568, 254, 596],
"new_text": "126",
"new_text": "208",
"anchor_left_x": 200,
"ink_top_y": 574,
"ink_bottom_y": 593
Expand Down
Loading