feat(hostevent): codex-rollout transcript scanner — enables codex save-nudge - #358
Conversation
…e-nudge
Rollout JSONL lines are timestamped envelopes ({type: session_meta |
response_item | event_msg | …}); only response_item payloads carry model
traffic. Scanner counts function_call + local_shell_call items; Ghost save
detection is separator-agnostic over codex's flattened tool identity
(namespace+name, MCP namespaces take mcp__<server>), so mcp__ghost +
ghost_memory_save and legacy flat forms both match while other servers
cannot collide.
Parse now completes absent codex envelopes to codex-rollout instead of
none, turning on the capability-gated save-nudge for codex stops.
Golden fixture pins meta/event noise, errored shells, and cross-server
non-collisions. Verified shapes against openai/codex source (rollout
decode_rollout_line, protocol ResponseItem, tools::flat_tool_name) and
the recorder test fixtures.
Signed-off-by: agentskinner <agentskinner@proton.me>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Reviewer Guide 🔍(Review updated until commit 02926c6)Here are some key observations to aid the review process:
|
|
/review |
|
Preparing review... |
|
/review |
|
Persistent review updated to latest commit 41130d9 |
|
Confirmed — the reviewer finding is real. |
Substring detection let a different server's identically-named tool (namespace mcp__other + name ghost_memory_save) count as a Ghost save, skipping the codex nudge when nothing was saved. Replaced with an exact identity set: bare legacy names plus mcp__ghost-namespaced forms, per codex's no-separator namespace+name flattening. Adversarial case added. Signed-off-by: agentskinner <agentskinner@proton.me>
|
Fixed in c908371: save detection is now exact-match against the four flattened identities (bare legacy names + |
|
/review |
|
Persistent review updated to latest commit 02926c6 |
Follow-up to the Phase 2 adapters: codex stops now get the full save-nudge.
ScanCodexRolloutparses codex rollout JSONL (timestamped envelopes; onlyresponse_itempayloads carry model traffic) and countsfunction_call+local_shell_callitemsnamespace+name, MCP namespaces takemcp__<server>): bothmcp__ghost+ghost_memory_saveand legacy flat forms match; other servers cannot collideParsecompletes absent codex envelopes tocodex-rolloutinstead ofnoneShapes verified against openai/codex source:
rollout/src/lib.rs(decode_rollout_line),protocol/src/models.rs(ResponseItem::FunctionCall, optionalnamespace, test fixture"namespace": "mcp__codex_apps__gmail"),tools/mod.rs(flat_tool_nameconcatenates namespace+name), plus recorder test fixtures.@coderabbitai review