Skip to content

fix(onboarding): skip setup for configured gateways and require inference first#102883

Merged
steipete merged 46 commits into
mainfrom
codex/fix-crestodian-onboarding-safety
Jul 11, 2026
Merged

fix(onboarding): skip setup for configured gateways and require inference first#102883
steipete merged 46 commits into
mainfrom
codex/fix-crestodian-onboarding-safety

Conversation

@steipete

@steipete steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Closes #102844
Closes #102845
Closes #102846

What Problem This Solves

Clients connecting to an already configured Gateway were sent through local AI-provider onboarding. That could mutate the wrong machine, expose stale credentials across endpoint changes, and start Crestodian before usable inference existed.

Why This Change Was Made

The Gateway is the authority for its model, agent, credentials, and runtime. Configured Gateways now go directly to the normal UI. Unconfigured remote Gateways perform detection, activation, exact live verification, and Crestodian chat on that same pinned Gateway. Crestodian remains unavailable until inference succeeds.

User Impact

  • Configured Gateway connections open the Control UI or TUI immediately, including after a cold restart.
  • Remote inference setup never mutates the local client configuration.
  • Crestodian starts only after a real verified inference turn.
  • macOS endpoint, device-token, CLI URL, and Dashboard credentials are route-scoped and invalidated on Gateway changes.
  • Non-Codex provider setup does not opportunistically install or configure Codex supervision.

Evidence

  • Exact CLI candidate 5caf7089be5: frozen install, pnpm tsgo:all, and 224/224 focused tests passed; expanded CLI/Gateway/TUI coverage passed 1,022/1,022.
  • Isolated AWS live proof: inference-first activation/verification, Crestodian afterward, unchanged client config, immediate UI/agent/TUI, cold restart, and post-restart bare TUI with onboarding absent.
  • Final head 739c3ebda38: route-edit race regressions passed 78/78; total focused macOS setup/endpoint/Dashboard/CLI/device-token coverage exceeds 300 tests.
  • Exact-head release gate passed 115/115 jobs. Formatting, strict SwiftLint, generated protocol, native i18n, SDK surface checks, and exact-head platform builds pass.

@openclaw-barnacle openclaw-barnacle Bot added app: macos App: macos gateway Gateway runtime cli CLI command changes size: M maintainer Maintainer-authored PR labels Jul 9, 2026
@clawsweeper

clawsweeper Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 11, 2026, 1:15 PM ET / 17:15 UTC.

Summary
The PR makes configured Gateways bypass local provider onboarding, requires live inference verification before Crestodian handoff, and adds route-scoped credential/state isolation across macOS, CLI/TUI, Gateway, Codex, migrations, and packaging.

Reproducibility: yes. Hold a detect, verify, or chat request inside the shared keyed Gateway queue, start activation with a shorter client timeout, and then release the held request; current source shows the activation callback can still execute afterward.

Review metrics: 1 noteworthy metric.

  • Codex dependency surface: 1 runtime dependency added. The shipped Codex plugin adds a TOML parser and changes package, shrinkwrap, and root lockfile inputs that require intentional dependency review.

Stored data model
Persistent data-model change detected: migration/backfill/repair: src/wizard/setup.shared.ts, serialized state: apps/macos/Tests/OpenClawIPCTests/ConnectCommandTests.swift, serialized state: src/infra/exec-approvals-store.test.ts, serialized state: src/infra/install-source-utils.test.ts, serialized state: src/infra/state-migrations.test.ts, serialized state: src/mcp/openclaw-tools-serve.test.ts, and 7 more. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: canonical
Canonical: #102883
Summary: This PR is the implementation candidate for three explicitly linked bug reports; the Microsoft tracker merely lists it and does not own the underlying work.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🦪 silver shellfish
Proof: 🦐 gold shrimp
Patch quality: 🦪 silver shellfish
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P1] Reject activation before it can wait behind detect, verify, or chat work.
  • [P1] Add exact-head redacted logs proving a timed-out or cancelled activation never mutates configuration.
  • Confirm the new Codex dependency and runtime behavior against the reviewed upstream contract.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The linked isolated AWS run is useful live proof for an earlier candidate, but it is not exact-head proof and does not show that activation is rejected without late configuration mutation when another Crestodian RPC holds the queue; contributors should post redacted terminal/log evidence and update the PR body to trigger review, or ask a maintainer to comment @clawsweeper re-review.

