Skip to content

Commit 967d735

Browse files
committed
docs(service-analytics): re-anchor the dead tracker citations to the commits that decided them
Every comment or docblock site under packages/services/service-analytics/src that cited a tracker number answering 404 now cites the commit in this repository's history that decided what the line describes (ruling C+D, form C): 76 sites on 76 lines in 22 files, 14 numbers, 13 anchor commits. Two further lines are reflowed; every file keeps its line count. Comments only: no code token moves, and the 8 dead numbers inside test titles and test strings are left as they are. Claude-Session: https://claude.ai/code/session_01XY5uCwTjZj7884yYtyur4H Co-authored-by: Claude <noreply@anthropic.com>
1 parent cbaf04c commit 967d735

22 files changed

Lines changed: 78 additions & 78 deletions

‎packages/services/service-analytics/src/__tests__/admission-bridge-resolution.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ async function bootAnalytics(security?: () => unknown) {
117117
* A working security service's ROW-SCOPE half, carried by every double below
118118
* that is meant to represent one.
119119
*
120-
* `getReadFilter` is a REQUIRED member of `ISecurityService`, and since #16918
120+
* `getReadFilter` is a REQUIRED member of `ISecurityService`, and since commit 5d12b16e7
121121
* the ROW-SCOPE bridge in the same `plugin.ts` refuses the query when the
122122
* registered service does not expose it — the sibling three-way of the one
123123
* this file measures. `undefined` is that method's documented answer for "no

‎packages/services/service-analytics/src/__tests__/aggregate-bridge-function-vocabulary.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* `EngineAggregateOptions.aggregations[].function`) is the SIX-value
1111
* `AggregationFunction`. Nothing compiled the two against each other, so the
1212
* bridge forwarded whatever string reached it — and the engine then failed in
13-
* the two ways #12209 documents: `driver-sql` blaming a `function` key the
13+
* the two ways commit 017130a09 documents: `driver-sql` blaming a `function` key the
1414
* author never wrote, or the in-memory evaluator answering `null` for every
1515
* bucket under the author's own measure name (the #4157 class).
1616
*
@@ -21,7 +21,7 @@
2121
*
2222
* The reachable producer of a non-aggregate method — a custom-SQL measure
2323
* (`AggregationMetricType` `number`/`string`/`boolean`) — is refused earlier
24-
* and caller-facing by `ObjectQLStrategy.resolveMeasureAggregation` (#12209,
24+
* and caller-facing by `ObjectQLStrategy.resolveMeasureAggregation` (commit 017130a09,
2525
* `INVALID_FIELD` / 400). Anything still arriving at the bridge is host drift
2626
* (an unparsed cube object, our own drift), which `dataset-refusal.ts`'s module
2727
* header assigns to the bare-`Error`, undeclared-500 tier — the same tier it

‎packages/services/service-analytics/src/__tests__/aggregate-datetime-measure-refusal.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@
6262
* `min` × `text` — which this file pinned as compiling, deliberately and
6363
* conditionally on a ruling landing first — is now refused beside `sum` × `text`.
6464
*
65-
* The BOOLEAN rows were never a collision in any scope: #16685 was ruled A and
66-
* #16750 added `boolean` / `toggle` to the `sum` / `avg` / `min` / `max` rows
65+
* The BOOLEAN rows were never a collision in any scope: commit ed7243d52
66+
* (#16750) added `boolean` / `toggle` to the `sum` / `avg` / `min` / `max` rows
6767
* (maintainer ruling #11152 — booleans aggregate as numbers on every backend),
6868
* so the table ACCEPTS them and nothing refuses them anywhere. The non-temporal
6969
* population is pinned in `aggregate-nontemporal-measure-refusal.test.ts`; this

‎packages/services/service-analytics/src/__tests__/aggregate-nontemporal-measure-refusal.test.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* ## What this card found, driven before anything was written
99
*
10-
* #16778 landed the compile leg of the director ruling (decision batch #59:
10+
* Commit 357f4992b landed the compile leg of the director ruling (decision batch #59:
1111
* one compatibility table in `@objectstack/spec`, two refusal legs) SCOPED to
1212
* temporal source fields. The residual was "every other non-temporal pair the
1313
* table refuses", and the dispatch required it be driven rather than read,
@@ -23,7 +23,7 @@
2323
*
2424
* The control is what makes the 107 a reading of the tree rather than of a
2525
* blind harness: the SAME service, door and `sourceFieldMeta` hook sees the
26-
* three pairs #16778 enforces refused, with no statement emitted.
26+
* three pairs commit 357f4992b enforces refused, with no statement emitted.
2727
*
2828
* ## Why the scope is an AGGREGATE class and not "the rest of the table"
2929
*
@@ -84,7 +84,7 @@ const FIELD_TYPES: Record<string, string> = {
8484
embedding: 'vector',
8585
// refused for `sum` only — a rate does not add (`isIncoherentAggregate`)
8686
win_rate: 'percent',
87-
// the temporal class #16778 already enforced, kept as the continuity control
87+
// the temporal class commit 357f4992b already enforced, kept as the continuity control
8888
submitted_at: 'datetime',
8989
// accepted controls
9090
cycle_days: 'number',
@@ -176,7 +176,7 @@ describe('#16099 — the pairs this leg refuses are the TABLE\'s, not this packa
176176
}
177177
}
178178
expect(refusedByTable).toBe(155);
179-
expect(temporal).toBe(6); // #16778's — `sum`/`avg` over the temporal class
179+
expect(temporal).toBe(6); // commit 357f4992b's — `sum`/`avg` over the temporal class
180180
expect(deriving).toBe(75); // #16099's — `sum`/`avg` over everything else
181181
expect(selecting).toBe(74); // #17560's — `min`/`max`, 42 string + 32 non-string
182182
expect(temporal + deriving + selecting).toBe(refusedByTable);

‎packages/services/service-analytics/src/__tests__/analytics-date-range-conformance.test.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ async function lowerViaPreview(range: string | readonly string[]): Promise<Lower
135135

136136
/**
137137
* [#17973] The dataset executor's `compareTo` window — the FOURTH face in this
138-
* package, and the one #17015 never reached. It kept the degenerate
138+
* package, and the one commit 0da638cd9 never reached. It kept the degenerate
139139
* `[range, range]` fallback every sibling shed, so a DECLARED preset plus
140140
* `compareTo` was refused outright. MEASURED on `b3b43b6ea`, before the fix:
141141
*
@@ -391,7 +391,7 @@ describe('#17973 — the dataset executor APPLIES the window it reports', () =>
391391
it('⛔ CONTROL — the CALLER\'s explicit window is still shifted bound for bound', async () => {
392392
// ⭐ Without this, every assertion above is satisfied by a face that
393393
// rewrote the array arm too. The answer is byte-identical to the one
394-
// #17124 pinned before this change.
394+
// commit 86c505286 pinned before this change.
395395
expect(await comparePasses(['2026-01-01', '2026-01-31'], 'previousPeriod')).toEqual([
396396
[['2026-01-01', '2026-01-31']],
397397
[['2025-12-01', '2025-12-31']],

‎packages/services/service-analytics/src/__tests__/crossobject-conjunct-refusal.test.ts‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
* leaves into the same one member view. Both producers are now judged by one
4646
* check, which is why they are pinned in one file.
4747
*
48-
* ## [#11461] The third producer, and the door it left open on BOTH doors
48+
* ## [commit 399ecad58] The third producer, and the door it left open on BOTH doors
4949
*
5050
* #10413 phase 2 added a THIRD route to `engine.aggregate`'s predicate: a
5151
* compiled MEASURE's own `filter`, lowered onto that measure's
@@ -110,14 +110,14 @@
110110
* predicate — the load-bearing half of ⑤, and the pin a
111111
* "refuse every dataset scope" implementation fails
112112
* ⑦ a CROSS-OBJECT per-measure `filter` is REFUSED on both doors, naming the
113-
* measure whose declaration holds the leaf (#11461)
113+
* measure whose declaration holds the leaf (commit 399ecad58)
114114
* ⑧ an ORDINARY per-measure `filter` still reaches the engine CARRYING its
115115
* own `aggregations[].filter`, and a cross-object one on a measure the
116116
* query does NOT ask for changes nothing — the two load-bearing halves of
117117
* ⑦, and the pins a "refuse every measure filter" and a "refuse on the
118118
* dataset's whole `measureFilters` map" implementation each fail
119119
*
120-
* ①–④ are #10759's, re-run unchanged; ⑤–⑥ are #10861's; ⑦–⑧ are #11461's.
120+
* ①–④ are #10759's, re-run unchanged; ⑤–⑥ are #10861's; ⑦–⑧ are commit 399ecad58's.
121121
*/
122122

123123
import { describe, it, expect } from 'vitest';
@@ -131,7 +131,7 @@ const ctxA = { tenantId: 'org_A', userId: 'u_a' } as ExecutionContext;
131131
interface Refusal extends Error { code?: string; status?: number; member?: string; param?: string; cube?: string }
132132
interface AggSpec { field: string; method: string; alias: string; filter?: Record<string, unknown> }
133133
/**
134-
* [#11461] `aggregations` is captured too, not just the whole-call `filter`.
134+
* [commit 399ecad58] `aggregations` is captured too, not just the whole-call `filter`.
135135
* The third producer never lands in the whole-call filter — it lands on ONE
136136
* aggregation's own `filter` — so a harness that only watched `options.filter`
137137
* could not have seen this card's defect at all, and ⑧'s "still carries its
@@ -195,7 +195,7 @@ const MIXED_SCOPED_SALES: Dataset = DatasetSchema.parse({
195195
}) as Dataset;
196196

197197
/**
198-
* [#11461] ONE dataset carrying all three of ⑦/⑧'s directions, so the
198+
* [commit 399ecad58] ONE dataset carrying all three of ⑦/⑧'s directions, so the
199199
* distinctions are structural rather than three fixtures that happen to differ.
200200
*
201201
* `revenue` no filter at all — the neighbour every other measure is
@@ -277,7 +277,7 @@ const DATASET_SCOPE_MESSAGE =
277277
/cannot evaluate the cross-object filter \("account\.region"\) that dataset "[^"]+" declares at its definition level/;
278278

279279
/**
280-
* [#11461] A THIRD distinct message. The two above name where the member came
280+
* [commit 399ecad58] A THIRD distinct message. The two above name where the member came
281281
* from; this one has to name something neither can — WHICH MEASURE's own
282282
* declaration holds the leaf. A dataset can declare two measures filtering the
283283
* same field and mean two different edits, so a rewording that dropped the
@@ -564,7 +564,7 @@ describe('[#10861] a CROSS-OBJECT definition-level filter is refused on BOTH doo
564564
});
565565

566566
// ────────────────────────────────────────────────────────────────────────────
567-
// ⑦ + ⑧ [#11461] the CROSS-OBJECT per-measure filter — the third producer
567+
// ⑦ + ⑧ [commit 399ecad58] the CROSS-OBJECT per-measure filter — the third producer
568568
// ────────────────────────────────────────────────────────────────────────────
569569

570570
/**
@@ -684,7 +684,7 @@ describe('[#11461] a CROSS-OBJECT per-measure filter is refused on BOTH doors',
684684
it('the KNOWN-PRESENT control: a cross-object member in the CALLER’s where keeps its own diagnostic on this fixture too', async () => {
685685
// The counter-check for every "refused" above, on the SAME cube — so the
686686
// refusal ⑦ adds cannot be mistaken for the fixture simply being unable to
687-
// serve anything, and #11461 is shown not to have repainted the refusal
687+
// serve anything, and commit 399ecad58 is shown not to have repainted the refusal
688688
// #10759 restored. Refused before this card and after it, with the OTHER
689689
// message and with `param: 'where'`.
690690
const { execute, generateSql, calls } = await bothDoors('measure_filter_sales', {
@@ -700,7 +700,7 @@ describe('[#11461] a CROSS-OBJECT per-measure filter is refused on BOTH doors',
700700
// The ordering pin. `filterMemberView` inserts measure-filter leaves FIRST
701701
// and `where` last, last write wins — so a member named by the request too
702702
// keeps the provenance the caller can act on directly, and every shape
703-
// refused before #11461 keeps the exact message it had.
703+
// refused before commit 399ecad58 keeps the exact message it had.
704704
const { execute } = await bothDoors('measure_filter_sales', {
705705
dimensions: ['stage'], measures: ['revenue', 'west_revenue'],
706706
where: { 'account.region': 'West' },

‎packages/services/service-analytics/src/__tests__/date-range-array-arm-arity.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.
22

33
/**
4-
* [#17124] Every face in this package that reads `dateRange`'s ARRAY arm gives
4+
* [commit 86c505286] Every face in this package that reads `dateRange`'s ARRAY arm gives
55
* an odd-sized array ONE answer — the ADR-0112 refusal — and gives a
66
* two-element window exactly the answer it gave before.
77
*

‎packages/services/service-analytics/src/__tests__/measure-expression-both-strategies.test.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.
22

33
/**
4-
* #12209 — a custom-SQL measure is refused loudly on the ObjectQL path, and
4+
* Commit 017130a09 — a custom-SQL measure is refused loudly on the ObjectQL path, and
55
* BOTH strategies are pinned from one fixture so neither can hide the other.
66
*
77
* #4157 was fixed on one strategy of two: `NativeSQLStrategy` learned to emit
@@ -42,7 +42,7 @@
4242
*
4343
* ## Dissolution verification, direction predicted BEFORE running
4444
*
45-
* Restoring the accepting behaviour (deleting the #12209 arm in
45+
* Restoring the accepting behaviour (deleting the arm commit 017130a09 added in
4646
* `ObjectQLStrategy.resolveMeasureAggregation`) must turn the ObjectQL-profile
4747
* REFUSAL cases red in the ordinary direction: each asserts the ADR-0112
4848
* envelope (`code`/`status`), the measure's own name in `member` and message,
@@ -163,7 +163,7 @@ async function run(query: unknown, profile: 'objectql' | 'native') {
163163
return { rows, error, sqls, calls };
164164
}
165165

166-
/** The one wire shape every #12209 refusal must have (ADR-0112 / #5716). */
166+
/** The one wire shape every custom-SQL refusal (commit 017130a09) must have (ADR-0112 / #5716). */
167167
function expectCustomSqlRefusal(
168168
r: { error?: Refusal; sqls: string[]; calls: unknown[] },
169169
member: string,

‎packages/services/service-analytics/src/__tests__/objectql-daterange.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ describe('ObjectQLStrategy — timeDimensions[].dateRange (#3650)', () => {
197197
expect(result.rows).toEqual([{ stage: 'lost', revenue: 200 }]);
198198
});
199199

200-
// [#17124] SUCCEEDS 'narrows rather than vanishes on a one-entry dateRange
200+
// [commit 86c505286] SUCCEEDS 'narrows rather than vanishes on a one-entry dateRange
201201
// array', which pinned the point degeneration this card retired. ⛔ Not a
202202
// weakening of #3650: that card's complaint was 「no error, just every row
203203
// ever recorded」, and the old pin chose the narrower of two WRONG answers

‎packages/services/service-analytics/src/__tests__/read-scope-bridge-resolution.test.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* must tell apart — the sibling of `admission-bridge-resolution.test.ts`, one
66
* function up in the same file.
77
*
8-
* The object-level bridge was made an explicit three-way (#16860); this one had
8+
* The object-level bridge was made an explicit three-way (commit 041d9fdc6); this one had
99
* the identical shape and still collapsed it:
1010
*
1111
* ```ts
@@ -24,7 +24,7 @@
2424
* has no row restriction on this object". So a deployment whose security
2525
* service was broken ran its analytics queries with NO row-level policy at
2626
* all, and the only difference from a correctly unrestricted caller was a state
27-
* nothing reported. After #16860 one door of `plugin.ts` failed closed on a
27+
* nothing reported. After commit 041d9fdc6 one door of `plugin.ts` failed closed on a
2828
* throwing resolver and its neighbour failed open — and the neighbour is the
2929
* one carrying row-level policy.
3030
*
@@ -213,7 +213,7 @@ describe('analytics row-scope bridge — resolving the "security" service', () =
213213
// ── The two doors of this file now agree on a broken provider ──────────────
214214

215215
it('refuses a throwing resolver with BOTH auto-bridges live (no door falls open)', async () => {
216-
// With no `admitObjectRead` override the object-level bridge (#16860)
216+
// With no `admitObjectRead` override the object-level bridge (commit 041d9fdc6)
217217
// answers first, with `PERMISSION_DENIED`. Pinned so the file-level
218218
// property — a broken security service serves no analytics rows through
219219
// EITHER door — cannot regress from the other side.

0 commit comments

Comments
 (0)