fix: make Grok launch availability truthful (#3861)#3909
Merged
Conversation
CompleteDotTech
marked this pull request as ready for review
July 26, 2026 16:56
CompleteDotTech
force-pushed
the
agent/issue-3861-grok-launch
branch
5 times, most recently
from
July 26, 2026 20:07
63eb477 to
b31f933
Compare
CompleteDotTech
force-pushed
the
agent/issue-3861-grok-launch
branch
from
July 26, 2026 20:29
b31f933 to
b14fdc3
Compare
CompleteDotTech
force-pushed
the
agent/issue-3861-grok-launch
branch
from
July 26, 2026 20:40
b14fdc3 to
3db3df6
Compare
Refresh the Settings daemon control sheet from the approved ZIP handoff while preserving live multi-host, travel, executor, and Omnigent behavior. Update iOS connection copy and open Chats at the newest non-archived conversation without overriding explicit navigation intents. Normalize saved hub URLs and use design-system spacing tokens in response to Copilot review. Signed-off-by: Val Alexander <bunsthedev@gmail.com>
Scope OMNIGENT_TOKEN to an exact normalized OMNIGENT_SERVER_URL match. Preserve scoped Vault fallback, JWT, and Databricks pointer semantics. Add regressions for attacker URLs and missing Databricks workspace hosts.
…tivity feat(grok): add fail-closed tool activity compatibility
…ctivity-3865 feat(chat): add safe correlated OpenClaw Gateway dispatch
Bind encrypted hub token custody to the configured hub origin. Migrate legacy raw custody at config load/save and clear mismatched custody. Prevent token reuse after tokenless hub switches.
…857-codex fix(copilot): preflight direct JSONL launcher
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the remaining Grok Build launch-integrity gaps for #3861 on top of the shared availability contract from #3891.
readyavailability result used by chat.spawn()failures as structured runtime errors. A post-preflightENOENTretainsruntime_missing; other launch failures useruntime_launch_failed.done(isError)without exposing the resolved executable orGROK_BINpath, emitting a fabricated assistant response, or persisting a fabricated assistant turn.Closes #3861.
Acceptance matrix
runtime_missingbefore spawn, creates no child process, and never fabricates an authentication/no-output assistant reply.GROK_BINdiscovery remains validated and invalid overrides fall through without exposing their value.readyplans with the same scoped environment.ENOENTand injected synchronousUNKNOWNpost-preflight spawn failures complete with structured errors and cannot reach the generic authentication fallback.availabilityremain neutral.Verification
Rebased safely onto current
origin/main(38b4c0ba); head is3db3df6d.Passed on native Windows:
pnpm typecheckpnpm lintpnpm check:tests-wired(1254 wired)node --require ./scripts/css-source-contract-hook.cjs --experimental-strip-types src/lib/runtime-availability.test.tsnode --require ./scripts/css-source-contract-hook.cjs --experimental-strip-types src/lib/grok-bin.test.tsnode --require ./scripts/css-source-contract-hook.cjs --experimental-strip-types src/lib/grok-build.test.tsnode --require ./scripts/css-source-contract-hook.cjs --experimental-strip-types src/app/api/harnesses/route.test.tsnode --require ./scripts/css-source-contract-hook.cjs --experimental-strip-types --import ./scripts/test-alias-register.mjs src/app/api/chat/send/route-runtime-availability.integration.test.ts(missing Grok zero-spawn, asyncENOENT, and synchronous spawn failure)node --require ./scripts/css-source-contract-hook.cjs --experimental-strip-types src/app/api/api-contracts.test.ts(238 route contracts)pnpm test:apiwas re-run after the Windows fixture guards. It intentionally skipsscripts/dev-app-teardown.test.mjson native Windows because Node cannot deliver POSIX signals to exercise Bash traps; it passes the native Windows migration suites and consistently stops only in unchangedsrc/app/api/beads/route.test.tscleanup withEBUSYremoving its temporaryproject-aGit fixture after 24 assertions. The test blob is identical toorigin/main; this reproducible Windows cleanup defect remains tracked ascave-pp2and is outside this PR. The earlier fake-server timeout was investigated: this native Windows host has only the WSLbash.exelauncher with no installed Linux/bin/bash, so the POSIX Bash/signal fixture cannot start its fake server. The native-Windows skip is environmental;scripts/dev-app.test.mjsstill pins the Windowscmd.exelaunch configuration. Focused Grok coverage and all static gates pass.CI
Fresh CI and CodeQL will run for
3db3df6dafter the force-push. The Swift audit is intentionally skipped.