Repository navigation
Make every example run as documented and handle the errors they dropped - #71
Merged
Merged
Conversation
Running each example the way its README says turned up: - life: FMESH_GRAPH=1 wrote the graphs and then started the simulation, so `make graph` hung. It now returns after the graphs, and the habitat graph is no longer written twice. - nesting: the inner mesh ran on context.Background(), so the outer run's cancellation and time limit never reached it. Its graph call could never fire and is gone. - graphviz: printed cycle numbers and file names now start at 1, like the cycle numbers in the graphs. - can_bus/advanced: every controller called SetPrefix on the logger the whole mesh shares, so MCU and laptop lines carried a controller's prefix. Each controller now has its own logger. The examples ignored the errors of PutSignals, PutPayloads and similar calls in many places; they are now returned from activation functions or handled in main. Builders return errors instead of calling os.Exit. Also: README fixes (filter, can_bus/basic, life TUI), make test and the life README use CI's 60 minute timeout, pipeline adds its components in one batch, and .gitignore covers the binaries and files the examples generate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Y8J4ENomH5Zmc83H86Z8h
hovsep
force-pushed
the
claude/project-thread-f0ednh
branch
from
October 5, 2026 13:41
2ce3ec8 to
9e8d910
Compare
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.
Why
All 15 examples were run the way their READMEs describe.
Before:
FMESH_GRAPH=1wrote the graphs and then started the simulation, somake graphhung.context.Background(), so cancellation and the time limit never reached it.Cycle #0and wrotecycle-000.dotfor the graph that says "Cycle: 1".SetPrefixon the logger the whole mesh shares, so MCU and laptop lines carried a controller's prefix.PutSignals/PutPayloadserrors were ignored.After: each runs as documented, every one of those errors is returned or handled, and each controller has its own logger. Builders return errors instead of calling
os.Exit.Also: README fixes (filter, can_bus/basic, life TUI);
make testand the life README use CI's 60 minute timeout; pipeline adds its components in one batch;.gitignorecovers generated binaries and files.Builds and vets against the released fmesh v1.17.0. The regenerated life graphs are a separate PR.