Skip to content

Commit cf0537a

Browse files
committed
Merge remote-tracking branch 'origin/main' into claude/issue-21828-loader-one-hash
2 parents 235e681 + 2799155 commit cf0537a

20 files changed

Lines changed: 94 additions & 94 deletions

‎packages/spec/src/data/default-value-shape.test.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
} from './default-value-shape';
2323
import { DEFAULT_VALUE_TOKENS } from './default-value-tokens';
2424

25-
describe('#7127 discriminateDefaultValueShape — engine-parity classification', () => {
25+
describe('discriminateDefaultValueShape — engine-parity classification', () => {
2626
const CASES: Array<{ label: string; dv: unknown; shape: DefaultValueShape }> = [
2727
// ── Expression envelopes: the engine's structural predicate, verbatim ────
2828
{ label: 'canonical CEL envelope', dv: { dialect: 'cel', source: 'today()' }, shape: 'expression' },
@@ -87,7 +87,7 @@ describe('#7127 discriminateDefaultValueShape — engine-parity classification',
8787
});
8888
});
8989

90-
describe('#7127 checkLiteralDefaultValue — the shared stored-form literal check', () => {
90+
describe('checkLiteralDefaultValue — the shared stored-form literal check', () => {
9191
it('refuses a literal that cannot satisfy the stored contract, with the contract\'s own detail', () => {
9292
const v = checkLiteralDefaultValue({ type: 'number' }, 'abc');
9393
expect(v.ok).toBe(false);
@@ -130,7 +130,7 @@ describe('#7127 checkLiteralDefaultValue — the shared stored-form literal chec
130130
// also be wrong. Each case below asserts BOTH halves: the prescription is
131131
// present, AND the half that was being shown instead is gone. Without the
132132
// second the pin cannot see a regression back to the positional read.
133-
it('#16077 prefers the rename over a MISSING-member type error (location)', () => {
133+
it('prefers the rename over a MISSING-member type error (location)', () => {
134134
const v = checkLiteralDefaultValue({ type: 'location' }, { latitude: 1, longitude: 2 });
135135
expect(v.ok).toBe(false);
136136
// Positionally this rejection reads
@@ -148,7 +148,7 @@ describe('#7127 checkLiteralDefaultValue — the shared stored-form literal chec
148148
// discarding it cost the author the whole thing.
149149
});
150150

151-
it('#16077 prefers the rename over a WRONG-TYPED-member error (address)', () => {
151+
it('prefers the rename over a WRONG-TYPED-member error (address)', () => {
152152
const v = checkLiteralDefaultValue({ type: 'address' }, { street: 5, postal_code: '98101' });
153153
expect(v.ok).toBe(false);
154154
// Every member of `address` is optional, which rules out a MISSING-member
@@ -158,7 +158,7 @@ describe('#7127 checkLiteralDefaultValue — the shared stored-form literal chec
158158
expect(v.detail).not.toContain('expected string, received number');
159159
});
160160

161-
it('#16077 leaves the already-correct case exactly as it was (the asymmetry is gone)', () => {
161+
it('leaves the already-correct case exactly as it was (the asymmetry is gone)', () => {
162162
// No member error to sort ahead, so this one was always right. Pinning it
163163
// beside the two above is what states the property: the diagnosis no
164164
// longer depends on whether an unrelated member happened to also be wrong.
@@ -169,7 +169,7 @@ describe('#7127 checkLiteralDefaultValue — the shared stored-form literal chec
169169
expect(unlucky.detail).toContain('`postal_code` \u2192 `postalCode`');
170170
});
171171

172-
it('#16077 is a NO-OP for a class that cannot emit `unrecognized_keys`', () => {
172+
it('the rename preference is a NO-OP for a class that cannot emit `unrecognized_keys`', () => {
173173
// The sweep over all sixteen classes `valueSchemaFor(def, 'stored')`
174174
// covers found only `location` and `address` backed by a `strictObject`,
175175
// so only they can emit the issue the preference looks for. For the other

‎packages/spec/src/data/default-value-tokens.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
isAppResolvedDefaultToken,
1313
} from './default-value-tokens.js';
1414

15-
describe('defaultValue runtime tokens (#4560)', () => {
15+
describe('defaultValue runtime tokens — one vocabulary the engine and the DDL both read', () => {
1616
it('declares the complete family, and every member is described', () => {
1717
expect([...DEFAULT_VALUE_TOKENS]).toEqual(['NOW()', 'current_user']);
1818
for (const token of DEFAULT_VALUE_TOKENS) {

‎packages/spec/src/data/document.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ describe('ESignatureConfigSchema', () => {
235235
// pin, the tsc `never` channel and the ADR-0087 registration — lives in
236236
// `esignature-deadline-keys-retirement.test.ts`; these two are the family
237237
// tests' one-line refusal witnesses (the #14477 house shape).
238-
it('REFUSES an authored `expirationDays` — a retiredKey() tombstone since #14477 (ADR-0049)', () => {
238+
it('REFUSES an authored `expirationDays` — a retiredKey() tombstone, since nothing ever read it (ADR-0049)', () => {
239239
const wellFormed = {
240240
provider: 'custom',
241241
signers: [{ email: 'test@example.com', name: 'Test', role: 'Test', order: 1 }],
@@ -252,7 +252,7 @@ describe('ESignatureConfigSchema', () => {
252252
expect(parsed).not.toHaveProperty('expirationDays');
253253
});
254254

255-
it('REFUSES an authored `reminderDays` — a retiredKey() tombstone since #14477 (ADR-0049)', () => {
255+
it('REFUSES an authored `reminderDays` — a retiredKey() tombstone, since nothing ever read it (ADR-0049)', () => {
256256
const wellFormed = {
257257
provider: 'docusign',
258258
signers: [{ email: 'test@example.com', name: 'Test', role: 'Test', order: 1 }],

‎packages/spec/src/data/driver-nosql.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ describe('NoSQL Driver Protocol', () => {
372372
// never on a bare `toThrow()`. The shape is not strict, so without the
373373
// tombstone a query authored with `timeout` would have run with NO deadline at
374374
// all — the failure a driver timeout exists to prevent — and reported nothing.
375-
describe('NoSQLQueryOptions.timeout carries its unit (#15680)', () => {
375+
describe('NoSQLQueryOptions.timeout carries its unit', () => {
376376
it('REFUSES the retired `timeout` with the rename in the message', () => {
377377
const result = NoSQLQueryOptionsSchema.safeParse({ timeout: 5000 });
378378
expect(result.success).toBe(false);

‎packages/spec/src/data/driver.test.ts‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,15 @@ describe('DriverCapabilitiesSchema', () => {
101101
// Retired capability bits (#4634, ADR-0049 enforce-or-remove)
102102
// ===========================================================================
103103

104-
describe('[#4634] the 31 inert capability bits are tombstoned, not stripped', () => {
104+
describe('the 31 inert capability bits are tombstoned, not stripped', () => {
105105
it.each(RETIRED_BITS)('REJECTS an authored `%s`, with the prescription in the message', (bit) => {
106106
const value = bit === 'isolationLevels' ? ['read-committed'] : true;
107107
expect(() => DriverCapabilitiesSchema.parse({ [bit]: value })).toThrow(
108108
new RegExp(`DriverCapabilities\\.${bit}.*removed.*Delete the key`, 's'),
109109
);
110110
});
111111

112-
it('the streaming prescription carries the #4484 findStream story and the paged-find fix', () => {
112+
it('the streaming prescription names the removed findStream and the paged-find fix', () => {
113113
expect(() => DriverCapabilitiesSchema.parse({ streaming: true })).toThrow(
114114
/DriverCapabilities\.streaming.*removed.*findStream.*`find\(\)` with `limit`\/`offset`.*Delete the key/s,
115115
);
@@ -163,7 +163,7 @@ describe('[#4634] the 31 inert capability bits are tombstoned, not stripped', ()
163163
// so the load-bearing tsc-channel proof is the compiler-API test below, with
164164
// anti-vacuity guards; sabotage-verified in the PR (S1: re-adding a live
165165
// `streaming: z.boolean()` turns it red).
166-
describe('[#4634] tsc channel: the retired bits are unwritable in DriverCapabilities', () => {
166+
describe('tsc channel: the retired bits are unwritable in DriverCapabilities', () => {
167167
it('types every retired bit as authored-unwritable and every live bit as writable', async () => {
168168
const ts = (await import('typescript')).default;
169169
const { resolve, dirname } = await import('node:path');
@@ -396,7 +396,7 @@ describe('DriverInterfaceSchema', () => {
396396
// else; the unit now lives in the key name. Tombstoned (the shape is not
397397
// strict, so a bare deletion would strip the old key in silence) and
398398
// registered as `data/DriverOptions:timeout` under protocol 18.
399-
describe('DriverOptions.timeout → DriverOptions.timeoutMs (#14478)', () => {
399+
describe('DriverOptions.timeout → DriverOptions.timeoutMs: the key carries its unit', () => {
400400
it('REFUSES the retired `timeout` spelling with the rename in the message', () => {
401401
const result = DriverOptionsSchema.safeParse({ timeout: 5000 });
402402
expect(result.success).toBe(false);
@@ -425,7 +425,7 @@ describe('DriverOptions.timeout → DriverOptions.timeoutMs (#14478)', () => {
425425
// [#18063] driverSupportsTransactions — the one definition of the gate
426426
// ===========================================================================
427427

428-
describe('[#18063] driverSupportsTransactions', () => {
428+
describe('driverSupportsTransactions — a driver that cannot honour transactions says so', () => {
429429
const withMethod = { beginTransaction: async () => ({}) };
430430

431431
it('is false for a driver with no beginTransaction — the pre-existing gate, unchanged', () => {

‎packages/spec/src/data/esignature-deadline-keys-retirement.test.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ function expectTombstoneRefusal(site: Pick<RetiredSite, 'qualified' | 'schema' |
141141
expect(issue!.message).not.toMatch(/os migrate meta/);
142142
}
143143

144-
describe('[#14477] ESignatureConfig deadline pair retirement — refusal at every site', () => {
144+
describe('ESignatureConfig deadline pair retirement — refusal at every site', () => {
145145
for (const site of SITES) {
146146
it(`REJECTS an authored \`${site.qualified}\` at path \`${site.issuePath.join('.')}\`, carrying the prescription`, () => {
147147
expectTombstoneRefusal(site);
@@ -169,7 +169,7 @@ describe('[#14477] ESignatureConfig deadline pair retirement — refusal at ever
169169
});
170170
});
171171

172-
describe('[#14477] no-materialize: parsed configurations carry neither key and neither former default', () => {
172+
describe('no-materialize: parsed configurations carry neither key and neither former default', () => {
173173
it('on the base schema', () => {
174174
const parsed = ESignatureConfigSchema.parse(CONFIG);
175175
expect(parsed).not.toHaveProperty('expirationDays');
@@ -187,7 +187,7 @@ describe('[#14477] no-materialize: parsed configurations carry neither key and n
187187
});
188188
});
189189

190-
describe('[#14477] the tsc channel: the input type of both retired keys is `never`', () => {
190+
describe('the tsc channel: the input type of both retired keys is `never`', () => {
191191
it('fails tsc at both authoring sites', () => {
192192
const config: ESignatureConfig = {
193193
...CONFIG,
@@ -215,7 +215,7 @@ describe('[#14477] the tsc channel: the input type of both retired keys is `neve
215215
});
216216
});
217217

218-
describe('[#14477] ADR-0087 registration', () => {
218+
describe('ADR-0087 registration', () => {
219219
it('declares both sites under major 18, with the D3 semantic entry wired and no D2 conversion', () => {
220220
for (const site of SITES) {
221221
expect(RETIRED_KEYS_BY_MAJOR[18], `${site.registered} must be declared`).toContain(site.registered);

‎packages/spec/src/data/external-lookup-retirement.test.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ import {
5454
// Form follows #4988 / #5055: resolved symbol identity over every public entry
5555
// via the build-time `export-origins/` artifact, plus the file-deletion probe
5656
// in the #4988 direction (whole-file retirement, no surviving occupant).
57-
describe('[#8075] data/ external-lookup family retirement', () => {
57+
describe('data/ external-lookup family retirement', () => {
5858
/** The 8 names the three retired defs exported (3 schema consts + 5 types). */
5959
const RETIRED_NAMES = [
6060
'ExternalDataSourceSchema', 'ExternalDataSource',
@@ -86,7 +86,7 @@ describe('[#8075] data/ external-lookup family retirement', () => {
8686

8787
// ── ABSENCE (every entry, not just ./data) ────────────────────────────
8888
for (const name of RETIRED_NAMES) {
89-
expect(holdersOf(name), `${name} must have zero holders after #8075`).toEqual([]);
89+
expect(holdersOf(name), `${name} must have zero holders after the external-lookup retirement`).toEqual([]);
9090
}
9191

9292
// ── SURVIVAL ──────────────────────────────────────────────────────────
@@ -127,7 +127,7 @@ describe('[#8075] data/ external-lookup family retirement', () => {
127127
}
128128
};
129129
walk(srcRoot);
130-
expect(importers, 'a resurrected import means the retirement is being undone — re-read #8075').toEqual([]);
130+
expect(importers, 'a resurrected import means the retirement is being undone — the family had no consumer and accepted inline credentials').toEqual([]);
131131
});
132132

133133
it('runtime namespace agrees with the compiler view', async () => {

‎packages/spec/src/data/feed.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('FeedItemType', () => {
1919
});
2020
});
2121

22-
describe('SYS_ACTIVITY_BUILTIN_TYPES (#11807)', () => {
22+
describe('SYS_ACTIVITY_BUILTIN_TYPES — the built-in activity types, published by the spec', () => {
2323
/**
2424
* Mechanical invariants only. The semantic pin — every entry has a recorded
2525
* writer disposition — lives with the object that declares the column:

‎packages/spec/src/data/field-autonumber-default-format.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { z } from 'zod';
2525
import { FieldSchema } from './field.zod';
2626
import { DEFAULT_AUTONUMBER_FORMAT, resolveAutonumberFormat } from './autonumber-format';
2727

28-
describe('FieldSchema.autonumberFormat — the declared contract default (#6555)', () => {
28+
describe('FieldSchema.autonumberFormat — the declared contract default', () => {
2929
it('declares `{0000}` as the JSON-Schema default for the key', () => {
3030
const js = z.toJSONSchema(FieldSchema as unknown as z.ZodType, {
3131
unrepresentable: 'any',

‎packages/spec/src/data/field-autonumber-default-unique.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function minimalField(type: string): Record<string, unknown> {
5151
return input;
5252
}
5353

54-
describe('#13894 — autonumber defaults to unique: organization', () => {
54+
describe('autonumber defaults to unique: organization', () => {
5555
it("materializes 'organization' when the author omits `unique`", () => {
5656
const parsed = FieldSchema.parse({ type: 'autonumber' });
5757
expect(parsed.unique).toBe('organization');
@@ -101,7 +101,7 @@ describe('#13894 — autonumber defaults to unique: organization', () => {
101101
expect(text.indexOf('unique')).toBe(text.indexOf('multiple') + 1);
102102
});
103103

104-
it('is idempotent — parse(parse(x)) is byte-identical (the #9689 class)', () => {
104+
it('is idempotent — parse(parse(x)) is byte-identical', () => {
105105
for (const input of [{ type: 'autonumber' }, { type: 'autonumber', unique: false }, { type: 'text' }]) {
106106
const once = FieldSchema.parse(input);
107107
const twice = FieldSchema.parse(once);

0 commit comments

Comments
 (0)