Risk before merge

  • [P1] A setup activation can be accepted, time out while waiting behind detect, verify, or chat, and later persist provider/model/plugin configuration after the user has stopped or retried.
  • [P1] The branch changes upgrade-sensitive onboarding, credential routing, profile migrations, plugin SDK/runtime artifacts, and Codex dependencies across a very broad surface.
  • [P1] The linked AWS proof covers an earlier candidate and does not demonstrate that the confirmed cross-RPC late-activation case is safe on head 739c3eb.

Maintainer options:

  1. Repair activation admission (recommended)
    Reject activation before shared-queue admission when another Crestodian Gateway task is active, then rerun exact-head live and upgrade proof.
  2. Split the broad branch
    Separate the three onboarding/profile fixes from Codex/runtime-artifact changes if the combined compatibility and security surface cannot be validated together.

Next step before merge

  • [P1] A concrete mechanical blocker remains: repair activation admission on the PR branch, add cross-RPC regression coverage, then refresh exact-head live and security proof.

Security
Needs attention: The patch changes credentials, Keychain binding, approval migrations, plugin artifact identity, Codex runtime behavior, and dependency inputs; the confirmed late-mutation race is also security-relevant because setup may apply after caller abandonment.

Review findings

  • [P1] Reject activation before the shared queue wait — src/gateway/server-methods/crestodian.ts:151-152
Review details

Best possible solution:

Reject setup activation before it enters an occupied shared serialization path, or move it to a cancellation-aware exclusive lane that cannot execute after its RPC is gone; add held detect/verify/chat regressions and repeat exact-head live onboarding, upgrade, credential-isolation, and dependency/security proof.

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

Yes. Hold a detect, verify, or chat request inside the shared keyed Gateway queue, start activation with a shorter client timeout, and then release the held request; current source shows the activation callback can still execute afterward.

Is this the best way to solve the issue?

No. The branch contains appropriate fixes for several reported failures, but activation admission still violates its fail-fast safety contract and is not the best mergeable solution until that race is removed.

Full review comments:

  • [P1] Reject activation before the shared queue wait — src/gateway/server-methods/crestodian.ts:151-152
    runExclusiveCrestodianSetupActivation excludes only another activation; its callback then waits in runCrestodianGatewayTask behind detect, verify, or chat. If the client times out while waiting, activateSetupInference can still run later and persist setup after the user stopped or retried. Reject before shared-queue admission when occupied, or use a cancellation-aware activation lane, and add a held non-activation RPC regression.
    Confidence: 0.99

Overall correctness: patch is incorrect
Overall confidence: 0.98

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 58ef98ec1311.

Label changes

Label changes:

  • add rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦐 gold shrimp and patch quality is 🦪 silver shellfish.
  • add status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The linked isolated AWS run is useful live proof for an earlier candidate, but it is not exact-head proof and does not show that activation is rejected without late configuration mutation when another Crestodian RPC holds the queue; contributors should post redacted terminal/log evidence and update the PR body to trigger review, or ask a maintainer to comment @clawsweeper re-review.
  • remove rating: 🧂 unranked krab: Current PR rating is rating: 🦪 silver shellfish, so this older rating label is no longer current.
  • remove status: ⏳ waiting on author: Current PR status label is status: 📣 needs proof.

