Skip to content

fix: complete bracketed artifact binding guards - #1

Draft
LloydVickeryASI wants to merge 1 commit into
GijungKim:fix/artifact-hyphenated-tool-pathsfrom
LloydVickeryASI:codex/artifact-bracket-binding-guards
Draft

fix: complete bracketed artifact binding guards#1
LloydVickeryASI wants to merge 1 commit into
GijungKim:fix/artifact-hyphenated-tool-pathsfrom
LloydVickeryASI:codex/artifact-bracket-binding-guards

Conversation

@LloydVickeryASI

Copy link
Copy Markdown

Relationship to the upstream fix

Incremental follow-up to UsefulSoftwareCo/executor#1884, targeting its fix/artifact-hyphenated-tool-paths branch. This branch starts at 3069b15579ff054cfc4fd222a3d44d071392310c; the diff contains only the additions below, not a second copy of the broader hyphenated-path fix.

Changes

  • Recognize static single-quoted integration roots as well as double-quoted and dotted roots, including named roles and whitespace.
  • Reuse that root grammar in the existing hardcoded-connection guard. Reject immediate user/org segments in dot or bracket notation on both create and edit, with valid bracket syntax in the error guidance.
  • Add regression coverage for reserved roots, comments, unrelated tools properties, dynamic expressions, matching/missing/mismatched connections, atomic edit rejection, and create-to-execute-action resolution.
  • Document both bracket quote styles in the artifact guide and add a patch changeset.

The connection resolver, ownership checks, available-connection inventory and single-call execution contract are unchanged. Dynamic bracket expressions are not newly supported. Client/host wire serialization remains the parent PR's implementation.

Verification

  • Regression-first run against the unchanged parent implementation: 15 failed / 51 passed in the expanded binding suite. After the patch: 66 passed.
  • bun run format and bun run format:check: passed.
  • bun run lint: passed.
  • bun run typecheck: passed across all 45 workspace packages.
  • MCP package bun run test: 249 passed across 8 files. The initial sandboxed run could not bind the stdio daemon's loopback listener; the full package passed with local networking available.
  • Execution package bun run test src/skills.test.ts: 6 passed.
  • bun run test:selfhost scenarios/artifacts.test.ts -t 'create-artifact hands a non-Apps client': 1 passed, 3 unselected. A fresh local instance verified missing single-quoted bindings, create/edit rejection of bracketed pinned paths, unchanged saved source after rejection, and normal artifact rendering.
  • Full monorepo bun run test and the full cross-target E2E matrix were not run. This is a draft, not a merge/deployment request.

Recorded end-to-end evidence

The recording shows the valid artifact still rendering after the negative MCP checks. The rejection/no-persistence assertions are in the scenario source; they are not represented as browser error banners in this recording. All data is synthetic test content.

Passing selfhost artifact scenario

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