# Curbi v29 — portable evidence and replayable repairs

Curbi’s homepage, footer, product pages and agent manifest now use one direction: check agent action permissions, verify signed records offline, and replay integration failures. The homepage and developer pages share the dark Curbi palette and original multicolor mark. The wordmark uses its existing alpha mask on dark surfaces; the source logo bitmap is unchanged.

## Shipped
- /verify/: zero-dependency verifier in the browser, explicit trust keys, test mode off initially, synthetic context cleared when inputs change, 16 runnable conformance vectors.
- /proof/: open draft, caller trust boundaries, provider-evidence limits and MIT verifier download.
- Rewritten company, evidence, integrations, pricing, workflow and readiness pages.
- Four-column footer, with status and legal rows beneath the links. Earlier Revenue OS pages are labeled archived and reachable through /legacy/; no orphan exemptions remain.
- ai.json and llms.txt name the current endpoints, preview status and verification path.
- API curl/MCP examples use readable JSON heredocs. Hosting header routes are deduplicated to remain within Cloudflare’s 100-rule limit.

## Review corrections
Signed receipt amount, currency, operation key and permission timing must agree with the attached attestation. Malformed or oversized collections fail closed. An invalid unsigned consistency path is unproven history, not evidence of issuer misconduct. Delivery of an older checkpoint is distinguished from later signed truncation; conflicting signed roots at the same size remain detectable. Earlier checkpoints must be supplied or remembered for consistency comparisons.

Two vector expectations were corrected to reflect those distinctions. Mutation needles were updated to follow the corrected implementation, the harness requires a passing baseline, and independent attacks were added; no attack was removed.

## Validation
- Website: 137 passing tests; 44 HTML pages; 2,630 links checked; zero missing targets.
- Proof: 50 passing tests; all 23 deliberate mutations caught.
- Browser: seven core pages at desktop and 390px phone width, no horizontal overflow; footer status/legal rows remain below navigation. All 16 vectors matched in the browser.
- The downloaded verifier passes its conformance suite and CLI checks after clean extraction.
- /verify/ responds with connect-src 'none'. Verification sends no pasted data; scripts and styles are fetched from Curbi when loading the page.

Build from the website directory: python3 v17/build.py.

## Current limits
Production signing remains off; Curbi’s published production key set is empty. All published receipts are test fixtures. The reference log is in memory. Signatures prove issuer statements under caller-trusted keys, not independent provider truth. No new auth providers, paid compute, production writes, real payments, npm publication or general repair claims.
