chore: clear dead test and allowlist leftovers of dropped runtimes
Some checks failed
Tests / PR mergeability (push) Successful in 18s
Tests / Base branch health (push) Successful in 9s
Tests / Detect test scope (push) Successful in 16s
Tests / lint-tests (push) Failing after 1m43s
Tests / plugin-validate (push) Successful in 58s
Tests / test (ubuntu-latest, 24, shard 1/3) (push) Failing after 19s
Tests / test (ubuntu-latest, 24, shard 2/3) (push) Failing after 20s
Tests / test (ubuntu-latest, 24, shard 3/3) (push) Failing after 20s
Tests / test (ubuntu-latest, 24) (push) Failing after 18s
Tests / test (inert CI) (push) Has been skipped
Tests / QA loop walk (smell ratchet) (push) Failing after 19s
Tests / Coverage gate (merged shards) (push) Has been skipped
Tests / Publish emitted-baseline artifact (push) Has been skipped
Duplicate auto-close sweep / sweep (push) Successful in 19s
CI timeout budget report / report (push) Failing after 14s
Close Draft PRs (sweep) / Sweep open draft PRs (push) Successful in 9s
Dismiss Unauthorized PR Approvals / dismiss-unauthorized-approval (push) Successful in 9s
Tests / conformance test (macos-latest, 24) (push) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 1/3) (push) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 2/3) (push) Has been cancelled
Tests / conformance test (windows-latest, 24, shard 3/3) (push) Has been cancelled
Tests / Required tests (push) Has been cancelled

This commit is contained in:
Jakub Zych
2026-10-06 20:30:09 +02:00
parent 792139b5ed
commit fe3ed06691
83 changed files with 308 additions and 1997 deletions

View File

