test(#1925): register zcode across installer surfaces + fluidify count pins
Resolve the zcode test cascade exposed by gsd-test: - model-catalog.json: add zcode runtimeTierDefaults (null tiers, matching the other profile-marker-only runtimes) so KNOWN_RUNTIMES stays parity with allRuntimes. - runtime-name-policy: add zcode to GLOBAL_CONFIG_HOME_FRAGMENTS (~/.zcode) so getGlobalConfigHomeFragment stops falling through to the .claude default. - installer-migration-install: add the zcode fresh-install contract (flat-skills, no settings, no package.json — same shape as trae). - golden-install-parity: capture the zcode fixture via a standalone generator script (not node --test — the gate stays gsd-test). - capability-matrix.md: regenerate so zcode appears as a first-party row. Fluidify the remaining count-pinned guards so adding a runtime no longer trips a hand-pinned snapshot: gemini-runtime-removed (flag count derives from the registry), non-claude-runtimes-registry-derivation (golden list derived from the registry).
This commit is contained in:
@@ -45,6 +45,8 @@ const {
|
||||
getProjectInstructionFile,
|
||||
} = require(path.join(ROOT, 'gsd-core', 'bin', 'lib', 'runtime-name-policy.cjs'));
|
||||
|
||||
const registry = require(path.join(ROOT, 'gsd-core', 'bin', 'lib', 'capability-registry.cjs'));
|
||||
|
||||
const { convertClaudeAgentToAntigravityAgent } = require('../bin/install.js');
|
||||
|
||||
// Run the installer as a subprocess with an isolated HOME so no install can
|
||||
@@ -162,10 +164,15 @@ describe('#1928 gemini removed from every runtime-name-policy surface', () => {
|
||||
assert.strictEqual(getRuntimeNewProjectCommand('gemini'), '/gsd-new-project', 'new-project override removed → default');
|
||||
});
|
||||
|
||||
test('runtimeFlags has exactly 14 non-claude runtimes and no isGemini', () => {
|
||||
test('runtimeFlags has no isGemini and covers exactly the non-claude registry runtimes (count-agnostic)', () => {
|
||||
const flags = runtimeFlags('claude');
|
||||
assert.ok(!('isGemini' in flags), 'isGemini flag must be gone');
|
||||
assert.strictEqual(Object.keys(flags).length, 14, 'flag count drops 15 → 14 with gemini removed');
|
||||
// The flag set tracks the non-claude registry runtimes (one is<Runtime> per
|
||||
// id), so adding a runtime updates the count automatically — no hand-pinned
|
||||
// number that would break on the next runtime addition.
|
||||
const expectedNonClaudeCount = Object.keys(registry.runtimes).filter((id) => id !== 'claude').length;
|
||||
assert.strictEqual(Object.keys(flags).length, expectedNonClaudeCount,
|
||||
'flag count must equal the non-claude registry runtime count');
|
||||
});
|
||||
|
||||
test('gemini no longer maps to GEMINI.md (defaults to AGENTS.md)', () => {
|
||||
|
||||
Reference in New Issue
Block a user