fix: third-wave findings (example + canvas) - #365
Conversation
…-safe attempt receipts, canvas accuracy
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e406d3a84
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| title="Thin client prints the host-native response and exits 0" | ||
| channel="wrapper → Claude · stdout" | ||
| note="Claude blocks the Write and surfaces the reason to the model. If the route had decided to allow it, the wrapper prints an explicit hookSpecificOutput.permissionDecision: 'allow' (optionally with updatedInput / additionalContext); a route that renders no decision prints nothing." | ||
| note="Claude blocks the Write and surfaces the reason to the model. On tool/before the wrapper always answers: an explicit hookSpecificOutput.permissionDecision ('allow' unless the route denied, optionally with updatedInput / additionalContext) — even when the route renders no decision. Silence is reserved for observation-only families such as session/end." |
There was a problem hiding this comment.
Limit the silence claim to this tool/before step
The last sentence is broader than the implementation: projectEventDocument returns undefined for decision-capable stop when the outcome is not deny (packages/agent-bundle/src/events/projection.ts:398-402), and for prompt/submit when neither a block reason nor context is emitted (projection.ts:472-474). These families are not observation-only, so readers could incorrectly infer that every actionable hook always emits a response. Keep the explicit-allow statement scoped to Claude/Codex tool/before without claiming silence is exclusive to observation-only families.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in #397 (merged as d25a9c6). The walkthrough canvas wording now matches events/projection.ts: silence is the default for observation-only families and is also valid for decision-capable families (stop, prompt/submit) that choose not to decide. The same edit was applied to the managed copy at ~/.cursor/projects/fast-projects-agent-bundle/canvases/agent-bundle-walkthrough.canvas.tsx; cmp confirms the two files are byte-identical.
Summary
undefined-valued keys that the strict JSON receipt writer rejects — absent fields are now omitted (identified + attempts)Test plan