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
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:
@@ -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 + '"');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user