Repository navigation
Conversation
- Set requires_reply to false for breaker steer and constrain notices, and direct agents to contact god instead of replying to breaker. - Isolate notice send failures so later decisions can continue. Log the original error with action and agent context, and show a failure notification instead of the normal constrained notification. Do not retry potentially partially delivered messages. - Add regression coverage for reply defaults, terminal handoff, failure reporting, subsequent stop execution, and partial delivery.
This branch has not been deployed
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 & why
Circuit breaker
steerandconstrainmessages useact: 'request', which defaults to requiring a reply, butbreakerhas no agent inbox to receive one. This change explicitly setsrequires_reply: falseand tells agents to contact god rather than reply to breaker, while preserving normal request behavior. Notice send failures are logged with the original error and agent context, show a failure notification instead of the normal constrained notification, and do not prevent later decisions from running.Addresses #441, item 3 only. This does not address work progress detection or token retry activity, and does not change Hive routing, JSON parsing, or breaker policy.
Failed sends are not automatically retried because a message may already have been partially delivered.
Type of change
Evidence
Before
A local fixture using the real
HiveManagerreproduces the original breaker call shape from2c64612, withrequires_replyomitted. Bothsteerandconstrainmessages require replies. A normal agent request also requires a reply.This reproduces the original call behavior using the current Hive implementation. It is not a capture from checking out and running the old application.
After
Using the same fixture,
sendBreakerNotice()producessteerandconstrainmessages withrequires_reply: false. The normal agent request still hasrequires_reply: true.These captures verify the message contract. They do not claim that an agent can no longer choose to reply to breaker.
How I tested it
beforeandaftermodes against real Hive fixtures.npm run typecheckandgit diff --check. Both passed.Dedicated regression tests:
Broader targeted regression tests:
Coverage includes both notice types, normal reply defaults, explicit overrides, terminal handoff, missing reasons, and send failures. Failure tests verify that the original error is logged once, later sends and stop decisions still execute, a log write failure does not hide the send error, and partially delivered messages are not retried.
The tests do not launch Electron or an agent CLI.
Full validation is still pending. An earlier
npm run test:focusedrun reported 25 failures, and the full suite has not been rerun after the latest changes. Those failures have not all been established as baseline issues. An earlier build succeeded, butnpm run buildhas not been rerun after the latest changes.Checklist
npm run typecheckpasses.npm run test:focusedpasses.npm run buildsucceeds.DESIGN.md/tokens.ts. No custom colors, spacing, or fonts were added; failure notifications reuse the existing notification helper.ATTRIBUTION.md. Not applicable: no art was added.