# VEZA Audit — 2026-04 > **Scope** — VEZA backend (Go) + web (TypeScript). > TALAS software (firmware, PCB reverse-engineering pipeline) is **out of scope** > and will be audited separately when its phase stabilises. > > **Source state** — commits up to `a57bb6f78` (v1.0.6.1, 2026-04-17). > > **Auditor** — Claude Opus 4.7 (1M context). ## Axes | # | File | Status | |---|---|---| | 1 | [`axis-1-correctness.md`](./axis-1-correctness.md) — correctness / accounting | ✅ delivered | | 2 | `axis-2-state-machines.md` — transition matrix + illegal-transition tests | 🔲 pending v1.0.7 | | 3 | `axis-3-security.md` — attack surface (signatures, rate limits, authz, secrets) | 🔲 pending | | 4 | `axis-4-tests.md` — coverage vs reality, failure-injection gap | 🔲 pending | | 5 | `axis-5-debt.md` — documented debt vs hidden debt (TODO/FIXME inventory) | 🔲 pending | Axis 2 is gated on v1.0.7 landing first — otherwise the transition matrix captures a v1.0.6.1 snapshot that's immediately stale. See [`v107-plan.md`](./v107-plan.md) for the sequencing. ## Reading conventions Every finding cites `file:line` evidence. Structure: ``` ### P{0|1|2}.N — short title **Evidence** — concrete cites **Consequence** — what breaks today / tomorrow **Action** — what to do, with enough detail that an implementer can start **Criticity** — P0 / P1 / P2 / wontfix (with justification) ``` **P0** = fix within v1.0.7 or earlier (ledger diverges today, or a v1.0.7 commitment is structurally blocked). **P1** = v1.0.7 target. Operational visibility / correctness hardening. **P2** = v1.0.8+. Nice-to-have. **wontfix** = justified non-action. ## Info needed from ops (not determinable from code) Tracked in [`axis-1-correctness.md`](./axis-1-correctness.md#info-needed-from-ops). Absence of answers becomes a finding in its own right. ## Derived deliverables - [`v107-plan.md`](./v107-plan.md) — sequencing, dependencies and relative effort for the axis-1 P0 findings + the CHANGELOG-parked v1.0.7 items. Read this before picking up v1.0.7 work.