VSO publishes research updates on post-approval changes, retention evidence and interoperability
This update groups merged work checked at 23:28 JST on 31 October 2026 into three research areas. It describes published, pinned revisions and first-party CI records; the experiments were not rerun for this announcement.
Research status — unadopted; independent reproduction not established
Proposals and experimental extensions remain unadopted. Independent third-party reproduction is not established. First-party CI across operating systems, languages or Python versions, and saved-evidence rechecks, do not establish independent fresh execution, adoption, full conformance, production assurance or certification. Counts are scoped separately and are not added together.
1. Evidect #27: changes after approval and separately observed effects
A separate Ed25519 context approval binds measured synthetic file bytes, a fixed destination and an observer identity without changing the existing gate. The wrapper remeasures before dispatch; a child process reads two fixed journals, keeping gate decisions and observations distinct. First-party Ubuntu 24.04 / macOS 15 CI with Node 22 passed 37 existing tests, 43 new tests and all eight expected synthetic cases per environment. Cases cover stable execution, three post-approval changes, ordinary denial, a controller-injected effect after denial, and observer loss before or after writing. The injected discrepancy remains CONTRADICTION; missing observations remain null / INDETERMINATE. A separate process on the same host and UID is not an independent authority. The injected effect is not proof of an external action by a denied agent. Reports remain unsigned; measuring a file neither attests loaded code nor resolves general check/use races.
Change / CI head: evidect-site PR #27 · 1773a41fff38a056cdd9ac894c932590633a0dca · First-party CI run
2a. VAP #39–#41: distinguish retention deadlines from deletion evidence
Documentary guidance, the separate offline incident-retention-adapter/0.1 around the unchanged erasure assessor, and a review handoff distinguish processing location, training use, deadlines, exceptions and scoped deletion claims. Evidence is bound to the request, provider, tenant, account, object and payload. A reached deadline does not establish completed deletion. Each first-party Python 3.12 / 3.14 CI run passed 42 new test methods, 16/16 synthetic scenarios and 16/16 saved-evidence rechecks, separately preserving 20 legacy tests and 23 cases. The documentation in #39 and #41 is not a new test execution. The adapter performs no deletion and establishes neither production-provider integration, universal deletion nor legal compliance.
Change / CI head: vap-spec PR #40 · f6c0d5f1eaef8dd971963cbfd667e42817a94652 · First-party CI run
2b. Evidect #22–#26: intake, follow-up and scoped review decisions
Related guidance, receiver-side evidence intake, follow-up, signed review decisions and an operator workflow distinguish OPEN, CLOSED_REVIEW, REOPEN_REQUIRED and UNASSESSABLE. Original dossiers and findings remain intact; evidence and retention/exception boundaries are reevaluated. Each first-party Python 3.12 / 3.14 CI run passed 72 tests, four intake cases, four follow-up cases and 12 workflow cases, plus the corresponding saved-evidence rechecks. CLOSED_REVIEW is a scoped work-decision state, not deletion success, control PASS, compliance or certification. Receiver policy, current-decision checkpoint, history and clock remain separately supplied unsigned assumptions. One test controller authors the synthetic decisions, so actual reviewer identity, human review and independent reproduction are not established. The 58 historical capture files are preserved.
Change / CI head: evidect-site PR #26 · 989f63e9a521eea068f53fcd6d74361cb968788a · First-party CI run
3. VAP #1: an experimental Python/Node interoperability demo
vap-interop-demo/0.2.0 checks separately supplied trust, role keys, scope, order, counts and record bindings. It uses the restricted DEMO-ASCII-SAFEINT-JSON-v1 format and RFC 6962 tree splitting, rejecting ambiguous numbers, duplicate keys and unsupported fields. First-party Python 3.12 / Node 24 CI passed 32 unittest methods; both CLIs matched eight vectors: two positive and six negative. Negative cases require the specified failure and exit code; crashes do not count as successful rejection. Eleven generated files also matched committed bytes. This local research format does not establish VAP conformance, organizationally independent observation, real key provenance, trusted time or external anchoring.
Change / CI head: vap-spec PR #1 · 3dea7ce88dbe7a0af22740602d17129dc80febaa · First-party CI run
vap-spec #39 · vap-spec #41 · evidect-site #22 · evidect-site #23 · evidect-site #24 · evidect-site #25
Preserve dated records and fixed distributions
The 30 October eight-update / 53-case record, earlier Explorer API 159 / GUI 26 and SDK Python 306 / TypeScript 140 records, VAP-LAP, research kits and Browser Recorder distribution and test records remain dated checkpoints. This publication adds explanatory content and links only; current normative requirements, schemas, existing implementations, signed data, fixed distributions and K3 are unchanged. Medical-AI VAP #42 remained an unmerged draft at the stated cutoff and is not counted as executed work here.