From a5e553e65b5560122e654a65049205115d0ecdb7 Mon Sep 17 00:00:00 2001 From: Sylvain Duchesne Date: Mon, 21 Sep 2026 11:34:20 +0200 Subject: [PATCH] chore: readUnion a un consommateur declare, et son fake masque la rupture --- .project/concepts/app-contract/_debt.md | 8 ++++++++ .project/concepts/sign-in/_debt.md | 8 ++++++++ .../T01.d-use-shape-query-reads-through-the-sdk.md | 4 ++-- .tasks/todo/T01.f-remove-read-union.md | 6 ++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 .project/concepts/app-contract/_debt.md create mode 100644 .project/concepts/sign-in/_debt.md rename .tasks/{todo => doing}/T01.d-use-shape-query-reads-through-the-sdk.md (99%) diff --git a/.project/concepts/app-contract/_debt.md b/.project/concepts/app-contract/_debt.md new file mode 100644 index 0000000..c7e5e50 --- /dev/null +++ b/.project/concepts/app-contract/_debt.md @@ -0,0 +1,8 @@ +# Doc-debt — app-contract + +> Presence of a block = doc to update. Processed → delete the block; no blocks left → delete this file. +> One block = one "big change": `why` + `files` + `verify` (leaves to review). + +## Raw markers (consolidate into blocks, then delete) +- TOUCHED packages/polyfill/src/surface/use-shape-query.ts @2026-09-21 (session f93872b5-293a-4916-a353-181409a96d42) +- TOUCHED packages/polyfill/src/index.ts @2026-09-21 (session f93872b5-293a-4916-a353-181409a96d42) diff --git a/.project/concepts/sign-in/_debt.md b/.project/concepts/sign-in/_debt.md new file mode 100644 index 0000000..01ef1c0 --- /dev/null +++ b/.project/concepts/sign-in/_debt.md @@ -0,0 +1,8 @@ +# Doc-debt — sign-in + +> Presence of a block = doc to update. Processed → delete the block; no blocks left → delete this file. +> One block = one "big change": `why` + `files` + `verify` (leaves to review). + +## Raw markers (consolidate into blocks, then delete) +- TOUCHED packages/polyfill/src/shared-wallet/bootstrap.ts @2026-09-21 (session f93872b5-293a-4916-a353-181409a96d42) +- TOUCHED packages/polyfill/src/shared-wallet/account-registry.ts @2026-09-21 (session f93872b5-293a-4916-a353-181409a96d42) diff --git a/.tasks/todo/T01.d-use-shape-query-reads-through-the-sdk.md b/.tasks/doing/T01.d-use-shape-query-reads-through-the-sdk.md similarity index 99% rename from .tasks/todo/T01.d-use-shape-query-reads-through-the-sdk.md rename to .tasks/doing/T01.d-use-shape-query-reads-through-the-sdk.md index 5e91eb6..533ad79 100644 --- a/.tasks/todo/T01.d-use-shape-query-reads-through-the-sdk.md +++ b/.tasks/doing/T01.d-use-shape-query-reads-through-the-sdk.md @@ -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 --- diff --git a/.tasks/todo/T01.f-remove-read-union.md b/.tasks/todo/T01.f-remove-read-union.md index 7ac5b2b..152cd84 100644 --- a/.tasks/todo/T01.f-remove-read-union.md +++ b/.tasks/todo/T01.f-remove-read-union.md @@ -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