Skip to content

codex: surface deferred dynamic tool names#83813

Merged
pashpashpash merged 8 commits into
mainfrom
codex-deferred-tool-manifest
May 19, 2026
Merged

codex: surface deferred dynamic tool names#83813
pashpashpash merged 8 commits into
mainfrom
codex-deferred-tool-manifest

Conversation

@steipete

Copy link
Copy Markdown
Contributor

Summary

  • add a compact developer-instruction manifest listing deferred searchable OpenClaw dynamic tool names
  • include the manifest for Codex app-server thread start/resume fallback paths and normal run attempts
  • cover deferred-tool and no-deferred-tool instruction rendering in thread lifecycle tests

Test plan

  • mise exec [email protected] -- pnpm vitest run extensions/codex/src/app-server/thread-lifecycle.test.ts
  • mise exec [email protected] -- pnpm exec tsc --noEmit --pretty false --project tsconfig.json

@clawsweeper

clawsweeper Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
The PR adds a compact deferred dynamic-tool name manifest to Codex developer instructions, passes dynamic tool specs into Codex app-server prompt construction and snapshots, updates focused tests/fixtures, and includes a small Swift formatting cleanup.

Reproducibility: not applicable. this is a prompt-surface improvement rather than a bug report. Source inspection of the PR head shows the deferred-tool manifest path and focused test coverage.

PR rating
Overall: 🐚 platinum hermit
Proof: 🌊 off-meta tidepool
Patch quality: 🐚 platinum hermit
Summary: The patch looks normally mergeable after the loader repair, with focused tests and snapshot updates covering the changed prompt behavior.

Rank-up moves:

  • none
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

PR egg
✨ Hatched: 🥚 common Tiny Review Wisp

        .--^^^^--.           
     .-'  o    o  '-.        
    /       \__/      \      
   |    /\  ____  /\   |     
   |   /  \/____\/  \  |     
    \  \_.------._/  /       
     '._  `----'  _.'        
        '-.____.-'           
       _/|_|  |_|\_          
      /__|      |__\         
       .-----------.         
      '-------------'        

Rarity: 🥚 common.
Trait: hums during re-review.
Share on X: post this hatch
Copy: My PR egg hatched a 🥚 common Tiny Review Wisp in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • How to hatch it: reach status: 👀 ready for maintainer look or status: 🚀 automerge armed; that usually means sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

Real behavior proof
Not applicable: This protected maintainer-labeled Codex prompt/test-helper PR is maintainer-handled; the PR discussion lists focused local validation after the loader repair.

Next step before merge
No repair lane is needed; the prior loader blocker is already patched on the PR head and the remaining action is ordinary maintainer/CI handling.

Security
Cleared: No concrete security or supply-chain concern was found; the diff does not add dependencies, workflows, lifecycle scripts, credentials handling, or new downloaded code.

Review details

Best possible solution:

Keep the PR’s source-backed loader repair, let focused CI/maintainer checks confirm the prompt snapshot path, and merge only if maintainers accept the model-facing instruction wording and token cost.

Do we have a high-confidence way to reproduce the issue?

Not applicable; this is a prompt-surface improvement rather than a bug report. Source inspection of the PR head shows the deferred-tool manifest path and focused test coverage.

Is this the best way to solve the issue?

Yes. The current approach derives a compact manifest from existing deferLoading tool specs and uses the existing alias-aware source loader for prompt snapshots instead of adding a second loader path.

Label justifications:

  • P3: This is a low-blast-radius Codex prompt and test-helper improvement rather than an urgent user-facing regression.

What I checked:

