Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import {
// (#4834 superseded the kernel half: `DynamicLoadRequest` — the shape that
// carried the tombstoned key — was removed whole, so this file's kernel-side
// parse assertion is gone. See the block above the studio test.)
describe('[#4657] ActivationEventSchema removal — no entry exports the name', () => {
describe('ActivationEventSchema removal — no entry exports the name', () => {
it('resolves the export surface: the retired names have ZERO holders across every public entry', () => {
// Anti-vacuity: the baseline must cover the real surface. (This used to
// enumerate package.json's exports map and build its own `ts.createProgram`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { MetadataPluginConfigSchema, MetadataPluginManifestSchema } from './meta
// pins assert the strongest set this surface really has: refusal, the issue
// `code`, the `path` naming WHICH key was refused, and the prescription text
// (#5240: where the wording is the contract, pin the wording).
describe('[#8586] MetadataPluginConfig.additionalTypes retirement', () => {
describe('MetadataPluginConfig.additionalTypes retirement', () => {
/** A config that is valid except for whatever the individual test adds. */
const baseConfig = { storage: {} } as const;

Expand Down
2 changes: 1 addition & 1 deletion packages/spec/src/kernel/capability-metadata-kind.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const DECLARATION = {
packageId: 'com.acme.billing',
};

describe('#5961 — capability is a registered metadata kind', () => {
describe('capability is a registered metadata kind', () => {
// ── the three registries that were missing it ─────────────────────────

it('is a member of the kind enum', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import {
//
// Form follows #11825 / commit 2c86fe3ea / #4988: resolved symbol identity over every
// public entry via the build-time `export-origins/` artifact.
describe('[#12007] kernel/ CLICommandContribution retirement', () => {
describe('kernel/ CLICommandContribution retirement', () => {
/** The 2 names the retired def exported (1 schema const + 1 type). */
const RETIRED_NAMES = [
'CLICommandContributionSchema',
Expand Down Expand Up @@ -71,7 +71,7 @@ describe('[#12007] kernel/ CLICommandContribution retirement', () => {

// ── ABSENCE (every entry, not just ./kernel) ──────────────────────────
for (const name of RETIRED_NAMES) {
expect(holdersOf(name), `${name} must have zero holders after #12007`).toEqual([]);
expect(holdersOf(name), `${name} must have zero holders after its retirement`).toEqual([]);
}

// ── SURVIVAL ──────────────────────────────────────────────────────────
Expand All @@ -83,7 +83,7 @@ describe('[#12007] kernel/ CLICommandContribution retirement', () => {

it('the runtime barrel resolves without the retired schema and keeps the survivor', async () => {
const kernel = await import('./index');
expect(kernel, 'CLICommandContributionSchema must not be exported after #12007')
expect(kernel, 'CLICommandContributionSchema must not be exported after its retirement')
.not.toHaveProperty('CLICommandContributionSchema');
// Anti-vacuity: the barrel really resolved and still exports the live
// oclif surface plus an unrelated kernel anchor.
Expand Down
4 changes: 2 additions & 2 deletions packages/spec/src/kernel/events.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ describe('EventSchema', () => {
// This pin holds the WIDENING: spellings the retired grammar refused
// (PascalCase, kebab-case, leading digit/dot) now parse — a regression to a
// schema-level grammar here should be a deliberate ruling, not drift.
it('accepts event names as plain strings — the dot-notation grammar is retired (#13613)', () => {
it('accepts event names as plain strings — the dot-notation grammar is retired', () => {
const names = [
// conventional dot-notation spellings (valid before and after)
'user.created',
Expand Down Expand Up @@ -823,7 +823,7 @@ describe('Enhanced Event Handler', () => {
// payload) rather than a bare unrecognized-key error, and the value survives at
// the same magnitude. Asserting the message, not just `.toThrow()`: a bare
// throw stays green when the schema throws for some unrelated reason.
describe('Event bus retention windows carry their unit (#15678)', () => {
describe('Event bus retention windows carry their unit', () => {
it.each([
['EventPersistence', EventPersistenceSchema, { enabled: true }],
['EventSourcingConfig', EventSourcingConfigSchema, {}],
Expand Down
10 changes: 5 additions & 5 deletions packages/spec/src/kernel/execution-context.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ describe('ExecutionContextSchema', () => {
// `message: undefined`. The contract is stated here, at the producer's
// declaration, rather than tolerated at each consumer.
// ---------------------------------------------------------------------------
describe('ExecutionContextSchema.authGate — the ADR-0069 gate posture (#7280)', () => {
describe('ExecutionContextSchema.authGate — the ADR-0069 gate posture is a declared field', () => {
it('accepts a well-formed gate', () => {
const ctx = ExecutionContextSchema.parse({
userId: 'u1',
Expand Down Expand Up @@ -164,7 +164,7 @@ describe('ExecutionContextSchema.authGate — the ADR-0069 gate posture (#7280)'
// were emptied, so the non-empty check is what makes this pin fail on a blank
// cell rather than only on changed wording.
// ---------------------------------------------------------------------------
describe('ExecutionContextSchema.preserveAudit — the published description (#6881)', () => {
describe('ExecutionContextSchema.preserveAudit — the published description', () => {
const description = ExecutionContextSchema.shape.preserveAudit.description ?? '';

it('is present and non-empty, so the generated reference row is not blank', () => {
Expand Down Expand Up @@ -216,7 +216,7 @@ describe('ExecutionContextSchema.preserveAudit — the published description (#6
// that lost it once seeded with automation live while the main path had it
// suppressed, a self-trigger loop that wedged first boot (#3760). So "one flag
// looks redundant, drop it" is exactly the edit that must go red.
describe('[#17178] SEED_WRITE_EXECUTION_CONTEXT', () => {
describe('SEED_WRITE_EXECUTION_CONTEXT — one spelling of the seed posture', () => {
it('is a valid ExecutionContext — the WHOLE value parses, not merely its key names', () => {
const parsed = ExecutionContextSchema.safeParse(SEED_WRITE_EXECUTION_CONTEXT);
expect(parsed.success, JSON.stringify('error' in parsed ? parsed.error : {})).toBe(true);
Expand All @@ -230,11 +230,11 @@ describe('[#17178] SEED_WRITE_EXECUTION_CONTEXT', () => {
]);
});

it('sets `skipTriggers` — `isSystem` alone does NOT suppress trigger dispatch (#3760)', () => {
it('sets `skipTriggers` — `isSystem` alone does NOT suppress trigger dispatch', () => {
expect(SEED_WRITE_EXECUTION_CONTEXT.skipTriggers).toBe(true);
});

it('sets `seedReplay` — the state_machine exemption a mid-lifecycle seed row needs (#3433)', () => {
it('sets `seedReplay` — the state_machine exemption a mid-lifecycle seed row needs', () => {
expect(SEED_WRITE_EXECUTION_CONTEXT.seedReplay).toBe(true);
});

Expand Down
12 changes: 6 additions & 6 deletions packages/spec/src/kernel/functional-completeness.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const only = (findings: ReturnType<typeof checkFieldCompleteness>) => {
};

describe('checkFieldCompleteness — the verified inert shapes go red', () => {
it('flags a bare summary as an ERROR (the cloud#687 founding case)', () => {
it('flags a bare summary as an ERROR (the founding case: a roll-up that reads 0 forever)', () => {
const f = only(checkFieldCompleteness({ type: 'summary' }));
expect(f.rule).toBe(FIELD_SUMMARY_WITHOUT_OPERATIONS);
expect(f.severity).toBe('error');
Expand Down Expand Up @@ -158,7 +158,7 @@ describe('checkViewCompleteness — layout bindings', () => {
expect(checkViewCompleteness({ type: 'tree', tree: { parentField: 'parent' } })).toEqual([]);
});

it('the calendar body describes the REFUSAL, not a deleted literal fallback (#17445)', () => {
it('the calendar body describes the REFUSAL, not a deleted literal fallback', () => {
// Re-measured on objectui `main` at `0cf2d6644` (2026-09-21), both halves
// of the path: `ListView.tsx`'s `case 'calendar'` restates only declared
// bindings — objectui#7029 deleted the `startDateField || 'start_date'` /
Expand Down Expand Up @@ -199,7 +199,7 @@ describe('checkViewCompleteness — layout bindings', () => {
keys: ['timeline.startDateField', 'timeline.titleField'] },
{ type: 'map', component: 'ObjectMap.tsx', screen: 'Map configuration required',
keys: ['map.locationField', 'map.latitudeField', 'map.longitudeField'] },
])('the $type body describes the REFUSAL, not a deleted literal fallback (#19630)', ({ type, component, screen, keys }) => {
])('the $type body describes the REFUSAL, not a deleted literal fallback', ({ type, component, screen, keys }) => {
const f = only(checkViewCompleteness({ type }) as never);
expect(f.rule).toBe(VIEW_LAYOUT_WITHOUT_BINDING);
expect(f.message).not.toContain('falls back to literal default field names');
Expand Down Expand Up @@ -429,7 +429,7 @@ describe('checkViewCompleteness — rowColor without a colour map (the parse-cle
// Pinning the literal string would rot. What is pinned instead is the
// PROPERTY that made it wrong: the value the prescription suggests is fed
// back through this module, and must survive it.
it('hands the author a prescription this module itself accepts (#18791)', () => {
it('hands the author a prescription this module itself accepts', () => {
const f = only(checkViewCompleteness({ type: 'grid', rowColor: { field: 'status' } }) as never);
const suggested = /'<field_value>':\s*'([^']+)'/.exec(f.fix)?.[1];
expect(suggested, `no suggested colour value in the prescription: ${f.fix}`).toBeDefined();
Expand All @@ -440,7 +440,7 @@ describe('checkViewCompleteness — rowColor without a colour map (the parse-cle
).toEqual([]);
});

it('⛔ names no hex placeholder anywhere in the prescription (#18791)', () => {
it('⛔ names no hex placeholder anywhere in the prescription', () => {
// The direct, dumb half of the pin above: whatever the wording becomes, it
// must not put a hex back in front of an author. `token` is refused for the
// same reason — it named nothing an author could look up, and stood beside
Expand Down Expand Up @@ -519,7 +519,7 @@ describe('checkViewCompleteness — rowColor without a colour map (the parse-cle
* app-local resolvability arm went red naming all four, and the presence arm
* stayed green.
*/
describe('checkViewCompleteness — rowColor values the renderer resolves to nothing (#18791)', () => {
describe('checkViewCompleteness — rowColor values the renderer resolves to nothing', () => {
const grid = (colors: Record<string, unknown>) =>
checkViewCompleteness({ type: 'grid', rowColor: { field: 'priority', colors } });

Expand Down
10 changes: 5 additions & 5 deletions packages/spec/src/kernel/manifest-unknown-keys.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ const unrecognized = (result: ReturnType<typeof ManifestSchema.safeParse>) => {
| undefined;
};

describe("#14192 — unknown keys inside `manifest:` are refused at parse (the card's measurement, inverted)", () => {
describe("unknown keys inside `manifest:` are refused at parse (the silent-drop measurement, inverted)", () => {
it('a transposed `namesapce` is a named refusal carrying the rename — not an undefined namespace', () => {
// The card's own measurement: parse success, key dropped, namespace undefined.
const { namespace: _omitted, ...withoutNamespace } = legal();
Expand Down Expand Up @@ -108,7 +108,7 @@ describe("#14192 — unknown keys inside `manifest:` are refused at parse (the c
});
});

describe('#14192 — the refusal reaches every door the measurement listed', () => {
describe('the refusal reaches every door the measurement listed', () => {
const typo = () => {
const { namespace: _omitted, ...rest } = legal();
return { ...rest, namesapce: 'probe' };
Expand Down Expand Up @@ -218,7 +218,7 @@ describe('#14192 — the refusal reaches every door the measurement listed', ()
});
});

describe('#14192 — the nested blocks inside `manifest:` are closed under the same measurement', () => {
describe('the nested blocks inside `manifest:` are closed under the same measurement', () => {
it('`contributes.kind` (for `kinds`) is refused at the block, with the rename', () => {
const result = ManifestSchema.safeParse({ ...legal(), contributes: { kind: [{ id: 'sys.bi.report' }] } });
expect(result.success).toBe(false);
Expand Down Expand Up @@ -278,7 +278,7 @@ describe('#14192 — the nested blocks inside `manifest:` are closed under the s
});
});

describe('#14192 — the accept side does not move, and `main` is declared', () => {
describe('the accept side does not move, and `main` is declared', () => {
it('every live key parses and survives — the whole declared vocabulary in one manifest', () => {
const full = {
...legal(),
Expand Down Expand Up @@ -357,7 +357,7 @@ describe('#14192 — the accept side does not move, and `main` is declared', ()
});
});

describe('#16328 — the `permissions` union door names the surface and the rename, like every other door', () => {
describe('the `permissions` union door names the surface and the rename, like every other door', () => {
// ## What #16328 reported, and what was actually wrong
//
// The card measured `{ services: ['object'], hoooks: ['x'] }` refused with a
Expand Down
12 changes: 6 additions & 6 deletions packages/spec/src/kernel/manifest.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ describe('ManifestSchema', () => {
});
});

describe('contributes dead-member retirement (#10724, ADR-0049 — tombstoned, not deleted)', () => {
describe('contributes dead-member retirement (ADR-0049 — tombstoned, not deleted)', () => {
// Nine members had zero readers monorepo-wide (the controlled census commit be21955ba records,
// completed on cloud 2026-08-24). When they were retired `ManifestSchema` and
// the `contributes` object were NOT `.strict()`, so a plain deletion would
Expand Down Expand Up @@ -417,7 +417,7 @@ describe('contributes dead-member retirement (#10724, ADR-0049 — tombstoned, n
);
});

it('still parses the surviving `kinds` member — `routes` retired separately (#10726)', () => {
it('still parses the surviving `kinds` member — `routes` retired separately', () => {
const parsed = ManifestSchema.parse({
...base,
contributes: {
Expand All @@ -434,7 +434,7 @@ describe('contributes dead-member retirement (#10724, ADR-0049 — tombstoned, n
});
});

describe('contributes.routes retirement (#10726, ADR-0049 — maintainer-ruled Option B 2026-08-22)', () => {
describe('contributes.routes retirement (ADR-0049 — removed for the `http.server` mount, maintainer-ruled 2026-08-22)', () => {
// The one `contributes` member split onto its own card: zero readers like
// its nine siblings retired by commit be21955ba (that commit's controlled census, cloud leg closed
// clean on 2026-08-24), but four published surfaces taught it as THE way to
Expand Down Expand Up @@ -472,7 +472,7 @@ describe('contributes.routes retirement (#10726, ADR-0049 — maintainer-ruled O
});
});

describe('contributes.kinds[].globs retirement (#11169, ADR-0049 — maintainer-ruled 2026-08-24)', () => {
describe('contributes.kinds[].globs retirement (ADR-0049 — maintainer-ruled 2026-08-24)', () => {
// The sub-field promised glob-driven file-type discovery that actually runs
// off the metadata type registry's `filePatterns` — which `contributes.kinds`
// does not extend — so an authored `globs` was stored, served back, and never
Expand Down Expand Up @@ -511,7 +511,7 @@ describe('contributes.kinds[].globs retirement (#11169, ADR-0049 — maintainer-
});
});

describe('dead-container retirement (#11332, ADR-0049 — tombstoned, not deleted)', () => {
describe('dead-container retirement (ADR-0049 — tombstoned, not deleted)', () => {
// Three top-level manifest containers had ZERO reads of the container itself
// monorepo-wide (objectstack + objectui + cloud, controlled census), which
// settles every key beneath them at once — a key cannot be read if the
Expand Down Expand Up @@ -667,7 +667,7 @@ describe('manifest.id — reverse-domain identifier', () => {
expect(ManifestSchema.safeParse({ ...legal('com.example.app'), namespace: 'my_app' }).success).toBe(true);
});

describe('the refusal carries a remedy (#4001)', () => {
describe('the refusal carries a remedy', () => {
const refusalFor = (id: string) => {
const r = ManifestSchema.safeParse(legal(id));
expect(r.success).toBe(false);
Expand Down
14 changes: 7 additions & 7 deletions packages/spec/src/kernel/metadata-authoring-lint.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ const lintAuthoring = (raw: unknown) => lintUnknownAuthoringKeys(raw, ObjectStac
*/
const VIEW_ENTRY = { name: 'v1', object: 'task', list: { columns: ['title'] }, bogusViewKey: 1 };

describe('coverage derivation (#3786 — no third hand-written list)', () => {
describe('coverage derivation (no third hand-written list)', () => {
it('spans the non-strict population, not a sample', () => {
// #4148 covered object+field: 2 surfaces. The point of this walker is the
// rest. If the derivation regresses to a handful, the "evidence base" for
Expand Down Expand Up @@ -92,7 +92,7 @@ describe('coverage derivation (#3786 — no third hand-written list)', () => {
}
});

it('reads posture from the schema the PARSE applies, not the type registry (#10039)', () => {
it('reads posture from the schema the PARSE applies, not the type registry', () => {
// `view` was counted as lint-covered because the posture came from
// `getMetadataTypeSchema('view')` — `ViewMetadataSchema`, the strip-mode
// UNION over persisted view BODIES. What `defineStack` actually applies to
Expand Down Expand Up @@ -181,7 +181,7 @@ describe('coverage derivation (#3786 — no third hand-written list)', () => {
});
});

describe('the #4148 behaviours survive the generalization', () => {
describe('the object/field unknown-key warnings survive the generalization', () => {
const stackWith = (obj: Record<string, unknown>, field: Record<string, unknown>) => ({
objects: [
{ name: 'crm_case', label: 'Case', fields: { owner: { label: 'Owner', type: 'text', ...field } }, ...obj },
Expand Down Expand Up @@ -301,7 +301,7 @@ describe('the #4148 behaviours survive the generalization', () => {
});
});

describe('nested descent (#4001 evidence phase)', () => {
describe('nested descent (the evidence base for the strict tiers)', () => {
// Before this the walk stopped at each item's top level plus a hard-coded
// hop into `object.fields`, leaving 227 strip-mode objects below those roots
// reporting nothing. These pin the four structural moves the descent makes
Expand Down Expand Up @@ -436,7 +436,7 @@ describe('nested descent (#4001 evidence phase)', () => {
});
});

describe('top-level stack keys (#4167 → #8687)', () => {
describe('top-level stack keys (named, then refused at parse)', () => {
const lint = (raw: unknown) => lintUnknownStackKeys(raw, ObjectStackDefinitionSchema);

// GRADUATION (#8687): `ObjectStackDefinitionSchema` is now `.strict()`, so
Expand Down Expand Up @@ -518,7 +518,7 @@ describe('STACK_KEY_GUIDANCE does not rot', () => {
}
});

it('every runtime member is a key the schema now declares (#8687)', () => {
it('every runtime member is a key the schema now declares', () => {
// Until #8687 this pin ran the other way: `onEnable` had to be excluded
// AND undeclared, because the exclusion list was what kept the lint from
// calling an honoured-but-undeclared member "dropped at load". The strict
Expand All @@ -545,7 +545,7 @@ describe('STACK_KEY_GUIDANCE does not rot', () => {
});
});

describe('one voice, and a single report per record (#10039)', () => {
describe('one voice, and a single report per record', () => {
// The card's measured repro, kept in the shape it was filed in. An otherwise
// VALID view container (it has `list`, so nothing else is wrong with it) plus
// one undeclared key used to produce BOTH:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import { MetadataManagerConfigSchema } from './metadata-loader.zod';
// directory: refusal, the issue `code`, the `path` naming WHICH key was
// refused, and the prescription text (#5240: where the wording is the
// contract, pin the wording).
describe('[#13135] paper metadata-customization protocol retirement', () => {
describe('paper metadata-customization protocol retirement', () => {
/** A config that is valid except for whatever the individual test adds. */
const baseConfig = { storage: {} } as const;

Expand Down
Loading
Loading