What to build
Execute a smooth repeatable simulated camera path while controlling a stabilized gimbal, lens and exposure timeline.
Acceptance criteria
- Validate jerk/acceleration limits, POI/orbit/dolly paths and synchronized vehicle/gimbal frames.
- Record precise trigger/video timecode and camera command acknowledgements.
- Test operator handoff, target loss, mechanical gimbal limits and interruption/resume.
Blocked by
- #10 Mission engine: run and resume an owned waypoint mission
- #8 Hardware adapters: command and verify the first camera or payload
- #9 Operations: record, replay and diagnose native missions
Scope and evidence
This is planned work, not a claim of implemented capability. Preserve explicit operator authority and report simulator, bench, HIL and vehicle evidence separately. The owned implementation must remain replaceable behind the shared driver and mission contracts.
Owned hover reframe checkpoint
Published source: c0779cf. Native Stacks cinema:simulate executes one fixed hover POI angular reframe on the owned mission/runtime. Estimated body pose and delayed quantized joint encoders drive torque-limited simulated joints; actual body/joint state produces modeled image pixels. Three scheduled still exposures require scoped ACKs and qualified pose/frame association. Target loss, mechanical limits, camera loss, wrong ACK and vehicle RC override latch retirement without automatic shot recovery.
Semantics, evidence and limits. All seven actual compiled scenarios passed their expected status and exit checks outside the checkout. Nominal and disturbed runs retained three confirmed quality frames each. Combined current-host domain regressions passed 157 tests with 346,383 assertions; this combined count includes other domains. Published to origin/main at c0779cf. Exact-commit CI passed all five jobs on Linux/Bun 1.4.3: 1,066 passed, 39 skipped, zero failed and 407,300 assertions across 159 files, plus 13 Python bridge tests and compiled command checks. Skips are not executed evidence. Post-main CI also passed all five jobs.
The original acceptance boxes remain unchecked. This is an angular hover reframe, with translational POI/orbit/dolly paths, operator handoff, interruption/resume, lens/video/timecode, physical gimbal integration and broadcast timing still open. Synthetic still labels and private shutter ACKs do not establish firmware gimbal-manager protocols or device feedback. No physical or broadcast qualification is claimed.
Owned selected-source gimbal runtime
2c7b495 adds createGimbalAuthority and the separate concrete-v2 simulateManagedCinema library API. One immutable in-process operator/autonomy writer owns a bounded angle lease. Foreign or unattributed packets cannot replace its angle or renew its original issuance expiry; replay, malformed selected commands and trusted stop conditions latch a closed cause. Normal retirement and fault retirement remain distinct. Source tags are not authentication.
The same owned mission, estimator, delayed encoder, PD, plant, renderer and shutter produce actual modeled exposures. In the source-loss scenario, a foreign packet is refused at the first exposure; original expiry wins over returning renewal and ACK 20 ms later. Run/shot/capture retain gimbal-source-expired, the image stays uncertain, native reason stays operator-abort, and the original residual-motion tail remains. Nominal confirms three qualified frames and actually lands. Pure manual/neutral tests establish directives and latches only.
Both independent source reviews found no actionable issue. Combined affected checks passed 48 tests with 331,856 assertions; all seven complete legacy results remain byte-exact. Eleven rebuilt standalone v1 Cinema command cases match complete prior stdout/stderr bytes. Types, Buddy/direct Pickier and roadmap/parity integrity passed. Published to origin/main. Local Bun 1.4.2 full suite: 1,093 passed, 24 skipped, zero failed and 407,723 assertions across 161 files. Exact-commit Linux/Bun 1.4.3 CI passed all five jobs: 1,078 passed, 39 skipped, zero failed and 407,657 assertions, plus 13 Python tests and compiled command checks. Skips are not executed evidence.
No managed CLI, physical gimbal, source transfer/resume, rate or firmware lock modes, electrical watchdog, host-death protection, authenticated writer or full upstream parity is established. Original acceptance criteria remain open. Payload semantics, Cinema semantics.
Moving-camera readiness counterexample
The first fixed-path experiment on an unpublished candidate based on 2c7b495 returned halted / move-not-ready, with zero exposures and actual native aborted / operator-abort. The stage-to-waypoint transition occurred at 8120 ms; the next consumer observation at 8140 ms had only 21 consecutive qualified readiness samples from 7720 through 8120 ms, a 400 ms span. The contract requires 26 samples spanning 500 ms. The 8240 ms entry deadline had not expired.
Independent retained controller/encoder arithmetic confirmed that the missing earlier samples also failed angular readiness; changing a floating rate comparison would not repair the suffix. The complete first result and source were preserved. No dwell, threshold, gain, timeout or oracle was retuned. The candidate remains unaccepted and unpublished; its initial typecheck is not moving-shot, compatibility or full-suite qualification.
Next work is a separately versioned, source/task/epoch-bound readiness condition on native stage advancement, under existing authority, fence, reserve, timeout and replay rules. The initial proposal preserves the 1500 ms minimum dwell, 3000 ms stage timeout, 26-sample/500 ms readiness requirement and 1600 ms camera entry window. It is not implemented or predicted to pass. Pure native policy/replay comes before integration into the existing vehicle loop. Moving exposures, source loss during translation, image quality and actual landing remain unverified.
The native prerequisite is tracked in mission engine #10. All original acceptance boxes stay open.
Pure native readiness prerequisite (Phase A)
368a428 adds a separate pure library v3 readiness policy. A readiness-loiter retains its position hold until both 1,500 ms of continuous native arrival acceptance and a fresh selected declaration permit its planned edge. The 3,000 ms task timeout stays bounded. Declarations bind the current plan, run, task visit, source, reference and observation epoch; local labels are unsigned and are not authentication. Safety checks precede applicable abort; abort precedes running task timeout; timeout precedes readiness.
LIVE input is captured into canonical own data. Strict replay recomputes accepted decisions. Invalid observation/action and capacity errors permanently end the new engine's step availability while preserving the last accepted replayable prefix; the unrecorded blocked snapshot is not invented as a trace row.
Focused validation passed 12 tests / 278 assertions; the coherent affected suite passed 52 tests / 857 assertions. Types, Pickier and integrity checks passed. All 44 complete old native/vehicle library artifacts and nine complete Cinema outputs remain byte-exact. Twenty-two actual compiled legacy command cases matched all 44 retained stdout/stderr streams byte-for-byte. These compiled checks cover existing commands; no readiness CLI was added.
The local full-suite attempt at this exact commit failed with 17 recorded storage-resource errors (one SQLITE_FULL and 16 ENOSPC), then was stopped with exit -15 and no final summary. Its original log and failures remain preserved. After authorized cache cleanup, a separate exact-commit Bun 1.4.2 recovery check passed those 17 test cases: 39 assertions across four files in 72.37 seconds, exit 0. This focused recovery is not a local full-suite pass.
Separately, five existing nominal mission-workspace module results ran on both published 2c7 and candidate 368 in a real headless browser. All ten calls completed; the five complete JSON-plus-LF pairs matched byte-for-byte, totaling 1,842,364 bytes per source, with no browser errors. This checks existing module behavior, not a mounted stx UI or the new readiness API. Earlier probe-harness and launch-environment failures remain retained.
Exact-commit CI passed all five jobs on Ubuntu 24.04.5 / Bun 1.4.3: 1,090 passed, 39 skipped, zero failed and 407,935 assertions across 1,129 tests in 162 files (3,447.38 seconds). All 12 new readiness cases passed, along with 13 Python tests and the types, lint, build and compiled checks. Skipped tests were not executed. 368a428 was published to origin/main by a normal fast-forward push at 16:57:36 UTC on 20 October 2026, as Chris with no coauthors; the remote readback matched the exact commit.
This is a pure declared-policy prerequisite, with no readiness simulator or camera declaration producer connected. The earlier fixed-stage experiment remains failed and unaccepted: 21 readiness samples and zero exposures. Phase B integration is separate, unpublished work and has no qualified moving-camera result. Moving-camera readiness, exposures, source loss, raster quality and landing still require actual one-world qualification. No physical output, authenticated readiness or completed cinematography capability is established.
The native prerequisite is tracked in mission engine #10. All original cinematography acceptance boxes remain unchecked.
Native simulator integration checkpoint, 2026-10-20
The follow-up shared-world candidate is stopped and unpublished. Its first native vertical test passed its actual start/stage/release binding assertions, then failed the required completed-flight assertion with state blocked; that first invocation did not print its reason. A separately authorized unchanged diagnostic recorded blocked/task-timeout on land at 36,440 ms. Land entered at 29,440 ms, ground contact was first observed during land at 36,320 ms, and only 120 ms of qualifying settlement was credited before the unchanged 7,000 ms deadline. Native landing requires 500 ms. Replay matched the diagnostic decision; modeled board outputs ended zero and authority disarmed. Contact and neutral outputs are not a completed landing.
The existing global speedMps: 0.2 ramps position targets for every spatial task, including landing. This is a target-rate bound, not a measured vehicle speed cap. Static review found no landing-path extraction discrepancy. This single diagnostic does not prove universal infeasibility at that rate or a future camera result. No Cinema run was attempted, no later completion was observed, and the original failed test, source, diagnostic and earlier 21-sample/zero-image counterexample remain preserved. No deadline, gain, contact threshold, settling requirement, camera window or completion oracle was relaxed.
A separate legacy compatibility regression was reproduced: the refactor cached options.instrument, ignoring replacement by an aborting instrument. A limited repair preserves the original live options reference. Its new public test failed before the repair and passed afterward, with the replacement abort accepted at 620 ms; 25 existing mission tests passed, along with application/runtime/scoped TypeScript and Buddy lint. That repair is still part of the unpublished candidate. It neither explains nor resolves the native landing shortfall, and full output compatibility has not been requalified after it.
The next proposed prerequisite is a separate native version 4 plan/policy capability for explicit per-spatial-task target rates, with canonical plan data and exact replay. Published v1/v3 and vehicle v2 would retain their existing contracts. This is a reviewed direction awaiting an exact implementation contract, not implemented support or a selected faster landing rate. Simulator integration and any new cinematic profile still require their own first actual qualification. This issue remains open.
Published pure native task-motion v4, 2026-10-20
Commit 673d81462b300605ca65e1ec4e576d1324ad92a8 implements the pure per-spatial-task position-target rate capability and documents its boundaries. Omitted rates resolve once from the plan default into explicit canonical task fields. One shared policy uses the current task's rate before advancing; the successor rate starts on its next decision. Exact replay recomputes targets from those recorded rates. Native v1, vehicle v2 and readiness v3 remain separate contracts.
The final focused check passed 33 tests with zero failures and 788 assertions: 21 new v4 tests plus 12 existing v3 tests. Independent source reviews reported no actionable findings. All 53 complete prior library artifact pairs remain byte-equal. Their actual suffix is LF (hexadecimal 7d0a); a handoff label incorrectly said literal backslash+n and is corrected by a separate root evidence supplement, preserving the originals. Library artifacts do not establish compiled CLI stdout or browser execution.
This pure addition connects no v4 simulator, camera, physical control, CLI or recording consumer and selects no cinematic transit or landing rates. It does not qualify landing, image quality or the stopped translating experiment. Both earlier failed experiments and their unchanged acceptance limits remain preserved. Any future consumer proposal is still separate work; this issue remains open.
Local full-suite qualification passed 1,126 tests with 24 skips, zero failures and 408,511 assertions across 163 files. The Linux check passed 1,111 tests with 39 skips, zero failures and 408,445 assertions across the same 1,150 tests, plus 13 Python tests. All five effective CI jobs succeeded after one failed-browser-only retry. The original admission failure remains unexplained and open in #34; the retry does not erase it.
All 22 existing compiled mission/camera cases passed outside the checkout, with all 44 complete stdout/stderr streams byte-equal to the accepted previous version. Ten real-browser legacy module calls produced five complete output pairs, byte-equal across the two source versions, with no browser errors. These checks establish existing-consumer compatibility, not a new v4 consumer.
Commit 673d814 is published on origin/main through a normal fast-forward push as Chris, without coauthors. Its subsequent push-triggered CI run is still running; no later result is inferred.
Owned native4 mission world
The owned native4 mission world is published in commit f860f360289c41f1cb49977a64cc496160006202, integrating feature 45d25f6e4575350b6e916912da719bc478c2d94f with the published diagnostics and hardware guide. simulateTaskMotionMission uses the actual native4 engine on the same owned body, sensor, estimator, controller, supervisor and watchdog loop as legacy missions. It preserves the concrete native4 trace and replay contract.
The first complete modeled five-task flight held stage, used a 0.2m/s dolly target rate with 0.6m/s ordinary-leg target rates, traversed the authored two-meter goal, returned and completed landing at 25,600ms with neutral board output. These are commanded-target rates and modeled evidence. The readiness producer in this world fixture is a standalone declaration; it does not qualify camera readiness, moving images or physical flight.
Exact feature CI 39489236399 passed all five jobs. The actual local full suite passed 1,138 tests with 24 skipped and zero failures; Linux passed 1,123 with 39 skipped and zero failures. All 44 output streams from 22 compiled legacy CLI cases and five complete legacy browser-profile results matched the accepted baseline. The combined published commit separately passed Buddy lint, application/runtime type checks and the real native execution-browser test (2 passed, zero failed, 6 assertions). Its automatic post-main CI 39496510042 was still running at this update; no post-main pass is inferred.
The native task-motion world is now available for the separately scoped camera integration. Camera readiness, moving exposure quality, source-loss behavior and full return/landing for that consumer still require their own actual qualification. This does not complete this issue.
First native4 moving-camera counterexample
The first full nominal moving-camera experiment on an unpublished candidate based on f860f36 returned halted / move-not-ready at 5740ms. The native mission recorded aborted / operator-abort on stage, with neutral board output and no board fault. It did not return or land. No shot started and no image was taken. The complete first result was retained before the positive test's status assertion: 763132 bytes, SHA256 274fc26908a1543c79953e6d941c988382993a40a9505563988600e1609f8b8c.
Actual stage entry was 4100ms, first camera stage observation 4120ms, latest declaration 5700ms and latest shot entry 5720ms. Twelve early readiness declarations from 4620 through 4840ms were correctly refused before the native 1500ms dwell. Native dwell first allowed release at 5600ms, but no current readiness declaration was then available. The final six ready samples from 5620 through 5720ms span only 100ms, below the required 26 samples/500ms. No admitted stage-to-dolly transition occurred.
Independent static examination found a sufficient proximate reset at 5600ms: the stored quantized-encoder pitch rate was 0.050000000000000044, strictly above the unchanged 0.05 limit. Other earlier false readiness conjunctions are not fully reconstructable from the retained predicted-orientation suffix. This is no claim that an epsilon, different window or future measurement repair would qualify the shot.
The candidate and failed positive test remain frozen and unpublished. No retry, threshold/window/dwell/gain/cap adjustment, source-loss substitution or post-edit compatibility/full/build/browser qualification followed. The later readiness/raster/motion/landing assertions did not execute after the first failed status assertion. A separate count-domain encoder measurement prerequisite is under static design review; no implementation or success is claimed. The original acceptance boxes remain unchecked, and this issue stays open.
Published native4 world CI checkpoint, October 20, 2026
The automatic post-main CI run for exact combined main commit f860f36 completed successfully in all five jobs. Its Linux full suite reports 1,123 passed, 39 skipped, zero failed and 408,789 assertions across 1,162 tests in 164 files; 13 Python bridge tests also pass. Skips remain unexecuted evidence. This qualifies the published task-motion world plus the integrated diagnostics and hardware documentation; physical actuation remains disabled.
This is native-world and legacy-regression evidence. The retained translating-camera nominal still failed move-not-ready, with no admitted shot or captures. Count-domain measurement work and a future camera plan do not establish a successful moving-camera flight. All three original cinematography acceptance criteria remain unchecked.
Published count-domain gimbal prerequisite, 2026-10-20
8157713, included in published main 56363b5, adds measureCountedCinemaEncoder and createCountedCinemaGimbal. Velocity is computed from exact integer count differences before SI conversion. The owned producer retains delayed count packets, private command feedback and detached history snapshots. The original gimbal API and complete legacy outputs are preserved. Method and boundaries.
The combined candidate also replaces an unconditional real-clock IPC test-success assumption with controlled clock samples over genuine fragmented child IPC and explicit conservative rejection cases; production acceptance limits are unchanged (#35). The first original failed full run and separate purge diagnosis (#36) remain retained.
Qualification: local Bun 1.4.2 full suite passed 1,150 tests, skipped 24 and failed zero, with 413,558 assertions across 1,174 tests in 165 files. All 22 compiled legacy commands matched 44 complete published stdout/stderr streams. Ten real-browser legacy mission-module calls produced five complete byte-identical published/candidate pairs. Exact-commit Linux/Bun 1.4.3 CI passed all five jobs, including 1,135 passes, 39 skips, zero failures and 413,492 assertions in its full suite, 13 Python tests, 22 namespace tests, four rendered-workspace tests and two rendered-execution tests. Skips remain unexecuted evidence. Main was updated by a normal fast-forward push as Chris, without coauthors; remote readback matched the exact commit.
This is a measurement/controller prerequisite. The earlier moving-camera experiment remains failed and unaccepted. No new translating-camera API, admitted moving shot, moving-image quality, source loss during translation or completed return/landing camera run is established. All three original acceptance criteria stay unchecked. The separate counted-camera integration retains the original 1,600 ms entry window, strict rate threshold and full moving-flight oracles; its future result is not predicted by this prerequisite.
Local counted-camera nominal checkpoint (2026-10-21)
The first actual counted translating-camera nominal result now passes the independently reviewed saved-data oracle: 1 test, 0 failures, 47,637 assertions. This is local uncommitted Phase B work based on published 56363b52a3be029c1ac762109c3370e5acd6ea9f, not a new published camera feature or issue completion. The automatic CI on that published prerequisite also passed all five jobs: https://github.com/stacksjs/drone/actions/runs/39519277351.
The original limits stayed intact: 1,600 ms entry window, 26 actual samples over 500 ms, strict measured rate <=0.05 rad/s, independent native 1,500 ms dwell, 0.6 m/s ordinary tasks and 0.2 m/s dolly, the full planned 2 m leg and original optical geometry. Actual L/D/S were 4120/5600/5620 ms. All three independently checked rasters qualified within 2 px during positive forward motion; first-to-third capture displacement was 1.1752091525441215 m. The shot closed at 13620 ms and the actual native mission returned and landed at 25300 ms. Count history/private feedback, current native admission, trace replay, 501-row retirement tail, dynamics and encoded bounds passed the same saved-result oracle.
The complete first returned result was saved before assertions: 2753201 bytes, SHA256 6b092e324ae591e330cd97a2df812fd309e8a15afcb602c7092dd7d0475bbf7b; lossless own-data graph: 28771991 bytes, SHA256 7aa769fa03d296ec51d9b8108edf60e3f2a8856497e318de39f6c4fb55c47c95. Acquisition exited0. The initial saved oracle exited1 before any acceptance assertion because its pose reader reversed the protected helper's first two keys. Both independent reviews confirmed that ordinary decoder-binding defect. The reader's expected and reconstructed order was corrected, retaining all limits/assertions and an explicit old/new-test provenance binding. A separately recorded saved-only oracle then exited0 on the SAME original result, including existing trace-replay checks. No camera/world rerun replaced the first evidence or erased the original oracle failure.
Source-loss qualification is being prepared next: selected renewal940, foreign rejection/real uncertain exposure1000, expiry1020 before renewal/ACK, primary source-expiry cause, positive first-image motion, native abort and retirement tail. It has not run. Public boundary/ownership tests, fresh after-compatibility, final docs, full/build/compiled/browser/exact-head CI and publication for Phase B remain open. The earlier moving-camera failures and original acceptance checkboxes remain unchanged. This is simulation evidence, with no physical-flight, SITL/HIL, real gimbal, hardware timing or upstream parity claim.
Counted translation source-loss and feature qualification checkpoint, 2026-10-21 UTC
The separately retained first source-loss simulation and saved-result oracle passed: 1 test, 23,478 assertions. The selected source expired at simulated 6640 ms, before renewal and acknowledgement. The real image at 6620 ms remains uncertain without an acknowledgement; foreign-source input did not replace the selected source. The run recorded gimbal-source-expired, aborted its native mission, neutralized controls and retained the 501-sample terminal tail. These are software simulation results, without physical or firmware flight validation.
The bounded public-input and ownership cases passed separately (2 tests, 37 assertions). All 20 fresh legacy library outputs remained byte-for-byte equal to their pre-edit outputs, including encoding and BigInt paths. The original first nominal decoder failure and its same-result correction remain retained as described above.
The reviewed implementation is committed and pushed only to codex/cinema-counted-translation as a75c06554ea1eaebc34892dc90c97198d5d3228e (feat: add counted camera translation simulation), authored and committed by Chris without coauthors. Native lint, application type checks, runtime type checks and roadmap metadata checks passed. Metadata validity does not establish upstream feature parity.
The local full suite on pinned Bun 1.4.2 is still running. The exact feature-commit CI run uses the existing Bun 1.4.3 workflow; its browser, firmware and namespace jobs passed, while its main check remains running. Compiled CLI and browser compatibility qualification remain pending after the local full suite. Main still points to 56363b52a3be029c1ac762109c3370e5acd6ea9f. This checkpoint neither publishes the feature to main nor closes this issue.
Counted translation published, 2026-10-21 UTC
Published a75c06554ea1eaebc34892dc90c97198d5d3228e to origin/main with a normal fast-forward from 56363b5. Chris authored and committed it without coauthors. The five reviewed source files stayed unchanged through qualification and final integration.
The local full suite on pinned Bun 1.4.2 passed: 1,154 pass, 24 skip, 0 fail, 484,710 expectations, 1,178 tests across 166 files. A fresh compiled binary passed 22 commands; all 44 complete legacy stdout/stderr streams matched the retained f860 published baseline. The local browser check passed ten actual legacy module calls and five complete published/candidate JSON-plus-LF comparisons. Its first attempt stopped before launch because the helper and private Chrome copy were missing; the exact helper commit and original Chrome binary hash were restored locally without downloads, installs or upgrades before the first actual browser run.
Exact-commit CI 39527562754 passed all five jobs on the existing Bun 1.4.3 workflow. Its main suite reported 1,139 pass, 39 skip, 0 fail and 484,644 expectations over the same 1,178 tests/166 files, plus 13 Python tests. Separate namespace, rendered-workspace and rendered-execution jobs passed 22, 4 and 2 tests respectively; the firmware job passed. Remote Bun 1.4.3 evidence remains separate from local Bun 1.4.2 evidence.
Final integrity checks verified 4,026 protected tracked files, 378 retained candidate-history artifacts and the current comparison/prior-published binaries. An older unused 673d reference checkout was unavailable at final audit; that limitation and the initial guard failure remain recorded. The current comparison used the retained f860 baseline, without rebuilding or substituting that missing historical binary.
These checks qualify the scoped simulation and compatibility changes. They do not establish physical camera/gimbal operation, flight, firmware SITL/HIL, authentication, 4 ms vehicle jerk qualification or upstream feature parity. This issue remains open. The native cinema:translate command is a separately reviewed next step and is not included in this commit.
Counted camera translation CLI
The counted moving-camera simulation is available through the native Stacks command ./buddy cinema:translate and the standalone drone CLI. --scenario nominal is the default; --scenario source-expiry-with-foreign exercises loss of the selected gimbal source without switching to a foreign source. Completed runs exit 0. Non-completed runs, including that intentional loss scenario, retain their actual result and exit 1.
The command emits one bounded JSON summary through EOF, including actual mission/audit identity, capture counts, timelines, metrics and nullable acknowledgements. It invokes the owned simulation without changing its plant, controllers, limits or fixtures. Direct library consumers retain the detailed run.
Focused tests and complete source/Buddy/compiled output comparisons cover both new scenarios. The existing seven cinema scenarios retain byte-identical stdout/stderr across those three paths. The host standalone binary was checked in an external directory with project and Bun reads denied. Existing library evidence was retained by exact protected source identity; the CLI projection does not constitute a new physical camera or flight qualification.
Published f58b2503 to origin/main by a normal fast-forward push as Chris, without coauthors. Command semantics and limits.
The corrected full local suite on pinned Bun 1.4.2 passed 1,162 tests, with 24 skipped, zero failures and 485,590 expectations across 1,186 tests in 166 files. The original first full attempt remains retained as failed: its restricted PATH hid the existing CMake executable, producing three native-toolchain failures. No dependencies or tools were installed or upgraded. Restoring the original ambient PATH behind the pinned Bun and project binaries yielded a separate 53-test affected check with zero failures, followed by the complete passing suite reported here.
Exact-commit feature CI passed all five jobs on the existing remote Bun 1.4.3 workflow: 1,147 passed, 39 skipped, zero failed and 485,524 expectations across 1,186 tests in 166 files, plus 13 Python tests. The namespace, rendered-workspace, rendered-execution and firmware checks passed. Local and remote runtime evidence remain separate; skipped tests were not executed. The automatic post-main run is in progress at this update and is not reported as passed.
This increment leaves hardware, calibration, stabilization, firmware/SITL/HIL and field acceptance requirements open. All three original acceptance checkboxes remain unchecked; this issue remains open.
Published counted-camera CLI: main CI complete
The automatic main CI run 39546184024 for f58b2503 completed successfully in all five jobs. The remote Bun 1.4.3 suite reports 1,147 passed, 39 skipped and zero failures, with 485,524 expectations across 1,186 tests in 166 files; 13 Python tests also passed. Browser workspace/execution checks, isolated purge checks and firmware cross-compilation passed. This adds published-main evidence to the earlier feature and local qualification; it does not establish physical camera, vehicle, lens/video, broadcast timing or operational qualification. Existing open acceptance criteria remain unchanged.