Repository navigation
feat(architecture): define language adapter mappings - #509
yshyn-iohk wants to merge 8 commits into
Conversation
Signed-off-by: Yurii Shynbuiev <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]> # Conflicts: # scripts/check-factory.sh # scripts/tests/factory-contract.sh
Signed-off-by: Yurii Shynbuiev <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
|
Post-remediation verification found additional reproducible contract gaps, so this PR is intentionally returned to draft and is not merge-ready. Blocking findings:
The same review also identified fixture extensibility and evidence-window gaps. Because the factory permits one automatic remediation round, these will not be patched silently in this PR. #510 captures one cohesive follow-up contract, including vector-catalog resolution now that #508 is merged. Exact reviewed head: |
|
Follow-up #510 now has a frozen, validated planning contract and pre-implementation receipt on This PR remains draft and blocked by the six verification gaps documented above. The intended path is a clean replacement PR to Planning evidence: #510 (comment) |
|
Superseded by replacement PR #511. The replacement carries the complete mapping baseline plus the independently reviewed #510 corrections, has green exact-head fast/policy/DCO/file-hygiene checks, and its final independent verification reported no blocking finding. This draft remains intentionally unmerged so the verified containment, identity, direction, loss, version, catalog, type, uniqueness, and lifecycle corrections cannot be bypassed. |
## Summary - establish the canonical language-adapter registry and deterministic human rendering from the reviewed #509 baseline; - separate Cargo package, exact Rust API path, and stable public error identity; - reject traversal, symlink components, outside-root, non-regular, oversized, malformed, ambiguous, or weakened canonical-bound evidence; - enforce mapping/field direction compatibility and explicit structured losses; - restrict schema-v1 language compatibility to the pinned patch interval; - resolve mapping vectors exactly once against the canonical cross-language catalog while allowing shared evidence; and - make mutation fixtures discover every declared bound source and prove an additive fifth-language mapping. This is the clean replacement for draft #509. It changes no Rust runtime API, generated binding, language SDK, consumer repository, release, or publication behavior. ## Issue and decision record - Issue: #510 - Parent: #505 - ADR: ADR 0170 - OpenSpec change: archived as `2026-09-30-close-language-adapter-verification-gaps` - Base SHA: `644993c859b87e2da16612fcdf7cf1868cfe5981` ## Local review - Local review: completed; independent implementation review against `c6f52020abe4be9504d46dbcbaf218c7f631706f` found no blocking findings - Final exact-head delta: test assertion strengthening and OpenSpec archival only; locally reviewed against `224c1d4a3416a755f783a9f7a822131a565cfbb3` - Findings resolved: all six post-remediation #509 findings plus the three subsequent independent-review rounds - Deferred provenance hardening: #512 (non-blocking for metadata closure; required before adapter generation) ## Constraints and limitations - Constraint impact: material - Affected constraint IDs: SDK-ARCH-001, SDK-ARCH-002, SDK-SEC-003, SDK-DELIVERY-001, SDK-LIM-005, SDK-LIM-006 - Limitations: metadata and verification only; no adapter is generated or executed by this change - Decision authority: issue #510 and the accepted preimplementation receipt ## Evidence - focused validator: 4 canonical mappings passed - mutation suite: 2 positive and 90 negative cases passed - factory after archival: 104 passed, 0 failed - local Nix: all 38 compatible `aarch64-darwin` checks passed - `git diff --check`: passed - exact-diff review: no unresolved blocker - signed commits and DCO trailers: verified The OpenSpec change is archived and synchronized into the canonical specification. Exact-head hosted CI is the remaining merge gate. Closes #510 Closes #505 Supersedes #509 --------- Signed-off-by: Yurii Shynbuiev <[email protected]>
Pull request
Outcome
Defines a canonical, versioned Rust-to-language compatibility contract for the first SDK-TS DID adoption slice. The registry records four DID/DID URL value and error mappings while keeping
identus-didvalues and stable error codes authoritative.Issue and decision record
Factory contract
2026-09-30-establish-language-adapter-mappings826d6e17a36a224f7156c015ce7c9d46bad20079developfast; slow remains production-promotion evidenceScope
No TypeScript adapter, binding, consumer repository, Rust public API, crate dependency, target-support claim, release, or protocol behavior changes.
Local review
origin/develop...HEADdiff./reviewagainst PR feat(architecture): define language adapter mappings #509; six validator-completeness findings reproduced and resolved in one remediation round.Research and provenance
4bf86ebf69d5e96616a148e4c973f831f95fa38e, release line 8.1.4, Apache-2.0.edf03abcc963d37703daa61192940394bdc553ca.Map, and a fragment string cannot preserve raw query order/duplicates or absent-versus-empty query and fragment state.InvalidDIDString; the mapping preserves distinct Rust codesdid.invalid_didanddid.invalid_did_urlwith caller-input redaction.Constraints and limitations
developPR.Review and decomposition
Fresh-diff architecture, security, provenance, compatibility, and maintenance review completed with no unresolved blocker. The diff exceeds the generic 12-file/1,000-line attention threshold because the OpenSpec planning packet, canonical TOML registry, deterministic human projection, validator, mutation suite, and archive are one indivisible evidence contract. There is no production runtime code.
The initial local review fixed mutation/render evidence isolation and generated-Markdown whitespace. The independent discovery review then reproduced six validator-completeness gaps. One bounded remediation now parses and checks language-version windows, resolves adapter byte ceilings to public Rust constants, returns diagnostics for malformed nested values, permits additive conforming records beyond the required seed, renders every governed field, and removes a redundant error check. Mutation tests preserve each counterexample.
Validation
All applicable aarch64-darwin checks passed. The local flake reports x86_64-linux as incompatible on this host; hosted
fastprovides the required Linux integration evidence.Checklist
Closes #505