Skip to content

Finish identity migration and expose Workbench provenance - #322

Merged
ScriptedAlchemy merged 1 commit into
mainfrom
wave/small-tails
Sep 2, 2026
Merged

Finish identity migration and expose Workbench provenance#322
ScriptedAlchemy merged 1 commit into
mainfrom
wave/small-tails

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

Test plan

  • pnpm typecheck
  • pnpm lint
  • scoped lifecycle unit suite (26 tests)
  • lifecycle route-unit acceptance (2 tests)
  • lifecycle dev-server integration
  • MCP App example integration and RSC example build/typecheck/host-artifact tests
  • 1440x900 Workbench lifecycle E2E, including populated provenance and stale-manifest repair

Notes

A broader post-rebase examples-contract run passed the changed MCP App and lifecycle scopes but still reports the concurrent Audiobook Curator route-count assertion at 17 while current main produces 18; this PR does not touch that unrelated lane.

…tion

Expose honest receipt-sourced context in lifecycle replays and remove remaining runtime identity restatements while deprecating plugin.version.
@changeset-bot

changeset-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 9606914

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
agent-bundle Minor

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T22:41:42.460428Z 9606914 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ScriptedAlchemy
ScriptedAlchemy merged commit 0e3c444 into main Sep 2, 2026
7 of 8 checks passed
@ScriptedAlchemy
ScriptedAlchemy deleted the wave/small-tails branch September 2, 2026 22:37

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9606914a5d

ℹ️ 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".

Comment on lines +59 to +63
invocation: {
...(request.requestContext.invocation.hostContractRevision === undefined
? {}
: { hostContractRevision: request.requestContext.invocation.hostContractRevision }),
},

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Mount all reported invocation fields into the replay scope

For lifecycle routes that read await agent().invocation, the default child-process replay copies only hostContractRevision here, and the in-process renderContext helper repeats the omission. renderRouteEvents therefore synthesizes surface as the route ID and leaves operationId undefined, even though the response reports operationId: event:<event> and surface: <event>. This makes route behavior and replay output diverge from the provenance displayed in Workbench; pass the reported operationId and surface through both render paths.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed on main in #354 (merge bb0754f).

hostContractRevision: string,
): RequestContextProvenance => {
const sessionId = nativeText(native, 'session_id') ?? nativeText(native, 'conversation_id');
const workspaceRoot = nativeText(native, 'cwd');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not report supplied Cursor workspace roots as missing

For Cursor workspace/open replays, the validated native envelope requires a nonempty workspace_roots array and normally has no cwd, so this lookup always produces an unavailable workspace with reason not-provided. The Workbench consequently claims the workspace was absent, and the replayed route receives the same false absence, even though the receipt supplied workspace roots. Account for workspace_roots when projecting this surface, or use an unsupported-surface representation if multiple roots cannot be represented.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed on main in #354 (merge bb0754f).

ScriptedAlchemy added a commit that referenced this pull request Sep 2, 2026
…d content (#200) (#332)

* fix(examples/rsc-agent-runtime): dedupe reloads by emitted content

Use the App compiler's in-memory asset bytes as the reload identity so split watch completions cannot spend extra generations when Rspack stats hashes drift.

* test(workbench): expect the package version in project source identity

The identity migration (#322) surfaces packageVersion in project source
status; the overview handoff assertion predates it on this branch's base.
ScriptedAlchemy added a commit that referenced this pull request Sep 3, 2026
* fix(claude): validate numeric config bounds in artifacts (#287 r3911238592)

* fix(claude): reject marketplace backslash traversal (#314 r3918535243)

* fix(claude): validate authority-only archive hosts (#314 r3918535249)

* fix(replay): preserve invocation provenance in renderers (#322 r3919341927)

* fix(replay): derive workspace from cursor roots (#322 r3919341940)

* fix(dev): invalidate watcher on chmod changes (#329 r3919499846)

* chore: add framework review fixes changeset
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant