feat(lineage): host-test probe, live host lineage matrix, and runtime-held request.lineage - #421
Conversation
🦋 Changeset detectedLatest commit: cdb5b31 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
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. |
commit: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 87c270f30d
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bce5d1ffe1
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 340c61d7f5
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d68ad646cc
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8d8e09650e
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 16ef19faeb
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bab2ddc71f
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6297b5c636
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9f8939392e
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ea13811ac2
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f757ade976
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0cb78d06bd
ℹ️ 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".
…n on a cold session/end, release a retired root's correlation windows (review)
…ed Claude ids as misses, dedupe storeless redeliveries (review)
…ecord windows only for placeable carriers (review)
…ads, stay in memory after a durable commit failure, retire the journal from standalone session/end (review)
…tive spawn spellings; probe redacts Basic/cookie/header credentials (review)
…, remember start identities past node pruning (review)
…his run's captures as evidence (review)
…o degradation keeps suppressing redeliveries (review)
…P server together after rebasing onto main
…ls lineage through sqlite
|
@codex review |
e1e46ce to
cdb5b31
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Review-status tracking (final sweep, 2026-09-03 16:37 UTC): |
|
You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard. |
Summary
examples/host-test— a probe plugin covering every canonical event family (targets restricted per pinned capability table), a generatedhost-testMCP server (dump/reset), a hand-rolledhost-test-rawserver that records the raw MCP request envelope, a renderedhost-test dumpCLI, and scriptedprobe:install|capture|uninstall <host>into isolated homes (/tmp/host-test/<host>-home) that never touch~/.claude,~/.codex, or~/.cursor.probe:capture claude --scripted-modeldrives the real Claude Code binary against a checked-in scripted Messages API so Claude captures need no account.docs/audits/2026-09-03-host-lineage-matrix.mdwith redacted captures underfixtures/host-lineage/from live Claude Code 2.1.257, Codex 0.147.0 (gpt-5.6-sol), and Cursor 3.18.25 desktop (isolated Xvfb instance driven over CDP), each with a subagent and a nested subagent. Answers the maintainer's question per host: who can see children / parents / roots, which id a subagent's events carry, hook↔MCP ordering and what_metacarries, and hook-process env names.request.lineageonAgentRequestContexteverywhere (events, generated MCP tools, routed CLI, rendered scripts):{ conversation, root, parent?, depth, generation?, subagent?, resolution }, resolved by a new runtime-held agent lineage registry (@agent-bundle/runtime/lineage) journaled through the state kernel beside project state (durable only where the project already has workspace-durable state; process-lifetime otherwise), fed byagent/start,agent/stop,tool/before,tool/after. MCP calls correlate via Claudeclaudecode/toolUseId, Codexx-codex-turn-metadata(native parent/root), or Cursor's openMCP:<tool>pre-tool hook. Typed unavailability:no-subagent-events,id-not-resolvable,cloud-agent-no-user-hooks,no-shared-runtime,unsupported-surface,not-provided.lineagecapability rows in all four host tables; Workbench Lifecycles shows the lineage axis and a root→parent→request chain;openInMemoryMcpServer({ lineage, lineageHost })for projection tests.PostToolUsetool_responseas a plain string; the pinned validator rejected every such event (tool_response must be an object). Presence is now the only host-independent rule (as on Codex).Evidence
examples/host-test, Claude scripted-model capture, reinstalled probe): every hook anddumpcall resolves depth 0/1/2 with correct parents;probe:captureoutput is in the matrix's §6.fixtures/host-lineage/*.ndjsonreplayed bypackages/rsc-runtime/tests/lineage-registry.test.ts(6 tests) and the in-memory MCP correlation ordering testpackages/agent-bundle/tests/projection/mcp-lineage.test.ts.cursor-agent status→ not logged in); Claude session used a scripted model because this machine has no signed-in Claude account (host plumbing is real).Test plan
pnpm typecheck,pnpm lintpnpm test:unit(only pre-existingnative-claude-contract5 s timeout flake on the loaded machine, fails identically on the baseline)pnpm test:route-unit,pnpm test:projectionpnpm build && pnpm test:integration:run(failing files rerun green in isolation after the durable-gating fix; full rerun in progress)pnpm examples:checkexamples/host-testprobe:install/capture/uninstallon claude (scripted model), codex (live), cursor (isolated IDE)Review status
0cb78d06bd(pre-rebase). Its content is the commitsfeat(lineage): add examples/host-test probe…throughfix(host-test): allowlist the probe host environment…on the current history. Every thread it left (11 rounds, 40+ threads) is fixed and resolved with a reply naming the fixing commit.@codex review(14:58, 15:27, 15:4x, 16:0x UTC), so the following commits on the current head are not reviewer-covered and merge on CI green per the lane rule — request a follow-up Codex review of the squash commit when credits return:fix(lineage): record every applied journal key in the replay ledger…— fixes the reviewer's own last thread; test fails without ittest(build): refresh the Flight worker source hash after rebasing onto mainfix(build): pass notice delivery and lineage through the generated MCP server together after rebasing onto main— rebase conflict resolution (settled/afterRender+RegisterGeneratedRoutesOptions, teardown order host → lineage journal → transport)build(docs): resolve @agent-bundle/runtime/lineage from source in the TypeDoc programtest(build): a durable project without resources/updated still journals lineage through sqlite— asserts the notice runtime (not the sqlite driver) is absent whenmcp-resource-updatedis unavailable