Files
ng-eventually/.project/concepts/app-contract/_debt.md
T
Sylvain Duchesne 737729c9ce refactor: le paquet s'appelle polyfill, « SDK » désigne celui de NextGraph
Le nom @ng-eventually/sdk entrait en collision avec le SDK de NextGraph, dont
ce paquet est justement un polyfill. Impossible d'écrire « le SDK » sans lever
l'ambiguïté à chaque phrase — et le contrat publié, lu par une application,
était le pire endroit pour laisser traîner ça.

packages/sdk → packages/polyfill, @ng-eventually/sdk → @ng-eventually/polyfill,
contract_sdk-surface → contract_polyfill-surface, e2e/sdk-entry.ts →
e2e/polyfill-entry.ts, docs/sdk-reference.md → docs/polyfill-reference.md.

Les occurrences de « SDK » qui désignent celui de NextGraph restent intactes,
y compris les chemins dans nextgraph-rs (sdk/js/orm, sdk/js/web). Le tri s'est
fait occurrence par occurrence, pas par substitution.

Le contrat énonce désormais son identité en une phrase : « This package is a
polyfill of NextGraph's SDK. »
2026-08-10 17:14:25 +02:00

1.6 KiB

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).

The broker redirect is stated as the application's obligation, and it is not

whycontract_polyfill-surface.md lists, under ### Deployment requirements, that the application must "be opened through the broker redirect". No such obligation belongs to the caller: the redirect is a step of the shared-wallet sign-in, which lives in this package (access-gate.ts, "the whole shared-wallet sign-in, moved out of consumer applications"). An application carrying it would have to know there is a broker, an iframe, and a redirect — three things the target SDK will never show it, and three things it would have to delete at migration.

The clause was written from an absent implementation: nothing in src/ navigates to the redirect today, and that gap was recorded as a division of roles. rule_no-divergence-from-nextgraph forbids exactly that inference.

files — the clause is in the contract; the fix is in the package: ensureIdentity() triggers the redirect itself once the identity is settled and ?ng-id= is written into the URL, and does nothing when already inside the iframe.

verifycontract_polyfill-surface.md (### Deployment requirements keeps only the wallet file/password and the ensureIdentity() await), knowledge_what-an-app-deletes-at-migration.md (the redirect is one more thing that evaporates), _overview.md if the surface list changes.