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. »
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
why — contract_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.
verify — contract_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.