You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bring IDApTIK's external interface boundary into estate policy:
ABI contracts and proofs are Idris2.
FFI implementation/adaptation is Zig.
Public APIs conform to the canonical Zig unified Hexadeca API.
Any eligible BEAM native work uses SNIF rather than an application-owned NIF.
This issue is separate from #102, which tracks the priority tests and benchmarks derived from Proven-Tests doctrine.
Verified current state (2026-08-29)
Observation horizon: the complete tracked working tree excluding target/ and the vendored Burble source under vendor/.
There are zero Idris2 source/package files in IDApTIK.
There are zero Zig source files in IDApTIK.
crates/idaptik-ffi implements the exported C ABI directly in Rust and generates include/idaptik.h with cbindgen.
Its Rust tests provide valuable in-process-vs-ABI parity for the Ghost Lobby run and snapshot, but this is not an Idris proof or Zig adapter conformance test.
README, ADR-0001, META/STATE/ECOSYSTEM metadata, and Rust module documentation describe Zig and Idris2 as if implemented; those are currently design intent, not repository reality.
The project assurance profile already records DIRECT_FFI_NO_HEXADECA and UNVERIFIED_RUST; that warning is correct.
Required implementation
Idris2 ABI
Model every exported handle/function in crates/idaptik-ffi/include/idaptik.h.
Prove ownership/lifetime transitions: allocated handle is freed once; freed/null handles cannot be treated as live.
Prove string ownership and idap_string_free pairing.
Model JSON success/error shape distinction and valid UTF-8/NUL constraints.
Model deterministic one-tick transition and snapshot format/version invariants.
Add a package build and CI gate; scan for postulate, believe_me, assert_total, and partial with reviewed exceptions only.
Zig FFI/API adapter
Add the actual Zig adapter over the core boundary; declarations and tests must correspond one-for-one with the Idris model.
Add clean/firing conformance fixtures comparing Rust in-process truth, the C export, the Zig adapter, and Idris-derived vectors.
Generate or validate headers through an authoritative pipeline; fail on drift.
Keep unsafe pointer ownership in the smallest auditable boundary and fuzz null, invalid UTF-8, malformed JSON, double-free prevention strategy, panic containment, and snapshot round trips.
Hexadeca conformance blocker
A complete hyperpolymath repository-name enumeration (limit 1000) and bounded local searches found conflicting historical names but did not locate a canonical Zig unified Hexadeca API repository/specification. Conformance cannot honestly be implemented or asserted until that authority is located or published.
Locate/publish the canonical authority, pin its version/digest, then add adapter conformance tests.
Do not substitute an invented local approximation and call it canonical.
Documentation and metadata gate
Until implementation lands, change all current-state claims to explicit design intent / gap language.
Once implemented, derive machine-readable status from passing gates so it cannot claim ffi-language=zig and abi-model-language=idris2 merely from policy intent.
Definition of done
The Idris2 package compiles without unreviewed proof escapes; every external ABI operation is represented; the executable Zig adapter agrees with Rust truth and Idris-derived fixtures including a planted failing fixture; the API conforms to a located and pinned Hexadeca authority; and CI rejects boundary drift.
Policy outcome required
Bring IDApTIK's external interface boundary into estate policy:
This issue is separate from #102, which tracks the priority tests and benchmarks derived from Proven-Tests doctrine.
Verified current state (2026-08-29)
Observation horizon: the complete tracked working tree excluding target/ and the vendored Burble source under vendor/.
Required implementation
Idris2 ABI
Zig FFI/API adapter
Hexadeca conformance blocker
A complete hyperpolymath repository-name enumeration (limit 1000) and bounded local searches found conflicting historical names but did not locate a canonical Zig unified Hexadeca API repository/specification. Conformance cannot honestly be implemented or asserted until that authority is located or published.
Documentation and metadata gate
Definition of done
The Idris2 package compiles without unreviewed proof escapes; every external ABI operation is represented; the executable Zig adapter agrees with Rust truth and Idris-derived fixtures including a planted failing fixture; the API conforms to a located and pinned Hexadeca authority; and CI rejects boundary drift.