Likely related people:

  • Peter Steinberger: History shows Peter introduced and repeatedly maintained the Codex app-server control/lifecycle surface touched by this PR. (role: Codex app-server feature-history owner; confidence: high; commits: 31a0b7bd42a5, 3b65e2302a55, b4fdd1470b70; files: extensions/codex/src/app-server/run-attempt.ts, extensions/codex/src/app-server/thread-lifecycle.ts)
  • Vincent Koc: Recent main history shows Vincent maintained nearby Codex runtime/auth behavior that shares the app-server lifecycle path. (role: recent adjacent Codex runtime contributor; confidence: medium; commits: 859eb0666282, f1cc8f0cfc7c, 4a4f52b09730; files: extensions/codex/src/app-server/run-attempt.ts, extensions/codex/src/app-server/thread-lifecycle.ts)
  • pashpashpash: The PR history shows pashpashpash authored the commits that made prompt snapshots source-backed through the alias-aware plugin loader and reported validation. (role: PR follow-up repair author; confidence: medium; commits: 3b4ab43a3603, 3147dc0ef7aa; files: src/test-utils/bundled-plugin-public-surface.ts, test/helpers/agents/happy-path-prompt-snapshots.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 6f18decb7a2c.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 18, 2026
@steipete
steipete force-pushed the codex-deferred-tool-manifest branch from 26137be to 48cf481 Compare May 19, 2026 00:05
@pashpashpash

Copy link
Copy Markdown
Contributor

@clawsweeper review

@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 19, 2026
@pashpashpash
pashpashpash force-pushed the codex-deferred-tool-manifest branch from 7485057 to b56dc8b Compare May 19, 2026 00:51
@openclaw-barnacle openclaw-barnacle Bot added the app: macos App: macos label May 19, 2026
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels May 19, 2026
@pashpashpash

Copy link
Copy Markdown
Contributor

Addressed the ClawSweeper loader finding on the latest head.

The prompt snapshot helper no longer creates a bare jiti loader. It now calls a source-backed bundled-plugin public-surface helper, and that helper uses getCachedPluginSourceModuleLoader with pluginSdkResolution: "src", so Codex test-api.ts is loaded through the same alias-aware plugin loader path.

Validated locally:

  • node --import tsx scripts/generate-prompt-snapshots.ts --check
  • node scripts/run-vitest.mjs extensions/codex/src/app-server/thread-lifecycle.test.ts test/scripts/prompt-snapshots.test.ts -- --reporter=dot
  • ./node_modules/.bin/oxfmt --check --threads=1 ...
  • swiftformat --lint apps/macos/Sources/OpenClaw/VoiceWakeSettings.swift --config config/swiftformat
  • git diff --check

@clawsweeper review

@pashpashpash

Copy link
Copy Markdown
Contributor

@clawsweeper review

@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels May 19, 2026
@clawsweeper clawsweeper Bot added status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. labels May 19, 2026
@pashpashpash

Copy link
Copy Markdown
Contributor

Pushed a narrow follow-up for the loader repair on 118f3ddac3f85fd8cb183a4bc35afe4b909e3900.

The source-backed public-surface helper is now a properly typed generic function, with the same narrow oxlint suppression used by the existing test-loader generic surface. This fixes the exact CI failures from the prior head: check-prod-types, check-test-types, and check-lint.

Validated locally:

  • pnpm tsgo:core && pnpm tsgo:extensions
  • pnpm check:test-types
  • pnpm lint
  • node --import tsx scripts/generate-prompt-snapshots.ts --check
  • node scripts/run-vitest.mjs extensions/codex/src/app-server/thread-lifecycle.test.ts test/scripts/prompt-snapshots.test.ts -- --reporter=dot
  • ./node_modules/.bin/oxfmt --check --threads=1 ...
  • swiftformat --lint apps/macos/Sources/OpenClaw/VoiceWakeSettings.swift --config config/swiftformat
  • git diff --check

I also tried pnpm check:changed; all JS/TS guards, type, and lint lanes passed, but the local machine cannot run SwiftLint because Homebrew requires full Xcode and the portable SwiftLint binary cannot load sourcekitdInProc here. The fresh PR CI is running the macOS lane in the proper environment.

@clawsweeper review

@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@pashpashpash

Copy link
Copy Markdown
Contributor

Pushed one more narrow cleanup on 1f03376b8c07dcb209b002d4cceab1e934775e247 for the latest exact-head build-artifacts failure.

The failure was test/scripts/lint-suppressions.test.ts: my previous follow-up added a third no-unnecessary-type-parameters suppression in src/test-utils/bundled-plugin-public-surface.ts, while the allowlist expected two. The source loader did not actually need to be generic because the caller already casts the loaded Codex test API, so I removed the extra suppression and made the helper return object.

Validated locally:

  • node scripts/run-vitest.mjs test/scripts/lint-suppressions.test.ts -- --reporter=dot
  • pnpm check:test-types
  • pnpm lint
  • node --import tsx scripts/generate-prompt-snapshots.ts --check
  • ./node_modules/.bin/oxfmt --check --threads=1 src/test-utils/bundled-plugin-public-surface.ts
  • git diff --check

@clawsweeper review

@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@pashpashpash
pashpashpash merged commit 0b4fc26 into main May 19, 2026
99 checks passed
@pashpashpash
pashpashpash deleted the codex-deferred-tool-manifest branch May 19, 2026 01:32
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 25, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
SYU8384 pushed a commit to SYU8384/openclaw that referenced this pull request Jun 3, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
* codex: surface deferred dynamic tool names

* codex: keep prompt snapshots source-backed

* style: wrap mac voice settings help text

* style: satisfy swiftformat for voice wake help text

* style: apply swiftformat to voice wake help text

* test: load codex prompt snapshots through plugin aliases

* test: type codex source surface loader

* test: avoid extra codex loader suppression

---------

Co-authored-by: pashpashpash <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: macos App: macos extensions: codex maintainer Maintainer-authored PR P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants