# Verification — September 29 refinement This extends the existing public source release c281fd15bc5acab2. The original reports and failures remain available. The deployment receipt and final Worker hash are supplied separately with the release package. ## Implemented Home leads with Preserve · Ask · Verify and presents website development as a current service. Existing navigation, navy/orange identity, recovery demonstration, operator destinations and core Continuity distinctions are retained. Ask now compares the exact changed span, including equal-length changes, insertion, deletion and Unicode code points. Multiple separated edits are represented as one enclosing span, not a semantic interpretation or minimal word diff. Long excerpts are truncated to 240 code points; full source texts remain in Show the Record. No model is connected. Show the Record is a direct link to version history, saved source texts, transition kinds, browser-clock timestamps, linked fingerprints and a visible verification result. One local document remains limited to 100 versions and 20,000 characters per version. No private text is uploaded by this loop. ## Executed results - Regression: 22/22 tests passed after the retained failures and corrections. Raw transcript: tests.tap. Coverage includes original recovery behavior, all 729 model-state combinations, stale model rejection, text comparisons, version tampering, deletion transformation, route/redirect behavior, HEAD, security headers, rejected writes, local dependencies and the public-only offline cache fixture. - JC-001 v3: PASS. A real child operation exited 23; the synthetic agent claimed completion. Its scripted attempt to rewrite the parent’s execution.json was denied with ERR_ACCESS_DENIED. Before/after SHA-256 hashes matched. The result was CLAIM CONFLICTS WITH RECORDED EVIDENCE. See jc-001-v3.json for actual observations, source hashes, environment, procedure and limits. - Browser flow on localhost: preserved “The cat sat.” then “The dog sat.”; Ask reported cat → dog despite equal text length. Pointer activation of Show the Record opened both source versions. Verify exposed its result; Continue added a third version. Reload retained all three. - Continue before Verify was refused. A stale second tab was refused after the first tab saved a newer fourth version; the stale draft remained visible. - Deletion: removed the four synthetic versions through the explicit confirmation control. Reload showed zero versions and only a deletion timestamp/count receipt. This is application-level removal, not physical erasure. - Server-unavailable check: stopped the local server, reloaded the warm cached page, preserved “Offline record one” and “Offline record two”, asked, verified, continued and reloaded. All three new versions remained. This is not a physical network disconnect, power-loss trial or complete browser restart. - Accessibility/basic layout: inspected Home at 390×844 and 1440×900; no horizontal page overflow at 390px. At 200% text size on the 390px viewport, content reflowed with no horizontal page overflow; the large heading wraps within a word. Keyboard activation reached history; inputs have labels and status updates use a live region. No screen-reader audit or WCAG conformance certification is claimed. - Export: the page requested a download; the browser download-event wait timed out. Actual file delivery remains unverified. The UI accurately says “Download requested”. ## Security and remaining limits The public Worker serves allowlisted content, rejects writes with 405, retains the restrictive CSP, denies framing, uses nosniff, and keeps operator recovery redirects uncached. Record text is rendered using textContent, not HTML. These are basic regression checks and source review, not a penetration test. Operator authentication/authorization in the separate beta was not modified or retested. JC-001 exercises one denied Node filesystem write. Node permissions are not a malicious-code sandbox. The parent, evaluator and host remain trusted. Browser storage is outside that boundary and can be rewritten by a compromised same-origin application, browser profile or host. Hash consistency does not establish authorship, truth, tamper-proof storage or durable physical preservation. See https://nodejs.org/api/permissions.html. There is no live AI, multi-node sync, OS-level worker sandbox, encrypted vault, remote quarantine, device ownership system or Blututh implementation. Browser storage can be cleared or evicted. Deletion cannot remove exports, backups or stale copies in other tabs. Hardware failure, power loss, full browser restart, real assistive-technology use, physical touch devices and export delivery remain untested in this pass. Reproduce the suite with npm run build and npm test. Reproduce JC-001 using reproduce.md. Earlier failures are kept in first-tests.txt, packaging-first-tests.tap and corrections.md; earlier September 29 reports remain under /evidence/current/. Final browser security spot check: saved an img/onerror-shaped string as synthetic text. The history displayed it literally; the history contained zero img elements. Final editor initialization reached Ready and accepted the save.