Label justifications:

  • P0: The branch controls first-run inference, credentials, provider setup, and route isolation, and the confirmed race permits late configuration mutation after a user-visible timeout.
  • merge-risk: 🚨 compatibility: The PR changes onboarding, setup defaults, migrations, plugin APIs, persisted state, and existing Gateway upgrade behavior.
  • merge-risk: 🚨 auth-provider: The PR changes provider detection, activation, model verification, credential inheritance, and inference handoff.
  • merge-risk: 🚨 security-boundary: The PR changes route-bound credentials, Keychain binding, approval migration isolation, plugin artifact identity, and dependency resolution.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦐 gold shrimp and patch quality is 🦪 silver shellfish.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The linked isolated AWS run is useful live proof for an earlier candidate, but it is not exact-head proof and does not show that activation is rejected without late configuration mutation when another Crestodian RPC holds the queue; contributors should post redacted terminal/log evidence and update the PR body to trigger review, or ask a maintainer to comment @clawsweeper re-review.
Evidence reviewed

Security concerns:

  • [high] Prevent abandoned setup mutation — src/gateway/server-methods/crestodian.ts:151
    An accepted activation can remain queued after the initiating RPC times out and later persist credentials, model selection, or managed plugin state; admission must fail before that queued state exists.
    Confidence: 0.99
  • [low] Review the new Codex parser dependency — extensions/codex/package.json:12
    The Codex plugin adds smol-toml as shipped runtime code with new shrinkwrap and lockfile integrity entries; maintainers should confirm the parser is necessary, pinned, and limited to the intended plugin metadata boundary.
    Confidence: 0.93

Acceptance criteria:

  • [P1] pnpm test src/gateway/server-methods/crestodian.test.ts.
  • [P1] pnpm check:changed -- src/gateway/server-methods/crestodian.ts src/gateway/server-methods/crestodian.test.ts.
  • [P2] Exact-head Crabbox scenario: hold chat, detect, and verify separately; attempt activation with a shorter client timeout; release the held RPC; prove no activation call, config write, credential change, or plugin install occurs.

What I checked:

  • Activation queues after acceptance: The activation handler acquires only the activation-specific guard, then enters the same keyed Gateway queue used by detect, verify, and chat; an earlier non-activation task can therefore delay the mutation beyond the caller lifetime. (src/gateway/server-methods/crestodian.ts:151, 739c3ebda38e)
  • Current tests miss cross-RPC contention: The focused tests reject a second activation, but do not hold detect, verify, or chat ahead of activation and prove that setup mutation is rejected rather than queued. (src/gateway/server-methods/crestodian.test.ts:169, 739c3ebda38e)
  • Configured endpoint fallback repaired: The current head retains the configured Gateway candidate and returns it as configured-unreachable after all probes fail, with focused tailnet fallback coverage. (src/cli/run-main.ts:435, 739c3ebda38e)
  • Verification window repaired: The macOS activation timeout now includes backend startup allowance plus the 90-second inference probe window, and focused tests assert that lower bound. (apps/macos/Tests/OpenClawIPCTests/OnboardingAISetupTests.swift:573, 739c3ebda38e)
  • Codex dependency graph changed: The Codex plugin adds pinned smol-toml 1.7.0 to its package, npm shrinkwrap, and root pnpm lockfile, so the dependency change is intentional but remains a supply-chain review surface. (extensions/codex/package.json:12, 739c3ebda38e)
  • Current main does not supersede the PR: The target checkout remains on current main 58ef98e, while the proposed behavior exists only on the open PR head; the three linked issues remain open implementation candidates. (58ef98ec1311)

