Repository navigation
feat(core): sibling change notices for child agents — tracking and notice source (#380, 1/2) - #394
Merged
Merged
Conversation
…er and notice source (#380, 1/2)
🔍 Cora AI Code Review✅ No issues found. Code looks good! Review powered by cora-code · BYOK · MIT |
…are profile builds (#380)
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.
What
Part 1 of 2 of sibling change notices: the core mechanism. Wiring into
tole runchildren follows in part 2.Why
#380. Sibling child agents work blind to each other; when one edits a file another has read, the other should hear about it at its next safe point.
Changes
sibling_watch.rs(new): children are separate processes, so each tracked child appends reads/writes to one shared append-only log (owner-only, one shortO_APPENDline per access) and aSiblingWatcherfolds it. A sibling WRITE to a path this child read or wrote yields one notice per sibling per path per poll; the path stays quiet until the child reads or writes it again. Changes made before the child looked at a file are not news. Bounded to 4096 tracked paths; a half-written tail waits for the next poll; garbage lines are skipped.Trackedtool decorator: recordsread_file/write_file/edit_file/delete_fileon success, forwards the rest of the tool surface unchanged; recording failures never fail the tool.interrupt.rs/turn.rs: interrupts gain asource(owner | notice). A notice is delivered at the next safe point as an attributed entry (source: notice, "sibling notice" in the text) and never withdraws output or supersedes a final answer (only owner messages do).Scope
Depth-1 siblings only; the parent is not tracked; no registry, locking or ownership (explicit anti-goal: no swarm engine). The log is a same-user channel between processes that already share the parent's authority; a forged self-line can only add noise, not suppress or escalate.
Testing
Refs #380