Repository navigation
The two-month review: 92 defects fixed across the sim, the firmware and the CLI (4.36.0) - #555
Merged
Merged
Conversation
…nd the CLI (4.36.0) A review of every change since 2026-08-07 (177 commits, 24 review passes over 12 subsystem slices, two verifiers per finding) found 92 defects; all are fixed here, each with a dedicated test that fails on the old code, plus eleven regressions a second review of the fixes caught. The CHANGELOG entry lists them by area; the user-visible changes are: - hub: encoder-servo DriveBase.reset() raises mid-move and re-zeroes an ICM-45686 heading (the 1.93.0 contract); a QTR array's pin claims last one program; the signed entry ramp, the carry-handover clamp, curve(0) clearing the stop rule, the late start-press marker; run-log edge counts and ticks-wrap-safe durations. - sim runtime: the reset pose follows adopted wheels; every run ends coasted with the gyro off; stale pending stops, task-motor torque left on a wheel slot, then= validation as the hub, open-loop Servo.run(); speed changes re-anchor; maps export atomically, check their references, keep the user's name, import cleanly, list an unconvertible legacy map instead of hiding every other one. - brick library: stud tubes, phantom pin holes, the 24-tooth gear's axle hole (bundle rebuilt: 32123, 32269, 32270, 32474, 33299, 3648), zip-slip and `..` reference refusals, coarser packing for long parts, alias shadowing, a web page that refuses out loud. - desktop sim: undo carries path and unsaved state; the refusal banner, magnet-seat undo points, drag heights; validation of mesh records, component cycles, roots and cylinder axes; drafts land after the last change and an undo to clean drops them; window title; orbit direction; bad files end the launch; route loading refuses what it cannot place; the run-server reader survives any line; imports wait for a running program; Save changes writes the map shown. - CLI: servo-id -n runs through the launcher; the upload lock works across accounts; unversioned firmware asks before flashing; old hubs are re-probed; upload output is clean; bare `openbricks sim FILE`. - CI: the rolling `latest` release publishes on main pushes again (skipped since 4.2.0); the versioned release and the PyPI upload wait for every test job. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016higr4k4yNohYeKod1f1HY
The new carry-handover check used M_PI, which clang exposes under -std=c11 and GCC does not; the core's own guard now covers the test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016higr4k4yNohYeKod1f1HY
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #555 +/- ##
==========================================
+ Coverage 95.72% 97.39% +1.67%
==========================================
Files 50 88 +38
Lines 5192 32646 +27454
==========================================
+ Hits 4970 31796 +26826
- Misses 222 850 +628
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A review of every change since 2026-08-07 (177 commits): 24 review passes over 12 subsystem slices, two verifiers per finding, 92 defects confirmed and fixed, plus 11 regressions a second review of the fixes caught. Every fix ships with a dedicated test that fails on the old code. The CHANGELOG 4.36.0 entry lists everything by area; the headline user-visible changes:
DriveBase.reset()on encoder servos raises mid-move and re-zeroes an ICM-45686 heading (the 1.93.0 contract); QTR pin claims last one program; a move armed against faster opposite motion tracks its real profile (signed entry ramp); a short carry segment hands over at the reachable speed;curve(0)after a brake is a move, not a stop; a long-held late start press no longer kills the run; log durations survive the ticks wrap.then=validation and open-loopServo.run()fixed; speed changes re-anchor; maps export atomically, check references, keep the user's name, import cleanly, and an unconvertible legacy map no longer hides the others...reference refusals; coarser packing for long parts; alias shadowing; the web page refuses out loud.servo-id -nruns through the launcher; the upload lock works across accounts; unversioned firmware asks before flashing; pre-1.92.0 hubs are re-probed; clean upload output; bareopenbricks sim FILE.latestrelease publishes on main pushes again (it had skipped since 4.2.0); the versioned release and the PyPI upload now wait for every test job.Local verification: Rust 225 passed (+ the known stale-extension real-runtime failure, CI rebuilds it), clippy clean; host suite 1030 passed (+ the 9 known stale-extension failures and one CI-only docstring test); C cores ASan/UBSan clean; unix MicroPython and CPython firmware legs green; patch coverage 97% on both sides; offline docs rebuilt.
🤖 Generated with Claude Code
https://claude.ai/code/session_016higr4k4yNohYeKod1f1HY