# MARSTRACE 0.2 Basalt — executed local verification, 15 October 2026 This release adds a presentation adapter and the owner's Basalt rover to the verified synthetic engine. Core mission rules, engine, planner, runner, public DTOs, scorer and guard remain unchanged from f7284ce523c95c4f0bf6560b82383c23054d8fb1. The mission contract's initial no-3D presentation restriction was superseded explicitly by Main's 15 October integration authorization. ## Executed results - `npm test`: **35/35 PASS**, zero failed/skipped/cancelled in the final run. Original 25 retained; 10 additional mapping, interpolation, wheel travel, cadence, rejection, scan/arm, sample/energy, completion, local-vendor and fixed-scenario checks. - Baseline return-reserve fixtures: **180 PASS** (30 seeds × six batteries) within one test; not a scientific evaluation. - `npm run typecheck`: **PASS** with strictness and noEmitOnError retained. - Established production browser smoke: **8 grouped checks PASS** with four release-listed episodes. - Basalt production browser smoke: **9 grouped checks PASS**, including actual WebGL 2 rendering, six wheels, actual mesh endpoints/heading, material-based battery pips, sample tubes, smooth travel, camera interaction, mobile layout, no external requests, real instrument events, actual context-loss fallback, forced no-WebGL fallback, and early-Play clock regression. - Normal browser paths: **zero page/console/HTTP errors**, **zero foreign requests**. Failure paths deliberately simulate missing trace and unavailable/lost WebGL; their fallback is tested separately. - Source-matched original baseline traces retain their canonical hashes. Geometry does not import a world, engine or planner. - Clean-install/build, release CRC/hash/extraction and final artifact smoke: see the release handoff and package manifests after packaging. Do not infer those outcomes from this pre-package record alone. Node 22.23.2; npm 10.9.8; TypeScript 5.9.3; Three.js 0.186.1; @types/three 0.186.0; Python 3.12.10; PowerShell 7.6.5. Browser: Chrome 155.0.8059.40, existing playwright-core 1.63.0. No global tools/browser downloads. ## Retained failures and repairs 1. New renderer's first typecheck failed on an unused import; removed the import, with no strict checks disabled (`TYPECHECK_01.log`). 2. Initial expanded suite: 33/34 PASS, one FAIL for equivalent west headings -pi/+pi. Canonical positive-pi normalization fixed it (`TEST_02.log`); subsequent 34/34 and final 35/35 passed. 3. Established browser smoke exposed early-Play timing failure. A controlled regression with rAF timestamps 50 ms behind the click reproduced `INVALID_PLAYBACK` (`TIMING_REGRESSION_01.log` plus its failure JSON). The UI clamps the visual elapsed delta to zero until that display clock catches up; final legacy and Basalt smoke pass. Simulation time/actions/receipts were never modified. 4. Camera framing after a seek was visually clipped before focus settled. Immediate framing for discrete seeks repaired the presentation; reviewed screenshots show the full rover. Continuous travel retains smooth camera tracking. Earlier Branch C ambient-parent-types build failure remains historical evidence, separate from these integration checks. Research toy outcomes remain separate from all real-source tests. ## Validated scenario scope Three original seeded baseline missions remain. One additional fixed **instrument checkout** is actual engine output, with explicitly scripted SCAN, MOVE east, COLLECT, MOVE west, blocked MOVE south, STOP. Initial battery 12; final battery 5; science 7; one sample; STOP at base. It is an instrument/receipt exercise, not an autonomous planner comparison. Private fixture/config is only in offline reproduction metadata, never the browser bundle. EASY/MEDIUM/HARD labels and difficulty calibration are **NOT_RUN / DEFERRED**. ## Honest gates and limitations G0 PASS (tested public boundary); G1 PASS (replay/accounting); G1A PASS (atomic rejection); G2 NOT_RUN (no matched candidate comparison); G3 PASS (receipt-driven read-only presentation); G4 PASS **locally** (production browser, rendering and fallback); G5 NOT_RUN. H1/H2 NOT_RUN. Public hosting, portal compatibility, owner manual review, cloud sync completion and final submission remain unverified. Body positions, headings, wheel travel, energy, science, sample count and completion follow real accepted public receipts. Arm mechanics, suspension flex, scan cone, lights and geometry are illustrative, not a physical dynamics model. Rejections are absent from accepted traces, so no rejection replay telemetry is invented; accepted BLOCKED moves have no travel. Moving toward base is a displacement fact, not inferred planner intent. Three tubes show at most the first three collected targets; the displayed sample counter is exact. The source generator can be replayed offline; the viewer itself is prerecorded playback, not a live rover controller.