Repository navigation
Avoid repeated terminal serialization on output-only frames - #810
Merged
flip-engineer merged 3 commits intoOct 17, 2026
Merged
flip-engineer merged 3 commits into
flip-engineer merged 3 commits into
Conversation
flip-engineer
marked this pull request as ready for review
October 17, 2026 08:33
This was referenced Oct 17, 2026
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.
Output-only native frames advanced the public log cursor and forced the observer to serialize its entire retained reducer state. A retained 455 KB terminal followed by 200 small progress frames caused about 1.4 GiB of additional resident memory in the isolated reproduction.
Persist the output position with the next reducer-state change or final checkpoint. Recovery replays from the prior durable raw offset and rewrites public output at the saved position. The added regression interrupts the observer after three output-only frames, adopts the same native process, and checks that replay preserves each public frame exactly once.
Merged as
91eb459479ef78bfa91bb2c19a67b0a178c8cb16. The source change contains one checkpoint predicate correction and its regression. The receive-loop refactor remains in #795.The correction is installed in the complete homelab CLI prefix
2.0.0-output-checkpoint-6a70bdef-20261017; both normal CLI aliases select it. Its manifest preserves the required distribution payload and records the executable's C-composition lineage. Executable SHA256:6a70bdef477f23d4f3e2b8eaf1d968f65199466a419b8f8e9e4104c41a0264f2. The executable combines the source-derived checkpoint closure with the qualified deployed full C artifact. Six C compiler jobs completed in 94.43 seconds, followed by 1.11 seconds to link.Remote validation of this full executable:
The affected live FFrames observer consumed its backlog and settled through the supported observer handover with its original native UUID preserved. After terminal settlement, its receiver endpoint was registered to the complete installed executable.
The cumulative-snapshot phase still fails its unchanged 768 MiB growth limit: the full executable reached 1,090,027,520 bytes of resident growth and 1,143,111,680 combined resident and swap bytes. That separate memory correction remains active. This PR resolves the output-only checkpoint defect; it does not close the overall memory issue. Related: #769, #776, #686.