chore: readUnion a un consommateur declare, et son fake masque la rupture

This commit is contained in:
Sylvain Duchesne
2026-09-21 11:34:20 +02:00
parent d440639616
commit a5e553e65b
4 changed files with 24 additions and 2 deletions
@@ -4,8 +4,8 @@ title: useShapeQuery reads through the SDK's shape query
parent: T01
depends_on: [T01.c]
created: 2026-09-16
claimed_by: null
claimed_at: null
claimed_by: T01.d-worker
claimed_at: 2026-09-21
blocked: false
---
+6
View File
@@ -32,6 +32,12 @@ Remove `readUnion` — and `UnionSubject` with it, if no published signature sti
**Resolved since planning (2026-09-16).** Do NOT read `ng-helpers` — not its code, not its tests. The isolation discipline says a counterpart is reached through its engagement and its usage declaration only. The planner's finding (that no contract leaf cites `readUnion`) was correct but obtained by a forbidden method. If this task needs to know who depends on `readUnion`, the answer belongs in a `usage_` declaration; `ng-helpers` has never authored one, and producing that is the fix, not a workaround by reading.
**Resolved since planning (2026-09-21) - `readUnion` HAS a declared consumer.** `ng-helpers` published its usage declaration (`polyfill-surface--ng-helpers`) and it says YES: `e2e/indexing-app.ts` calls `readUnion([doc])` twice, and `src/index.ts` REPUBLISHES it to ng-helpers' own consumers as the documented way to read an index. No ORM is wired there (`useShape: () => undefined`), so `useShapeQuery` is unreachable for them; their only fallback is an anchored `docs.sparqlQuery`. They declared this as a Need at full strength.
So the removal is not free. Before removing, decide with the owner what a consumer with no ORM reads with. Their declaration is the channel: read it at `ng-helpers`' repo through its published `usage_` leaf, never by reading their code.
**Also relevant, and worse than it looks.** That declaration reports `ng-helpers` still calling `createEntityDoc("public")` and `listMyEntityDocs("public")`, both invalid since `1.0.0-dev.5`, while its own test suite stays green because it runs against a fake that still models the superseded surface. A consumer can therefore be broken against us with nothing red on either side. Do not treat their green suite as evidence.
## Progress
## Result