docs: accept metadata-generated module SDK design - #412
Open
nikstern wants to merge 7 commits into
Open
Conversation
nikstern
marked this pull request as ready for review
July 24, 2026 20:03
This was referenced Sep 10, 2026
Collaborator
This was referenced Sep 10, 2026
Collaborator
Final review evidence under the approved arbitration decisionOriginal contributor commit: The shared workflow/validator correction is being delivered in arni-labs/stack#19 and #461. No merge is claimed here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Accept ADR-0176 as a design, with coherent commit tokens, bounded response semantics, scalar JSON encoding, root generation-input hashing, and explicit File entity identity. Documentation only; no SDK implementation or migration work.
Merge authorization
Final documentation corrections are published. On 2026-09-10 the user explicitly authorized merging documentation-only PRs despite unrelated workspace-test blockers. The pre-push hook was skipped for this documentation-only publication after formatting, clippy, and readability checks passed; full workspace tests failed on Postgres container startup (
WaitContainer(StartupTimeout)). No runtime changes or infrastructure fixes were added. Temper proof ingestion remains denied withno matching permit policy; no successful proof registration is claimed.Verification
Three full panel rounds and arbitration are preserved. User authorized the prepared terminal patch and targeted verification on 2026-09-10. Independent targeted verification matched the approved patch byte-for-byte and passed with no findings; historical panels retain their original reviewed commits.
Preserved verification evidence. This report distinguishes targeted checks from pending full-workspace completion.
Decisions & Tradeoffs
Decision
Keep the existing host path documented as the current implementation until migration completes.
Came up because the PR marked ADR-0099 Superseded while ADR-0157 remained Proposed.
Options: retain contradictory statuses; declare the runtime migrated; distinguish accepted replacement design from current implementation.
Chose explicit design and implementation status because approval does not implement the SDK.
Where: PR #412, docs/adrs/0099-local-wasm-tdata-host-path.md and docs/adrs/0176-metadata-generated-typed-module-data-sdk.md (originally numbered 0157).
Full-panel corrections
Decision: carry complete read tokens over the ABI, reserve acknowledgement capacity before dispatch, state the existing result-omission rule consistently, and renumber this design ADR-0176.
Came up because round one identified contradictions between the exact ABI and its guarantees, and ADR-0157 collisions on current main.
Options: weaken entity-token validation and acknowledgement guarantees; leave conflicting prose; align the concrete request, capacity reservation, and result promises.
Chose to align the concrete contract because the existing intended guarantees require those fields and reservations. No runtime implementation is added. ADR-0176 was verified unused on main aa22bf1. Interrupted execution is explicitly an unknown outcome, not a failed-write acknowledgement.
Where: PR #412, docs/adrs/0176-metadata-generated-typed-module-data-sdk.md, Sub-Decisions 4 and 8; ADR-0099 supersession link.
ABI wording completion
Decision: Use the existing pre-dispatch capacity error for response-byte exhaustion and state the scalar JSON payload shape explicitly.
Came up because round two found an undefined return for failed byte reservation and a mismatch between the named tagging mode and wire examples.
Options: add another ABI mechanism; leave the cases undefined; clarify the existing error code and object shape.
Chose the existing
-3capacity error and a namedvaluefield for scalar payloads because these complete the already-proposed contract without new capabilities or runtime code.Where: PR #412, ADR-0176 Sub-Decision 4.
Scope constraint: This PR accepts a design. Review rounds may correct contradictions in that design; they do not authorize SDK implementation, migration tooling, broader architecture changes, or unrelated improvements.
Human-authorized terminal pass
Decision: Clarify root generation-input hashing and File-operation identity, then end the full-panel loop with targeted verification.
Came up because arbitration after three rounds identified these remaining contract inconsistencies without a need for new capabilities.
Options: continue the full-panel loop; leave the ambiguities; apply the prepared documentation patch with targeted verification.
Chose the prepared patch because the user authorized it on 2026-09-10 and reiterated no scope creep. Root compilation inputs exclude their generated outputs; File open calls identify the entity type. No runtime implementation or architecture expansion is included. Original panel records retain their reviewed commits.
Where: PR #412, ADR-0176 Sub-Decisions 1 and 4; Temper Ask en-01a08869-9373-7063-a217-271bb8a34531.
Original contributor work retained. Merge preparation: GPT-6 in Codex; terminal verification: independent Codex reviewer.
Greptile Summary
Accepts ADR-0176 as the target design for a metadata-generated typed module data SDK while explicitly retaining ADR-0099 as the current implementation pending migration.
Confidence Score: 5/5
The documentation-only PR appears safe to merge.
No blocking failures remain.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart LR M[Locked application metadata] --> G[Generate typed module SDK and binding] G --> W[Compile and package WASM artifact] W --> V[Publication and activation verification] V --> H[Versioned module data host ABI] H --> S[Shared governed application data service] O[External OData adapter] --> S S --> A[Authorization, dispatch, persistence, projection, and audit] H --> F[Native File stream handles]Reviews (5): Last reviewed commit: "docs: finalize SDK digest and File ident..." | Re-trigger Greptile