Files
tech-log-frontend/docs/operations/adapter-remediation-dispositions.json
DongHyeonkaandClaude Opus 5 4bff9ca151 chore: sync the frontend template from 4dc033c to 8157ad4
The product was materialized from the template at `4dc033c` and has stayed
on it through 43 template commits, so it was missing all three rounds of
adapter remediation — including files it never had, such as the shared
`abortable-operation` primitive and the `exact-snapshot` decoder that
later fixes are written against. Taking only the newest round was not
possible for that reason: the delta is coherent only as a whole.

The product had not touched `src/adapters` at all since materialization,
so the 140-file delta applied with a three-way merge and no conflicts.
`package.json` was the single overlap and merged cleanly: the product owns
`name`, the template contributed `check:adapter-inventory`,
`check:remediation-ledger` and the image-resolve-signal type fixture.
All 24 product-owned files — README, index.html, CI workflow, i18n
catalog, home page, generated schemas, evidence scripts, component and
visual snapshots — are byte-identical to `main`.

`template.lock.json` now pins the synced revision and tree.

Verified in this repository, not inherited from the template: six type
projects, lint, nine gates (adapter inventory, remediation ledger,
registries, diagnostics, realtime boundaries, architecture, browser
file/storage boundaries, optional recipes, documentation), the production
build, and 2,054 of 2,073 tests. The 19 failures are all in
`tests/unit/ci-artifact-contract.test.ts` and are the same pre-existing
sandbox RLIMIT, EMFILE, umask and `/tmp` permission behaviour the template
records; four suites that failed once under parallel load pass in
isolation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 12:04:58 +09:00

189 lines
7.6 KiB
JSON

