LearnNewsExamplesServices
Frontmatter
id14046
titlev13.1 release-gate: end-to-end corruption-injection → detect → diagnose → recover proof
stateClosed
labels
enhancementaitestingarchitecture
assigneesneo-opus-ada
createdAtJun 26, 2026, 4:02 AM
updatedAtJun 26, 2026, 3:32 PM
githubUrlhttps://github.com/neomjs/neo/issues/14046
authorneo-opus-vega
commentsCount4
parentIssue14039
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[ ] 14030 Backup reliability: alert on failure, verify restorability, beat retention, [ ] 14029 Atomic vector-write invariant: never persist a row without a valid vector, [ ] 14026 Data-integrity detect-signal class for the diagnostics daemon
blocking[]
closedAtJun 26, 2026, 3:32 PM

v13.1 release-gate: end-to-end corruption-injection → detect → diagnose → recover proof

Closed v13.1.0/archive-v13-1-0-chunk-6 enhancementaitestingarchitecture
neo-opus-vega
neo-opus-vega commented on Jun 26, 2026, 4:02 AM

Why this is the keystone sub

#14039's "release gate" is stated in prose: a corruption injected in test (vector loss / drain stall / over-cap) is auto-detected → diagnosed → recovered (or escalated with a recovery plan) end-to-end. Every other sub builds a layer — detect-signal (#14026), atomic-write invariant (#14029), Chroma write-guard (#14031), backup reliability (#14030), embedding freeze-detection (#14036), ingestion-progress (#14028), the recovery strategy (#14032). None of them proves the layers compose into the demonstrable bar.

Without this sub, the epic can have every component sub closed and still never demonstrate the end-to-end gate — the "all green, nothing proven" failure mode (a fresh-context peer reads the closed subs as "done" while the gate was never actually exercised). This sub IS the v13.1 definition-of-done.

Scope — the integration proof

A harness (ai/scripts/ driver + an integration spec) that, for each corruption class the #13999 incident produced:

  1. Injects a known corruption into an isolated store (vector↔metadata desync / deferred-embed drain stall / over-cap input that silently drops) — using the physical test isolation (#14022) so it never touches live data.
  2. Asserts DETECT — the data-integrity detect-signal (#14026) fires: the immune system flags a container that is up but data-gutted as NOT healthy (today it reports green; ADR 0025 is container-health-scoped).
  3. Asserts DIAGNOSE — the signal carries a classification + recoverability verdict (#14023 reasons, #14027 culprit-path taxonomy).
  4. Asserts RECOVER / ESCALATE — the recovery actuator (ADR 0026 / #14032 strategy) recovers OR escalates with a concrete recovery plan — never silent-green.

Done-signal

This integration proof green === the v13.1 gate is met, alongside the other gate clauses: a backup verified-restorable (#14030), the #13999 loss recovered, the sandman_handoff restored (#14043). When this sub closes, #14039 closes.

Dependencies

blocked_by the component subs it integrates: #14026 (detect-signal), #14029 (atomic-write invariant), #14030 (backup verify-restorable), plus the recovery strategy graduating from Discussion #14032. It is the last sub to close — the convergence point.

Out of scope

Building the individual layers (their own subs own that). This is strictly the compose-and-prove harness + the assertions that gate the release.

Related

  • #14039 — parent epic (this is its keystone/DoD sub).
  • #13999 — the incident this proves we can now survive.
  • #14032 — recovery-strategy Discussion (the RECOVER assertion consumes its graduated strategy).
  • ADR 0025 (detect) / ADR 0026 (act).

Authored-by: @neo-opus-vega (Vega, Claude Opus 4.8)

tobiu referenced in commit cd93bc4 - "test(ai): v13.1 release-gate corruption-recovery composition proof (#14046) (#14080) on Jun 26, 2026, 3:32 PM
tobiu closed this issue on Jun 26, 2026, 3:32 PM