Likely related people:

  • steipete: The PR is assigned to steipete, and the branch history contains the Crestodian queue, onboarding, route-isolation, and latest Codex reconciliation work. (role: recent area contributor and assignee; confidence: high; commits: 6609581bc932, 5caf7089be5a, 739c3ebda38e; files: src/gateway/server-methods/crestodian.ts, src/cli/run-main.ts, apps/macos/Sources/OpenClaw/OnboardingAISetup.swift)
  • Peter Steinberger: Git history attributes the central branch commits and repeated repairs in the Crestodian/onboarding surface to this author display identity; this is the same repository identity as the assignee, retained only because local commit metadata uses the display name. (role: feature-history contributor; confidence: medium; commits: 3df641f8baa7, 7216f59cc1b7, 5b619a281534; files: src/gateway/server-methods/crestodian.ts, apps/macos/Sources/OpenClaw/Onboarding.swift, src/infra/state-migrations.ts)
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.

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.
Review history (15 earlier review cycles; latest 8 shown)
  • reviewed 2026-07-11T13:24:56.939Z sha 5caf708 :: needs real behavior proof before merge. :: [P2] Return unreachable before probing partial remote configs
  • reviewed 2026-07-11T13:37:19.085Z sha 5caf708 :: needs real behavior proof before merge. :: [P2] Return unreachable before probing partial remote configs
  • reviewed 2026-07-11T14:24:27.297Z sha 5e80bc3 :: needs real behavior proof before merge. :: [P1] Reject activation before it waits behind another Crestodian RPC
  • reviewed 2026-07-11T15:01:28.692Z sha dbb040b :: needs real behavior proof before merge. :: [P1] Reject activation before it waits behind another Crestodian RPC
  • reviewed 2026-07-11T15:17:47.450Z sha cf37f66 :: needs real behavior proof before merge. :: [P1] Reject activation before it enters the shared queue
  • reviewed 2026-07-11T15:29:03.834Z sha 65d111f :: needs real behavior proof before merge. :: [P1] Reject activation before queue admission
  • reviewed 2026-07-11T15:45:43.132Z sha 049a931 :: needs real behavior proof before merge. :: [P1] Reject activation before it enters the shared queue
  • reviewed 2026-07-11T16:08:08.786Z sha 049a931 :: needs real behavior proof before merge. :: [P1] Reject activation before the shared queue wait | [P1] Match the server verification window | [P1] Keep the configured local route when every probe fails

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. 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. P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. labels Jul 9, 2026
@steipete
steipete force-pushed the codex/fix-crestodian-onboarding-safety branch from 239d926 to 7216f59 Compare July 9, 2026 16:35
@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation commands Command implementations agents Agent runtime and tooling extensions: codex size: XL and removed size: M labels Jul 9, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jul 9, 2026
@clawsweeper clawsweeper Bot added the status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. label Jul 11, 2026

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

Copy link
Copy Markdown
Contributor

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: 5caf7089be

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

