Skip to content

Commit 9c6141e

Browse files
committed
fix: treat global grok adapter as status authority
1 parent d23e7a0 commit 9c6141e

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

scripts/lib/cli-maintenance-commands.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,18 @@ function buildCliMaintenanceCommands(ctx) {
140140
const activeRoot = resolveActiveRuntimeRoot(cwd)
141141
const executionOptimization = inspectExecutionOptimization(cwd)
142142
const globalHostConfig = inspectGlobalHostConfig({ env: process.env })
143+
const globalReady = host => globalHostConfig.hosts.some(item => item.host === host && item.ready)
144+
if (globalReady('grok') && instructionProjection.grokPlugin?.sourcePresent === false) {
145+
instructionProjection.grokPlugin.globalAdapterReady = true
146+
instructionProjection.grokPlugin.workspaceSourceRequired = false
147+
instructionProjection.issues = (instructionProjection.issues || [])
148+
.filter(item => item.code !== 'HOST_GROK_WORKSPACE_PLUGIN_MISSING')
149+
if (!instructionProjection.issues.length) {
150+
instructionProjection.status = instructionProjection.entries?.some(item => item.installed)
151+
? 'ready'
152+
: 'not-installed'
153+
}
154+
}
143155
const hostParity = evaluateGrokHostParity({
144156
cwd,
145157
hostRoot,

scripts/test-host-installation.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,11 @@ console.log(`legacy host installation tests passed selectors=5 dryRunWrites=0 co
679679
const workspace = path.join(currentRoot, 'workspace')
680680
fs.mkdirSync(home, { recursive: true })
681681
fs.mkdirSync(path.join(workspace, '.devcodex'), { recursive: true })
682+
fs.writeFileSync(
683+
path.join(workspace, '.devcodex', 'layout.json'),
684+
`${JSON.stringify({ mode: 'workspace-namespace' }, null, 2)}\n`,
685+
'utf8'
686+
)
682687
fs.writeFileSync(path.join(workspace, 'package.json'), '{"name":"global-only-fixture"}\n')
683688
const env = {
684689
...process.env,
@@ -699,6 +704,19 @@ console.log(`legacy host installation tests passed selectors=5 dryRunWrites=0 co
699704
assert.strictEqual(inspection.hosts.length, 5)
700705
assert.ok(fs.existsSync(path.join(home, 'gemini-cli-home', '.gemini', 'devcodex', 'global-host-receipt.json')))
701706

707+
const statusAfterGlobalInstall = spawnSync(process.execPath, [INDEX, 'status', '--json'], {
708+
cwd: workspace,
709+
encoding: 'utf8',
710+
env
711+
})
712+
assert.strictEqual(statusAfterGlobalInstall.status, 0, statusAfterGlobalInstall.stderr || statusAfterGlobalInstall.stdout)
713+
const statusAfterGlobalInstallFacts = JSON.parse(statusAfterGlobalInstall.stdout).payload
714+
assert.strictEqual(statusAfterGlobalInstallFacts.globalHostConfig.ready, true)
715+
assert.strictEqual(statusAfterGlobalInstallFacts.entryFiles.instructionProjection.grokPlugin.globalAdapterReady, true)
716+
assert(!statusAfterGlobalInstallFacts.entryFiles.instructionProjection.issues.some(item =>
717+
item.code === 'HOST_GROK_WORKSPACE_PLUGIN_MISSING'
718+
))
719+
702720
const runtimeInit = spawnSync(process.execPath, [INDEX, 'init', '--json'], {
703721
cwd: workspace,
704722
encoding: 'utf8',

0 commit comments

Comments
 (0)