The runtime now retains test starts and final host-reported outcomes inside each saved review's test_runs map. The native host must obtain a successful begin_development_test reply before launching Node. A refused or unconfirmed admission does not launch tests. finish_development_test settles that run once; identical retries are idempotent and conflicting terminal reports refuse.
These are development-test-run@1 records with native-host-reported-tests provenance, for the closed super-javascript-behavior@1 profile. They are not Carrier validation jobs/receipts, signed attestations, or task acceptance. The host reports what its existing isolated runner observed. The runtime verifies record relationships and shape; it does not re-execute tests or independently attest the host.
Start admission checks the saved review revision, current plan revision/status, dismissal, registered repository path and current world incarnation/generation. The native preflight also verifies the full framed world identity and held workbench generation. Review/result identities come from stored runtime data; the page supplies no code, host path or outcome. Both bridge commands remain native-host-only; no human/agent CommandSpec command or new webview permission was added.
Each run has its own revision: 1 at start and 2 at final outcome. Test events do not bump the human review-note revision, erase notes, change plan status, mint grants, or write Carrier receipts. Outcomes must match the admitted source basis and proposed-file digest. A completed result requires a concrete snapshot digest, Node digest, nonzero bounded test count and pass/fail verdict. Execution failure/cancellation has a reason and no verdict. Full snapshot identity is observed and recorded at completion; admission binds the review and profile rather than pre-committing to a whole-tree digest before capture.
The existing 64 KiB review directory budget remains enforced, including JSON expansion. Each unfinished admitted run reserves 4608 bytes, while outcomes are limited to 4096 encoded bytes. Subsequent notes and records cannot consume this reserved result space. Each review retains at most eight runs. The runtime keeps up to 256 output characters, with an explicit omission flag; the native device cache retains the full bounded output and snapshot.
The UI now confirms Runtime start recorded · awaiting final outcome and Start and outcome saved in runtime. Runtime events no longer rebuild and close the entire review panel. If local test files disappear, runtime history still displays the verdict/reason, snapshot identity and retained output preview. The empty status strip after reopening was also removed.
Verification covers idempotence, stale/wrong inputs, missing starts, immutable terminal results, cancellation without pass, reserved capacity, independent notes, and Loci store restart. Native workflows exercise real start/finish bridge calls, pass/fail, cancellation, page reload, and removal of only the disposable app's local test cache. Test providers remain deterministic fixtures. See the task's Super_Runtime_Test_History_Implementation.md for derived totals, screenshots and source changes.
Remaining lifecycle gap: if the native host loses the runtime connection while reporting completion, the local record retains output and marks runtime-save failure; the runtime start remains unsettled. Crash reconciliation, retry/recovery UI, app-process restart/world-rollover testing, exact-result acceptance and real-model dogfooding remain open. An unsettled start is never inferred to pass or fail. Local cache files are not automatically imported as authoritative outcomes.