{
"schemaVersion": 1,
"review": "third-review-2026-08-14",
"note": "GOV-03. The machine-readable disposition of every finding the third re-review raised. `check:remediation-ledger` joins this file against the prose ledger and refuses a blanket closure claim while any row is not FIXED, so a summary sentence can never outrun the evidence.",
"dispositions": [
{
"id": "NS-01",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A credential owner's answer is decoded once, inside the auth boundary, through own data descriptors.",
"evidence": ["tests/integration/http-execution-v3-live-authority.test.ts"]
},
{
"id": "NS-02",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "Contract composition snapshots first and validates the snapshot, so the installed row is the row that was checked.",
"evidence": ["tests/unit/contract-registry-immutability.test.ts"]
},
{
"id": "NS-03",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "The `responseBody: NONE` probe owns its reader: the operation lifetime reaches it, and the lock is released.",
"evidence": ["tests/integration/http-execution-v3-live-authority.test.ts"]
},
{
"id": "NS-04",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A journal transaction that cannot be completed is maintenance debt, not a settled write.",
"evidence": ["tests/unit/opfs-byte-store.test.ts"]
},
{
"id": "NS-05",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A bootstrap failure answers with the request kind it belongs to, so the real cause survives the gateway.",
"evidence": ["tests/unit/opfs-worker-runtime.test.ts"]
},
{
"id": "NS-06",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A reply is decoded before its pending row is released, and an uncorrelatable reply fails the channel closed.",
"evidence": ["tests/unit/opfs-worker-runtime.test.ts"]
},
{
"id": "NS-07",
"previous": "NEW",
"disposition": "FIXED",
"summary": "Cursor caps and collaborators are captured at construction, so a later mutation cannot widen a validated cap.",
"evidence": ["tests/unit/cursor-pagination-runtime.test.ts"]
},
{
"id": "NS-08",
"previous": "NEW",
"disposition": "FIXED",
"summary": "One terminal owner covers the whole public-cache staging body, so nothing writes after the abort.",
"evidence": ["tests/unit/public-response-cache.test.ts"]
},
{
"id": "RPC-01",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "Only a fulfilled, contract-shaped `waitClosed()` receipt prunes an active stream registration.",
"evidence": ["tests/unit/browser-rpc/browser-rpc-remediation.test.ts"]
},
{
"id": "RPC-02",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "Iterator cleanup and the lease decoder read foreign state inside their own boundaries.",
"evidence": ["tests/unit/browser-rpc/browser-rpc-remediation.test.ts"]
},
{
"id": "RPC-03",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "Every registry is snapshotted before any validation runs, and rows with hidden fields are refused.",
"evidence": ["tests/unit/browser-rpc/browser-rpc-remediation.test.ts"]
},
{
"id": "RPC-04",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A transport result is an exact union: required own keys, no inherited extras, plain prototype.",
"evidence": ["tests/unit/browser-rpc/browser-rpc-remediation.test.ts"]
},
{
"id": "RT-01",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A tracked task is registered before the authority is invoked, closing the reentrant-close window.",
"evidence": ["tests/unit/realtime/stream-coordinator.test.ts"]
},
{
"id": "RT-02",
"previous": "NEW",
"disposition": "FIXED",
"summary": "A scheduler that cannot install a deadline fails closed inside the realtime result contract.",
"evidence": ["tests/unit/realtime/stream-coordinator.test.ts"]
},
{
"id": "TR-01",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "The vault snapshots a registration and everything nested in it before validating or storing it.",
"evidence": ["tests/unit/presigned-transfer.test.ts"]
},
{
"id": "TR-02",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "A source lease that arrives after the delivery ended is closed exactly once by a compensator.",
"evidence": ["tests/unit/presigned-transfer.test.ts"]
},
{
"id": "TR-03",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "The shared abort primitive settles once by observation order, and all four consumers use it with bound timer snapshots.",
"markers": ["X-AUDIT-01", "X-AUDIT-02"],
"evidence": [
"tests/unit/abortable-operation.test.ts",
"tests/unit/image-cdn-runtime.test.ts",
"tests/unit/resumable-upload-fetch-transport.test.ts"
]
},
{
"id": "TR-04",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "Teardown proves quiescence of the raw provider registry, not only of the wrappers that bound it.",
"evidence": ["tests/unit/resumable-upload-runtime.test.ts"]
},
{
"id": "TR-05",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "The control-plane decoder validates an owned snapshot, so a stateful answer cannot swap a checked value.",
"evidence": ["tests/unit/resumable-upload-http-control-plane.test.ts"]
},
{
"id": "SW-01",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "The activation marker read is bounded in bytes, cancels what it refuses and releases its reader lock.",
"evidence": ["tests/unit/service-worker-runtime.test.ts"]
},
{
"id": "SW-02",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "The generator and the runtime decoder share one canonical asset-path predicate, and the generator self-validates.",
"evidence": ["tests/unit/service-worker-web-push-remediation.test.ts"]
},
{
"id": "WP-01",
"previous": "PARTIAL",
"disposition": "FIXED",
"summary": "One observation authority per click; certainty is monotone and the late-effect tail is owned by `waitUntil`.",
"evidence": ["tests/unit/web-push-worker-runtime.test.ts"]
},
{
"id": "GOV-03",
"previous": "OPEN",
"disposition": "FIXED",
"summary": "This file plus `check:remediation-ledger` bind each row to a disposition and a test path, and block a blanket closure claim while any row is open.",
"evidence": ["scripts/check-remediation-ledger.ts"]
},
{
"id": "GOV-04",
"previous": "OPEN",
"disposition": "FIXED",
"summary": "The inventory gate requires the exact named consumer set to resolve its import to the shared primitive and prints the set.",
"evidence": ["scripts/check-adapter-inventory.ts"]
},
{
"id": "GOV-05",
"previous": "OPEN",
"disposition": "FIXED",
"summary": "Duplicate abort mechanics were consolidated onto the shared primitive and the file-transfer budget was reset to cover the remaining correctness code.",
"markers": [],
"evidence": ["config/recipes/frontend-capability-recipes.json"]
}
]
}