|
10 | 10 | * |
11 | 11 | * The data routes judge the ADDRESSED object. A read that follows a lookup |
12 | 12 | * reaches an object nobody addressed: the data door's `$expand` served the row |
13 | | - * fields of a target every data route refuses, and the dataset door's label |
14 | | - * passes rendered its display names. Both now ask the target (behaviour-pinned |
15 | | - * in their own packages and on a real stack in `@objectstack/dogfood`). This |
| 13 | + * fields of a target every data route refuses, the dataset door's label |
| 14 | + * passes rendered its display names, and the import door matched cells against |
| 15 | + * it (#22739). Each read classified `decided` below now asks the target |
| 16 | + * (behaviour-pinned in its own package). This |
16 | 17 | * file is the ENUMERATION: it names the census of such reads, holds each |
17 | 18 | * decided one to the decision, and goes red when a new one appears without |
18 | 19 | * being classified here. |
|
36 | 37 | * `origin/main` at eae3368a, those are the analytics relationship hop |
37 | 38 | * (`service-analytics/src/hop-object.ts` — its target comes from the host's |
38 | 39 | * relationship resolver; the analytics door already judges every hop's object |
39 | | - * for `aggregate` over `queryObjects`); the import door's reference resolution |
40 | | - * (`core/src/utils/import-runner.ts` `resolveRef`, whose target |
41 | | - * `import-field-meta.ts` reads off the raw `reference` carrier — measured: a |
42 | | - * cell's display text is matched against an unexposed target and the matched |
43 | | - * id is stored, a miss is reported per row; open, carried by a follow-up of |
44 | | - * #22661); and the reads whose target is a FIXED platform object rather than |
45 | | - * an authored one (a file field's `sys_file` hydration, the `sys_user` display |
46 | | - * names the approvals and audit surfaces resolve). They are named here, not |
47 | | - * held. |
| 40 | + * for `aggregate` over `queryObjects`); and the reads whose target is a FIXED |
| 41 | + * platform object rather than an authored one (a file field's `sys_file` |
| 42 | + * hydration, the `sys_user` display names the approvals and audit surfaces |
| 43 | + * resolve). They are named here, not held. |
48 | 44 | * |
49 | 45 | * The scan surface and its prefilter follow `row-serving-door-exposure.pin.test.ts` |
50 | 46 | * in this directory: git's authored-file list, never a directory crawl, and `.ts` |
@@ -79,7 +75,7 @@ type Classification = |
79 | 75 | /** The read, in words. */ |
80 | 76 | read: string; |
81 | 77 | /** The operation the target is judged as. */ |
82 | | - operation: 'get'; |
| 78 | + operation: 'get' | 'list'; |
83 | 79 | /** The function that asks the decision, and the file it lives in. */ |
84 | 80 | decision: { file: string; fn: string }; |
85 | 81 | /** Where the read takes its answer from that function: a call site that must exist. */ |
@@ -132,6 +128,14 @@ const CALLERS: Record<string, Classification> = { |
132 | 128 | wiring: { file: 'packages/services/service-analytics/src/analytics-service.ts', call: 'servesLabelTarget(' }, |
133 | 129 | pin: 'packages/services/service-analytics/src/__tests__/dimension-label-exposure.test.ts', |
134 | 130 | }, |
| 131 | + 'packages/core/src/utils/import-field-meta.ts': { |
| 132 | + kind: 'decided', |
| 133 | + read: "the import door's reference resolution (`resolveRef` matches a cell against the target; the export and template doors read the same map, the export's expansion decided in protocol.ts)", |
| 134 | + operation: 'list', |
| 135 | + decision: { file: 'packages/core/src/utils/import-runner.ts', fn: 'servesReferenceTarget' }, |
| 136 | + wiring: { file: 'packages/core/src/utils/import-runner.ts', call: 'servesReferenceTarget(p, referenceObject' }, |
| 137 | + pin: 'packages/core/src/utils/import-runner-reference-exposure.test.ts', |
| 138 | + }, |
135 | 139 | 'packages/objectql/src/relation-filter-lowering.ts': { |
136 | 140 | kind: 'open', |
137 | 141 | read: "the data door's nested-relation filter condition (`ObjectQL.lowerRelationConditions` reads the related object to lower it)", |
@@ -288,6 +292,7 @@ describe('[#22661] every read that reaches a second object asks that object its |
288 | 292 | 'servesExpansionTarget', |
289 | 293 | 'servesLabelTarget', |
290 | 294 | 'servesPayloadDisplayTarget', |
| 295 | + 'servesReferenceTarget', |
291 | 296 | 'servesSummaryTitleTarget', |
292 | 297 | ]); |
293 | 298 |
|
|
0 commit comments