fix(events): address Codex review — balance step on step/start-listener throw, restore /goal guard
Codex review of PR-A found three blockers: - A throwing step/start session-event listener left an unbalanced log (turn/start → step/start → turn/end with no step/end), which the invariants oracle rejects — masked because that rejection was itself contained as a throwing turn/end listener. Fix the root cause in the loop: mark the step open BEFORE appending step/start (Session.append pushes before notifying), so the outer catch's closeStep() appends the balancing step/end. The test now asserts the balanced outcome (stepEnd:1, step/end before turn/end); proven load-bearing (revert the reorder → the test goes red with stepEnd:0). - Reintroduce the /goal-pattern guard deleted in the prior commit, migrated to a step/end session-event listener (the surviving step-boundary hook point), with a no-tools first step so it exercises the hasSteering continuation override. - Update packages/core/agent/README.md: step boundaries are no longer agent/* emits.
This commit is contained in:
@@ -32,10 +32,11 @@ The full `agent/*` event taxonomy is declared via declaration merging in `dsh-ag
|
||||
- `agent/status` — idle / running / disposed transition
|
||||
- `agent/queued` — message entered inbox (source-resolved, steering flag)
|
||||
|
||||
#### Turn/step boundaries (emit)
|
||||
#### Turn boundaries (emit)
|
||||
|
||||
- `agent/turn-start`, `agent/turn-end` (carries `TurnEndReason`)
|
||||
- `agent/step-start`, `agent/step-end`
|
||||
|
||||
Step boundaries are NOT mirrored as `agent/*` emits: a consumer that needs per-step boundaries reads the durable `step/start`/`step/end` session events (the session log is the live boundary feed). The turn boundaries stay as `agent/*` emits because the stdio UI needs the `Agent` handle (`agent.id`) at the boundary, which the session event does not carry. See [the event-domain-semantics RFC](../../../docs/rfc/implemented/architecture/2026-06-30-event-domain-semantics.md).
|
||||
|
||||
#### Interception seams (waterfall)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user