Skip to content

Commit 75e33f4

Browse files
committed
fix(dogfood, downstream-contract, plugin-dev): the qa fixtures, conformance ledgers and harness refusals state each decision in words instead of a tracker number (stage 5a)
Every ledgered tracker number in the packages/qa strings outside the authz conformance matrix leaves: 26 occurrences at 25 sites in 16 files. Where a sentence already said what was decided, only the citation goes; where it leaned on the number, it now says the decision in words. The plugin-dev describe title loses its dead citation the same way. Text only: no status, code, verdict, route, field or control flow moves. The prose-id ledger is recomputed with --census-ledger: the 16 rows leave, no other row changes. Claude-Session: https://claude.ai/code/session_01VvcEokUG1tvVxkceYfR5XB Co-authored-by: Claude <noreply@anthropic.com>
1 parent a7d9768 commit 75e33f4

18 files changed

Lines changed: 28 additions & 81 deletions

‎packages/plugins/plugin-dev/src/dev-plugin-security-enforcement-warning.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ async function boot(ctx: any, options: Record<string, unknown> = {}) {
118118
return plugin;
119119
}
120120

121-
describe('[#10036] the "nothing is enforced" warning must fire when SecurityPlugin.start() bailed', () => {
121+
describe('the "nothing is enforced" warning must fire when SecurityPlugin.start() bailed', () => {
122122
// ── The state the warning describes, constructed for real ───────────────
123123
//
124124
// SecurityPlugin registers `security.permissions` / `security.rls` /

‎packages/qa/dogfood/test/armed.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,9 @@ export async function assertArmed(probes: readonly ArmingProbe[]): Promise<void>
133133
if (!Array.isArray(probes) || probes.length === 0) {
134134
throw new Error(
135135
'assertArmed(): the arming declaration is EMPTY, which asserts nothing. An empty ' +
136-
'declaration would certify every fixture that forgot to write one — the exact defect ' +
137-
'class this helper exists to close (#8074). Name at least one control, or do not call ' +
138-
'assertArmed at all and say in the fixture header why no precondition applies.',
136+
'declaration would certify every fixture that forgot to write one — the exact defect class this ' +
137+
'helper exists to close, a fixture that passes while the control it measures is not engaged. Name ' +
138+
'at least one control, or do not call assertArmed at all and say in the fixture header why no precondition applies.',
139139
);
140140
}
141141

@@ -159,7 +159,7 @@ export async function assertArmed(probes: readonly ArmingProbe[]): Promise<void>
159159

160160
if (disarmed.length > 0) {
161161
throw new Error(
162-
`[#8074] this fixture is DISARMED: ${disarmed.length} of ${probes.length} control(s) it ` +
162+
`assertArmed(): this fixture is DISARMED: ${disarmed.length} of ${probes.length} control(s) it ` +
163163
'measures are not engaged on the booted stack, so its assertions would pass without ' +
164164
'testing anything.\n\n' +
165165
`${disarmed.join('\n\n')}\n\n` +

‎packages/qa/dogfood/test/build-shaped-artifact.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ export function buildShapedArtifact(stack: Record<string, unknown>): BuildShaped
189189
`declares ${expected.length} (${expected.join(', ') || 'none'}). Either a callable was ` +
190190
`dropped, or \`lowerCallables\` grew a slot \`callableSlots\` in ` +
191191
`packages/qa/dogfood/test/build-shaped-artifact.ts does not know about — fix the walk, ` +
192-
`never the assertion (#6293).`,
192+
`never the assertion.`,
193193
);
194194
}
195195

@@ -222,7 +222,7 @@ export function buildShapedArtifact(stack: Record<string, unknown>): BuildShaped
222222
`without a sound — ${dropped.join(', ')}. An entry it does not recognise is deleted ` +
223223
`rather than handed to the schema, so the artifact would parse green carrying nothing ` +
224224
`where these were. Most likely the entry is a headless husk (an object with an effect ` +
225-
`and no handler), which is what a plain \`JSON.stringify\` of the stack leaves (#6293).`,
225+
`and no handler), which is what a plain \`JSON.stringify\` of the stack leaves.`,
226226
);
227227
}
228228
}
@@ -262,7 +262,7 @@ export function buildShapedArtifact(stack: Record<string, unknown>): BuildShaped
262262
if (leftover.length > 0) {
263263
throw new Error(
264264
`build-shaped artifact: ${leftover.length} value(s) are still functions after lowering and ` +
265-
`would be dropped by JSON.stringify without a sound: ${leftover.join(', ')} (#6293).`,
265+
`would be dropped by JSON.stringify without a sound: ${leftover.join(', ')}.`,
266266
);
267267
}
268268

‎packages/qa/dogfood/test/enterprise-organizations.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ export async function probeOrganizations(
181181
'problem — the package publishes no entry Node can load, and the importer\'s ' +
182182
'message below is the authority on what it has to publish'
183183
: `declare ${pkg} in ${root}'s own package.json and install it — being ` +
184-
'reachable as somebody else\'s transitive dependency is not enough (#4719)';
184+
'reachable as somebody else\'s transitive dependency is not enough';
185185
if (declared) {
186186
throw new Error(
187187
`${MULTI_ORG_ENV}=1 declares that ${pkg} (enterprise, ADR-0105 D12) is ` +

‎packages/qa/dogfood/test/expression-conformance.ledger.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export const EXPRESSION_SURFACE: ExprSurface[] = [
141141
},
142142
{
143143
id: 'sharing-condition',
144-
summary: 'sharing-rule `condition` → criteria_json (ADR-0058 D3, closes #1887)',
144+
summary: 'sharing-rule `condition` → criteria_json (ADR-0058 D3: compiled from the authored CEL, a faithful lowering rather than a divergent hand-written filter)',
145145
dialect: 'cel', mode: 'compile', state: 'enforced', failPolicy: 'fail-closed',
146146
enforcement: 'plugin-sharing/bootstrap-declared-sharing-rules.ts celToFilter → compileCelToFilter; matched by sharing-rule-service findMatchingRecords',
147147
covers: ['security/sharing.zod.ts:CriteriaSharingRuleSchema.condition'],
@@ -290,7 +290,7 @@ export const EXPRESSION_SURFACE: ExprSurface[] = [
290290
// from the schema.
291291
dialect: 'settings-visibility', mode: 'interpret', state: 'enforced', failPolicy: 'fail-closed',
292292
enforcement:
293-
'service-settings `evaluateVisibility` (visibility-eval.ts), called from `SettingsService.validatePatch` — a closed grammar: single root `data`, one-level member access, `|| && !`, `=== !== == != >= <= > <`, parens, and string/number/bool/null literals, optionally `${…}`-wrapped, as a bare string or a `{dialect, source}` envelope. Fail-closed since #7310: a predicate outside the grammar REFUSES the save (SettingsValidationError, HTTP 400) instead of skipping the specifier — `visible` gates every other check on the key (`required`, `options`, `pattern`, `valueDomain`, the value window), so skipping it switched all of them off at once. The console evaluates the same string client-side through `new Function(...)`. Since #7327 the spec DECLARES that same grammar (`SettingsVisibilityInputSchema`), so it is refused at publish/parse too',
293+
'service-settings `evaluateVisibility` (visibility-eval.ts), called from `SettingsService.validatePatch` — a closed grammar: single root `data`, one-level member access, `|| && !`, `=== !== == != >= <= > <`, parens, and string/number/bool/null literals, optionally `${…}`-wrapped, as a bare string or a `{dialect, source}` envelope. Fail-closed: a predicate outside the grammar REFUSES the save (SettingsValidationError, HTTP 400) instead of skipping the specifier — `visible` gates every other check on the key (`required`, `options`, `pattern`, `valueDomain`, the value window), so skipping it switched all of them off at once. The console evaluates the same string client-side through `new Function(...)`. The spec DECLARES that same grammar (`SettingsVisibilityInputSchema`) rather than CEL, so it is refused at publish/parse too',
294294
covers: ['system/settings-manifest.zod.ts:SpecifierSchema.visible', 'system/settings-manifest.zod.ts:SettingsManifestSchema.visible'],
295295
// Proof is the producer/consumer pin rather than a runtime fixture: the
296296
// failure mode this surface actually has is the two sides disagreeing about
@@ -300,7 +300,7 @@ export const EXPRESSION_SURFACE: ExprSurface[] = [
300300
},
301301
{
302302
id: 'cel-action-param-option-visible',
303-
summary: "action param option-list per-option gating (params[].options[].visibleWhen, #5016)",
303+
summary: "action param option-list per-option gating (params[].options[].visibleWhen, the same per-option key a field's option list declares)",
304304
// Same key, same evaluator and same binding environment as the per-option
305305
// `visibleWhen` on a FIELD's option list — which is why it is `cel`,
306306
// `interpret` and `fail-soft-log` like `cel-field-rule` rather than
@@ -316,7 +316,7 @@ export const EXPRESSION_SURFACE: ExprSurface[] = [
316316
},
317317
{
318318
id: 'cel-bulk-action-visible',
319-
summary: "selection-bar bulk action per-record eligibility (bulkActionDefs[].visible, objectui#3067)",
319+
summary: "selection-bar bulk action per-record eligibility (bulkActionDefs[].visible)",
320320
dialect: 'cel', mode: 'interpret', state: 'enforced', failPolicy: 'fail-closed',
321321
enforcement: 'console (objectui) partitionBulkRows (plugin-grid/bulkEligibility.ts) → evalRowPredicate → @objectstack/formula celEngine (interpret), evaluated ONCE PER SELECTED RECORD with that record bound: the button is offered when at least one selected record passes, and the run covers only those — the rest are reported as skipped in the dialog. Faults hide the record (fallback:false, warnOnError) rather than acting on one the predicate was written to exclude; UI gating only, write enforcement stays with permissions/hooks',
322322
// Reached the ledger in #4457, not #3067: the key existed and was evaluated
@@ -340,14 +340,14 @@ export const EXPRESSION_SURFACE: ExprSurface[] = [
340340
},
341341
{
342342
id: 'cel-row-crud-visible',
343-
summary: 'built-in row Edit/Delete per-record visibility (RowCrudActionOverride.visibleWhen, objectui#2614)',
343+
summary: 'built-in row Edit/Delete per-record visibility (RowCrudActionOverride.visibleWhen)',
344344
dialect: 'cel', mode: 'interpret', state: 'enforced', failPolicy: 'fail-closed',
345345
enforcement: 'console (objectui) RowActionMenu BuiltinRowActionItem + data-table DataTableBuiltinRowActionItem → useRowPredicate → @objectstack/formula celEngine (interpret); FALSE/fault hides the row button (UI gating only — write enforcement stays with permissions/hooks)',
346346
covers: ['data/object.zod.ts:RowCrudActionOverrideSchema.visibleWhen'],
347347
},
348348
{
349349
id: 'cel-row-crud-disabled',
350-
summary: 'built-in row Edit/Delete per-record disabling (userActions.{edit,delete}.disabledWhen, objectui#2614)',
350+
summary: 'built-in row Edit/Delete per-record disabling (userActions.{edit,delete}.disabledWhen)',
351351
dialect: 'cel', mode: 'interpret', state: 'enforced', failPolicy: 'fail-soft-log',
352352
enforcement: 'console (objectui) RowActionMenu BuiltinRowActionItem + data-table DataTableBuiltinRowActionItem → useRowPredicate → @objectstack/formula celEngine (interpret); TRUE renders the button disabled, a fault leaves it enabled (server hooks are the real boundary)',
353353
covers: ['data/object.zod.ts:RowCrudActionOverrideSchema.disabledWhen'],

‎packages/qa/dogfood/test/fixtures/attachments-fixture.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ export const attachmentsFixtureStack = defineStack({
137137
type: 'app',
138138
name: 'Attachments Permission Matrix Fixture',
139139
description:
140-
'Three-object app exercising the #2755 attachment permission matrix: parent visibility, uploader/editor delete, enable.files gate.',
140+
'Three-object app exercising the non-admin attachment permission matrix: parent visibility, uploader/editor delete, enable.files gate.',
141141
},
142142
objects: [AttCase, AttSecret, AttNoFiles, AttReadonly],
143143
});

‎packages/qa/dogfood/test/fixtures/comments-fixture.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export const commentsFixtureStack = defineStack({
136136
type: 'app',
137137
name: 'Comments Permission Matrix Fixture',
138138
description:
139-
'Four-object app exercising the #4630 comment permission matrix: thread visibility, author/parent-editor writes, the enable.feeds gate.',
139+
'Four-object app exercising the record-level comment permission matrix: thread visibility, author/parent-editor writes, the enable.feeds gate.',
140140
},
141141
objects: [CmtOpen, CmtPrivate, CmtReadonly, CmtNoFeeds],
142142
});

‎packages/qa/dogfood/test/fixtures/email-template-materialization-fixture.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export const emailTemplateFixtureStack = defineStack({
5656
version: '0.0.0',
5757
type: 'app',
5858
name: 'Email Template Materialization Fixture',
59-
description: 'Single-object app that authors one email template to prove stack `emailTemplates:` entries materialize into the sys_email_template rows sendTemplate reads (ADR-0054, #4509).',
59+
description: 'Single-object app that authors one email template to prove stack `emailTemplates:` entries materialize into the sys_email_template rows sendTemplate reads (ADR-0054).',
6060
},
6161
objects: [EtNote],
6262
emailTemplates: [etPasswordReset],

‎packages/qa/dogfood/test/fixtures/flow-durable-suspend-fixture.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ export const durableSuspendStack = defineStack({
9898
version: '0.0.0',
9999
type: 'app',
100100
name: 'Durable Suspend Fixture',
101-
description: 'Single-object app whose screen flow suspends, persists, and resumes after a cold boot (#4470).',
101+
description: 'Single-object app whose screen flow suspends, persists, and resumes after a cold boot.',
102102
},
103103
objects: [SuspendNote],
104104
flows: [flowDurableSuspend],

‎packages/qa/dogfood/test/fixtures/flow-function-effect-fixture.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export const flowFunctionEffectStack = defineStack({
6666
version: '0.0.0',
6767
type: 'app',
6868
name: 'Flow Function Effect Fixture',
69-
description: "Proves a flow function's declared effect reaches the run summary (#4396).",
69+
description: "Proves a flow function's declared effect reaches the run summary.",
7070
},
7171
objects: [FxInvoice],
7272
flows: [sweepFlow('fxn_pure_sweep', 'scoreInvoices'), sweepFlow('fxn_writing_sweep', 'syncBilling')],

0 commit comments

Comments
 (0)