From 2aac703784235ad42da26d416220b56256bb737b Mon Sep 17 00:00:00 2001 From: Sylvain Duchesne Date: Mon, 21 Sep 2026 12:17:15 +0200 Subject: [PATCH] chore: la suppression de readUnion est bloquee par un manque de notre cote --- .tasks/todo/T01.f-remove-read-union.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.tasks/todo/T01.f-remove-read-union.md b/.tasks/todo/T01.f-remove-read-union.md index 152cd84..7488437 100644 --- a/.tasks/todo/T01.f-remove-read-union.md +++ b/.tasks/todo/T01.f-remove-read-union.md @@ -38,6 +38,12 @@ So the removal is not free. Before removing, decide with the owner what a consum **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. +**Update (2026-09-21) - wiring the ORM does NOT unblock the removal, and the reason is ours.** `ng-helpers` wired the ORM as the contract prescribes and re-measured. Its verdict, recorded in its published usage declaration: neither shape read fetches a PUBLIC STORE's key, so a stranger reading a public index **from its reference alone** - the central case for an index - is served by no shape query at all. `readUnion` is the only thing that serves it today. + +So the removal is blocked by a capability gap on OUR side, not by a consumer's reluctance. Before removing, either that gap closes or the removal does not happen. Read their declaration for the three secondary costs they list; do not read their code. + +Their e2e also went from a measured `1 passed / 29 failed` (they were already broken against us, with both suites green) to `28 passed / 2 failed`, the two remaining being a provider defect: `useShapeQuery` never starts because `orm_start_graph is not a function`, swallowed, `isPending` for ever - measured on three consecutive runs, with the SDK's `ng` answering that member and `initNg` discarding its first argument. + ## Progress ## Result