@@ -3926,16 +3926,16 @@ describe('ADR-1016 phase 5a: validateConfigHome unit tests', () => {
test('skillsHome with valid kind → no errors', () => {
const errors = validateConfigHome('test', {
kind: 'xdg', name: 'kilo', env: [],
skillsHome: { kind: 'dot-home', name: '.kilo', env: [] },
kind: 'xdg', name: 'opencode', env: [],
skillsHome: { kind: 'dot-home', name: '.opencode', env: [] },
});
assert.deepEqual(errors, []);
});
test('skillsHome with bad kind → error', () => {
const errors = validateConfigHome('test', {
kind: 'xdg', name: 'kilo', env: [],
skillsHome: { kind: 'exotic', name: '.kilo', env: [] },
kind: 'xdg', name: 'opencode', env: [],
skillsHome: { kind: 'exotic', name: '.opencode', env: [] },
});
assert.ok(errors.some((e) => e.includes('skillsHome') && e.includes('kind')));
});
@@ -4164,12 +4164,12 @@ describe('FIX 3: tightened runtime validator — ArtifactKind field type checks'
assert.deepEqual(converterErrors, [], 'converter: null must be accepted, got: ' + JSON.stringify(converterErrors));
});
test('ArtifactKind with converter: "convertClaudeCommandToKiloSkill" (string) → no error', () => {
test('ArtifactKind with converter: "convertClaudeCommandToOpencodeSkill" (string) → no error', () => {
const cap = makeRuntimeCap({
id: 'test-rt',
runtime: {
artifactLayout: {
global: [{ kind: 'skills', destSubpath: 'skills', prefix: 'msd-', nesting: 'flat', recursive: true, converter: 'convertClaudeCommandToKiloSkill' }],
global: [{ kind: 'skills', destSubpath: 'skills', prefix: 'msd-', nesting: 'flat', recursive: true, converter: 'convertClaudeCommandToOpencodeSkill' }],
local: [],
},
},
@@ -4294,57 +4294,26 @@ describe('ADR-1016 phase 5a: closed-vocab set exports', () => {
// ─── 25. ADR-857 phase 5e: closed ConverterName enum (Part B) ─────────────────
describe('ADR-857 phase 5e: VALID_CONVERTER_NAMES closed enum', () => {
// #2875 Part 2 (the agents-bypass closure): 3 converters added —
// convertClaudeAgentToHermesAgent (data-driven Hermes branding converter,
// reads hostBehaviors.brandingRewrites) and convertClaudeToKiloFrontmatter /
// convertClaudeToOpencodeFrontmatter (kilo/opencode's agents-kind
// converters — shared by name with those runtimes' commands-kind entries,
// options-bag signature `(content, {isAgent, modelOverride})`). All three
// are genuinely new agent converters (not renamed/leftover), so the agent
// count grows from 11 to 14; the 16 command/skill/workflow converters are
// unchanged.
test('VALID_CONVERTER_NAMES has exactly 30 entries (16 command/skill/workflow + 14 agent converters)', () => {
test('VALID_CONVERTER_NAMES has exactly 10 entries (5 command/skill + 5 agent converters)', () => {
assert.ok(VALID_CONVERTER_NAMES instanceof Set, 'VALID_CONVERTER_NAMES must be a Set');
assert.strictEqual(VALID_CONVERTER_NAMES.size, 30, 'VALID_CONVERTER_NAMES must have exactly 30 entries, got: ' + VALID_CONVERTER_NAMES.size);
assert.strictEqual(VALID_CONVERTER_NAMES.size, 10, 'VALID_CONVERTER_NAMES must have exactly 10 entries, got: ' + VALID_CONVERTER_NAMES.size);
});
test('VALID_CONVERTER_NAMES contains all expected converter names', () => {
const expected = [
// command/skill converters (pre-existing)
'convertClaudeCommandToAntigravitySkill',
'convertClaudeCommandToAugmentSkill',
'convertClaudeCommandToClineSkill',
'convertClaudeCommandToClaudeSkill',
'convertClaudeCommandToCodebuddyCommand',
'convertClaudeCommandToCodebuddySkill',
'convertClaudeCommandToCodexSkill',
'convertClaudeCommandToCopilotSkill',
'convertClaudeCommandToCursorSkill',
'convertClaudeCommandToKiloSkill',
'convertClaudeCommandToKimiSkill',
'convertClaudeCommandToOpencodeSkill',
'convertClaudeCommandToTraeSkill',
'convertClaudeCommandToWindsurfSkill',
'convertClaudeCommandToWindsurfWorkflow',
// agent converters (#1173 — descriptor-driven agent conversion wiring)
'convertClaudeAgentToCopilotAgent',
'convertClaudeAgentToAntigravityAgent',
'convertClaudeAgentToCursorAgent',
'convertClaudeAgentToWindsurfAgent',
'convertClaudeAgentToAugmentAgent',
'convertClaudeAgentToTraeAgent',
'convertClaudeAgentToCodebuddyAgent',
'convertClaudeAgentToClineAgent',
'convertClaudeAgentToCodexAgent',
// ADR-1239 / #2092 Phase B Upgrade 1 — native .qwen/agents/*.md subagent projection.
'convertClaudeAgentToQwenAgent',
// #3384 — ZCode agent converter (strips mcp__* grants at install time).
'convertClaudeAgentToZcodeAgent',
// #2875 Part 2 (the agents-bypass closure) — data-driven Hermes branding
// converter, and the kilo/opencode agent converters (shared name with
// those runtimes' commands-kind entries).
'convertClaudeAgentToHermesAgent',
'convertClaudeToKiloFrontmatter',
// opencode agent converter (shared name with the runtime's commands-kind entries).
'convertClaudeToOpencodeFrontmatter',
];
for (const name of expected) {
@@ -4379,8 +4348,8 @@ describe('ADR-857 phase 5e: validateArtifactKindEntry — ConverterName enum (FA
});
// Valid known name must be accepted
test('ACCEPTED: converter "convertClaudeCommandToKiloSkill" is a known ConverterName', () => {
const entry = makeArtifactEntry({ converter: 'convertClaudeCommandToKiloSkill' });
test('ACCEPTED: converter "convertClaudeCommandToOpencodeSkill" is a known ConverterName', () => {
const entry = makeArtifactEntry({ converter: 'convertClaudeCommandToOpencodeSkill' });
const errors = validateArtifactKindEntry('test-cap', entry, 'artifactLayout.global[0]');
const converterErrors = errors.filter((e) => e.includes('converter'));
assert.deepEqual(converterErrors, [], 'Known converter name must be accepted, got: ' + JSON.stringify(converterErrors));
@@ -4666,7 +4635,7 @@ describe('ADR-857 phase 5f: cross-field consistency gate rejection tests (DEFECT
);
});
test('REJECTS: permissionWriter not null and not in {opencode,kilo} → throws validation error', () => {
test('REJECTS: permissionWriter not null and not in {opencode,antigravity} → throws validation error', () => {
const cap = makeValidRuntimeCap({ runtime: { permissionWriter: 'notarealwriter' } });
const errors = validateRuntimeBody(cap);
assert.ok(
@@ -4800,7 +4769,7 @@ describe('ADR-857 phase 5f: cross-field consistency gate rejection tests (DEFECT
test('VALID_EXTENDED_HOOK_EVENTS covers all 8 known extended events', () => {
assert.ok(VALID_EXTENDED_HOOK_EVENTS instanceof Set, 'Must be a Set');
assert.strictEqual(VALID_EXTENDED_HOOK_EVENTS.size, 8, 'Must cover 8 extended hook events');
// SubagentStart added #2092 Phase B Upgrade 2 (qwen-only today).
// SubagentStart added #2092 Phase B Upgrade 2.
for (const ev of ['SubagentStop', 'Stop', 'PreCompact', 'FileChanged', 'BeforeAgent', 'AfterAgent', 'BeforeModel', 'SubagentStart']) {
assert.ok(VALID_EXTENDED_HOOK_EVENTS.has(ev), 'Must include event "' + ev + '"');
}