Skip to content

Preserve storage I/O and structured failure evidence - #129

Open
tamashi095 wants to merge 8 commits into
mainfrom
codex/128-storage-error-contract
Open

tamashi095 wants to merge 8 commits into
mainfrom
codex/128-storage-error-contract

Conversation

@tamashi095

@tamashi095 tamashi095 commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Storage failures while opening sparse browser storage currently surface as verified audio corruption before any download. This change exposes storage.io with operation/resource/phase and original exception evidence, keeps invalid declarations distinct, and requires actual differing byte/hash evidence for integrity failures.

Public and Worker error transport preserve nested aggregate causes, interruption, body, and cleanup roles within a 16 KiB UTF-8 bound. The existing serializer reserves useful summaries and structural punctuation for the entire admitted cause tree before optional details. Physical writes still settle before cleanup; failed/cached session close is not retried or forcibly released. The package version remains 0.5.13 pending the normal reviewed release workflow.

Validation on reviewed implementation 27795844c2ebaed2061eb0b6cdde0d15a2550973 (the following commit only records evidence):

  • npm run check: 396 tests passed, including formatting/lint/wasm/decoder/package gates; packed output 248 files / 507,013 bytes.
  • Focused error/OPFS/sparse tests: 104 passed, including root refusal before fetch, foreign corruption-code payloads, real digest/length mismatches, invalid declarations, cancellation and cleanup evidence.
  • Fresh independent Astra medium review approved after Luna max implementation and repairs. Independent recursive transport verification: 1,835 cases / 14,680 checks, maximum 16,337 UTF-8 bytes, with depth/width, Unicode, escapes, repeated serialization and revival.
  • Fresh packed Chromium 151.0.7922.34 consumer passed, 15 assets, no request failures or console errors. macOS browser CI passed on exact PR head 512029f387d3edb27608cdc9c57195219ba6889d: macOS 15.7.9 arm64, Chromium 151.0.7922.34 and WebKit 26.5. Both browsers passed actual OPFS cold/warm, marker-failure and late-cancellation checks plus packed indexed-sparse three-worker qualification. Artifact opfs-35694712900-1 records checkout, runner, tools and browser evidence. The earlier Linux WebKit capability limitation is superseded for this upstream candidate by actual macOS WebKit results.

Real iPhone qualification remains an app release gate. Fault injection does not identify the original device exception. No package is published by this PR; app adoption requires the separately published fixed artifact.

Closes #128. Supports misofm/app#294.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Preserve structured storage failures instead of classifying them as verified corruption

1 participant