Skip to content

fix(web): preserve literal launch arguments - #635

Merged
ScriptedAlchemy merged 2 commits into
mainfrom
fix/633-entry-only-normalization
Sep 5, 2026
Merged

fix(web): preserve literal launch arguments#635
ScriptedAlchemy merged 2 commits into
mainfrom
fix/633-entry-only-normalization

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Give the internal stdio launch descriptor a typed entry field and normalize only that known artifact reference.
  • Preserve every trailing argument byte-for-byte, including path-looking literal values such as ./team/red.
  • Keep /web selection ambiguous with AB8023 when projections differ in literal arguments.

Follow-up to #633. The typed entry field records which reference is an artifact path now; no filesystem-existence or slash heuristic remains.

Tests

  • TDD red: equal entries with --label ./team/red versus --label /artifact/team/red incorrectly selected one shared launch before the fix.
  • pnpm build
  • pnpm typecheck
  • pnpm lint
  • pnpm test:unit — 4,124 passed, 6 skipped
  • focused web-host/web-launch/MCP-session suite — 69 passed

Deslop

GPT-5.6 Sol, 0 edits — the two-file behavior diff was read in full against origin/main; no redundant comments, exception-driven control flow, casts, or copied helpers remain.

Self-review

Reviewer: claude-fable-5-1-thinking-high (change-risk-reviewer) over exact 18964e116 vs origin/main (2c28363ce).

No concrete merge risks found. The review verified that compiler lowering places the executable entry at args[0], only that typed entry is normalized, trailing arguments remain byte-exact, portable-relative and host-absolute entries stay equivalent, distinct entries and path-looking literals remain AB8023, and the digest shape is in-memory only.

Residual observations and dispositions:

  1. A non-path args[0] in a command-shaped user server would still be interpreted as the entry — dismissed: every compiler-lowered server in scope places its generated or prebuilt executable entry at args[0]; arbitrary command shapes are not this selector contract.
  2. Codex may resolve trailing ./ arguments before identity — dismissed: pre-existing adapter behavior mirrors the bytes the Codex launch path executes and is outside this correction.
  3. An additional positive identical-literal test could be added — dismissed: existing shared-launch and trailing-argument identity tests cover equality, while the new negative test directly proves the shipped false-equivalence regression.

@changeset-bot

changeset-bot Bot commented Sep 5, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 18964e1

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 Patch

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

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@pkg-pr-new

pkg-pr-new Bot commented Sep 5, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle@635
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/create-agent-bundle@635
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/rsc-markdown-stream@635
npm i https://pkg.pr.new/ScriptedAlchemy/agent-bundle/@agent-bundle/runtime@635

commit: 18964e1

Copy link
Copy Markdown
Owner Author

Re-audit resolution note: the current diff addresses the specific P1 raised on #633. It removes all-arguments path normalization, preserves trailing literal arguments, and adds the exact --label ./team/red versus absolute-looking-label negative test. The changeset now correctly names the dev /web path. Do not keep that earlier broad-normalization finding open against this revision.

Integration guidance for #604: preserve this distinction in the canonical launch descriptor. The entry-first interpretation here is scoped to compiler-lowered launch shapes; do not generalize args[0] into a universal executable locator for arbitrary command descriptors or Node-option-before-entry launch lines. An explicit compiled entry reference is the authoritative fact to carry forward.

This is a static diff assessment, not a claim that I ran CI or an approval to bypass the repository's merge gates.

@ScriptedAlchemy
ScriptedAlchemy merged commit e2cddfa into main Sep 5, 2026
26 of 27 checks passed
@ScriptedAlchemy
ScriptedAlchemy deleted the fix/633-entry-only-normalization branch September 5, 2026 17:41
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