...(params.workspace !== undefined ? { workspace: params.workspace } : {}),
surface: "gateway",
runtime,
await runCrestodianGatewayTask(async () => {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge Avoid queueing activation behind chat turns

Because runCrestodianGatewayTask serializes all Crestodian RPCs with KeyedAsyncQueue.enqueue, wrapping activation here means an activation accepted while a long crestodian.chat/detect/verify request is already running sits in the global queue after runExclusiveCrestodianSetupActivation has marked it in progress. If the macOS/CLI caller times out or cancels before the earlier task finishes, this queued callback can still later call activateSetupInference and persist model/credential config after the user has stopped or retried, defeating the intended fail-fast/ambiguous-activation guard. Keep activation out of this queue or fail fast when the global Crestodian lane is busy.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot removed the rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. label Jul 11, 2026
@clawsweeper clawsweeper Bot added the rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. label Jul 11, 2026
@clawsweeper clawsweeper Bot removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Jul 11, 2026

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

Copy link
Copy Markdown
Contributor

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: 65d111f9dc

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

const GATEWAY_SETUP_DETECT_TIMEOUT_MS = 20_000;
const GATEWAY_SETUP_ACTIVATE_TIMEOUT_MS = 150_000;
const GATEWAY_CODEX_SETUP_ACTIVATE_TIMEOUT_MS = 480_000;
const GATEWAY_SETUP_VERIFY_TIMEOUT_MS = 30_000;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge Let remote verification use the server probe window

When remote onboarding activates a candidate successfully, the follow-up crestodian.setup.verify runs the gateway's normal verifySetupInference path, whose inference probe defaults to 90s (src/crestodian/setup-inference.ts:94) and the gateway handler does not pass a shorter override. Capping only this client call at 30s means a slow-but-valid first remote model turn can time out locally after the gateway has already persisted the model, aborting onboarding instead of handing off to Crestodian/TUI; use a timeout at least as long as the server probe window.

Useful? React with 👍 / 👎.

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

Copy link
Copy Markdown
Contributor

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: 049a931de8

ℹ️ 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 thread src/cli/run-main.ts
Comment on lines +442 to +443
if (options.hasConfiguredGateway && !configuredGateway) {
configuredGateway = toReachableGateway(target, auth);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge Use the configured local endpoint when probes all fail

When a local Gateway is configured with gateway.bind: "tailnet" or "custom", resolveLocalGatewayProbeTargets() returns the loopback target first and the configured target second (src/cli/run-main.ts:629-647). This fallback records configuredGateway before probing, so if both probes fail while the configured Gateway is cold-starting, bare openclaw launches the TUI with OPENCLAW_GATEWAY_URL=ws://127.0.0.1:... instead of the configured tailnet/custom URL. For a Gateway that only binds to that configured address, the TUI will keep retrying the wrong endpoint and never attach when the Gateway finishes starting.

Useful? React with 👍 / 👎.

@steipete

steipete commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

Land-ready at 739c3ebda38edb39216e2561a21d5ba3c9c01daf.

Known proof gaps: none.

steipete added 2 commits July 11, 2026 12:50
…onboarding-safety

# Conflicts:
#	docs/.generated/plugin-sdk-api-baseline.sha256
#	docs/cli/crestodian.md
#	extensions/codex/src/app-server/attempt-startup.test.ts
#	extensions/codex/src/app-server/client.ts
#	extensions/codex/src/app-server/computer-use.test.ts
#	extensions/codex/src/app-server/computer-use.ts
#	extensions/codex/src/app-server/config.ts
#	extensions/codex/src/app-server/request.ts
#	scripts/plugin-sdk-surface-report.mjs
#	src/agents/agent-tools.ts

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

Copy link
Copy Markdown
Contributor

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: 739c3ebda3

ℹ️ 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 +73 to +77
runtimeArtifact: {
kind: "bundled-package-tree",
packageName: "@google/gemini-cli",
entrypoint: "command",
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge Support Gemini’s dependency-backed CLI package

This declares Gemini as a bundled-package-tree, but the new resolver rejects any package whose package.json has a non-empty dependencies or peerDependencies map (src/agents/cli-executable-identity.ts). I checked the published @google/gemini-cli package and it currently declares many dependencies, so resolveCliExecutableIdentity() returns undefined before a Gemini setup probe can launch whenever runSetupInferenceTest() requires an execution owner. That blocks otherwise working Gemini CLI users from completing inference-gated setup/Crestodian; either fingerprint the resolved dependency tree or avoid this runtime-artifact contract for Gemini.

Useful? React with 👍 / 👎.

@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: macos App: macos app: web-ui App: web-ui channel: feishu Channel integration: feishu channel: imessage Channel integration: imessage channel: msteams Channel integration: msteams channel: qqbot channel: signal Channel integration: signal channel: whatsapp-web Channel integration: whatsapp-web channel: zalouser Channel integration: zalouser cli CLI command changes commands Command implementations dependencies-changed PR changes dependency-related files docker Docker and sandbox tooling docs Improvements or additions to documentation extensions: anthropic extensions: codex extensions: copilot extensions: google extensions: qa-lab gateway Gateway runtime maintainer Maintainer-authored PR merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 security-boundary 🚨 May affect sandboxing, authorization, credentials, or sensitive data. P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. scripts Repository scripts size: XL status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

2 participants