Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3c3a120
feat: validate canonical lawpack bundles
flyingrobots Jul 26, 2026
a377f16
feat: derive target facts from lawpack adapters
flyingrobots Jul 26, 2026
37bd7d7
test: pin Hello Echo compiler artifacts
flyingrobots Jul 26, 2026
0922a71
feat: bind target configurations in lawpack adapters
flyingrobots Jul 26, 2026
8ed5f62
test: repin Hello Echo to the adapter-aware profile
flyingrobots Jul 26, 2026
4114186
fix: admit required-key recursive schema choices
flyingrobots Jul 27, 2026
dd6230d
fix: corroborate provider-supplied target closures
flyingrobots Jul 27, 2026
49173d8
feat: build verified external applications
flyingrobots Jul 27, 2026
7d1625a
test: expose application build review gaps
flyingrobots Jul 28, 2026
2511553
fix: close application build review gaps
flyingrobots Jul 28, 2026
b06febe
docs: distinguish build dispatch from provider witness
flyingrobots Jul 28, 2026
38a2fbb
docs: record application build hardening
flyingrobots Jul 28, 2026
be16738
fix: use planned test placeholders
flyingrobots Jul 28, 2026
9268545
test: expose provider review boundaries
flyingrobots Jul 28, 2026
c177608
fix: close provider review boundaries
flyingrobots Jul 28, 2026
e9a37a5
docs: define application build boundaries
flyingrobots Jul 28, 2026
2e3f52f
docs: record hardened application builds
flyingrobots Jul 28, 2026
a725c3d
test: expose obstruction mapping collisions
flyingrobots Jul 28, 2026
6e49695
fix: reject ambiguous obstruction mappings
flyingrobots Jul 28, 2026
7681af8
docs: align application build evidence
flyingrobots Jul 28, 2026
cfcd5ad
docs: record obstruction collision rejection
flyingrobots Jul 28, 2026
ea16025
docs: repair application evidence graph
flyingrobots Jul 28, 2026
8d1af86
docs: bind hello echo fixture registry
flyingrobots Jul 28, 2026
986a8ee
test: expose application build boundary escapes
flyingrobots Jul 28, 2026
2511731
fix: confine application build effects
flyingrobots Jul 28, 2026
0595abf
fix: resolve relative application roots
flyingrobots Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 56 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,53 @@ versions still track specification maturity rather than a released product.

## [Unreleased]

### Changed

- Rejected many-to-one target obstruction mappings before Target IR emission so
failure-coordinate collisions cannot silently discard an obstruction arm.
- Hardened standalone application builds around complete lawpack dependency
closures, selected target-adapter identity, all provider-bound schema roles,
pure-helper call closure, canonical settings and application paths, mapped
target obstructions, exact verifier acceptance, safe provider roles, shared
domain-framed artifact identities, and rollback-safe package/report
publication.

### Added

- Added the public `edict` CLI `build` operation for standalone applications.
A settings-only JSONL request loads one exact `edict.application/v1`
manifest, source, complete lawpack dependency closure, direct target adapter,
target configuration, selected provider profile, and checked provider
package. Edict compiles and lowers the real source, invokes the provider's
lowerer and structurally separate verifier through the capability-denied
Wasmtime host, and writes only the accepted provider-emitted package and
verification-report bytes. It does not reimplement the provider encoder or
execute the package.
- Added the generator-owned portable `causal.cell@1.createIfAbsent` lawpack
closure for external applications. `cargo xtask lawpack-goldens` now
reproduces its canonical manifest, exports, direct Echo adapter, target
configuration, and digest sidecars only after validating the closure and
compiling a digest-pinned Edict witness through Target IR.
- Added the first executable `edict.lawpack/v1` loader. Exact canonical
manifests and export surfaces decode into an opaque typed bundle, corroborate
the export digest, validate the closed verifier, helper, effect, obstruction,
and operation-profile shapes, and reject incomplete, substituted, or cyclic
dependency sets. The reviewed Hello Echo fixture includes canonical bytes,
exact digests, and a real `createGreeting` source import checked by
`cargo xtask lawpack-goldens`.
- Added the direct declarative `edict.lawpack-adapter/v1` ABI. Exact canonical
adapter bytes are selected and digest-bound by a validated lawpack, must
completely discharge exported operation-profile, runtime-effect, footprint,
cost, budget, and named-failure obligations, bind each runtime effect to an
exact target-owned configuration resource, and derive compiler and Target IR
facts through the source module's exact digest-locked import. Edict preserves
the configuration identity without interpreting target semantics. The Hello
Echo source now lowers to `echo.span-ir/v1` without a caller-built
`CompilerContext` or `TargetIrLoweringFacts`, and its compiler-produced Core
and Target IR bytes are reviewed goldens. Target profiles accept only the
exact direct adapter ABI, and the self-contained provider contract pack
publishes its CDDL root.

- Added `EDICT.md`, a comprehensive cited introduction and deep-dive report:
hello-world walkthrough, feature deep dive, plain-English walkthrough with
glossary and diagrams, unique technical details, roadmap discussion, and a
Expand All @@ -31,13 +76,17 @@ versions still track specification maturity rather than a released product.
repetitions still fail before a registry exists. Recursive variable
occurrences and tagged choices use an Edict-owned specialization pass;
tagged choices dispatch by a required literal map key without depending on
declaration or encoded-entry order. Construction rejects any recursive shape
the finite specializer cannot preserve exactly, including ambiguous map-key
assignment and multiple or non-final variable array members. Scalar map-key
predicates retain exact pinned-validator semantics, including `.regexp`.
Specialized values select an arm before child traversal, then cross canonical
encoding and the exact 50-container limit before `cddl-cat 0.7.1` validation;
duplicate keys and one-over-limit values return the stable schema mismatch.
declaration or encoded-entry order. A two-arm recursive map choice may also
dispatch on one exact required text key that the other closed arm cannot
accept, admitting the closed-versus-legacy Target IR compatibility union
without weakening ambiguous same-tag choices. Optional or wildcard overlap
still rejects. Construction rejects any recursive shape the finite
specializer cannot preserve exactly, including ambiguous map-key assignment
and multiple or non-final variable array members. Scalar map-key predicates
retain exact pinned-validator semantics, including `.regexp`. Specialized
values select an arm before child traversal, then cross canonical encoding
and the exact 50-container limit before `cddl-cat 0.7.1` validation; duplicate
keys and one-over-limit values return the stable schema mismatch.

- Added a deterministic Apache-2.0 provider contract pack for runtime-owned
generators. The checked manifest binds one self-contained CDDL document,
Expand Down
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions crates/edict-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ name = "edict"
path = "src/main.rs"

[dependencies]
edict-provider-host-wasmtime = { path = "../edict-provider-host-wasmtime" }
edict-provider-schema = { path = "../edict-provider-schema" }
edict-syntax = { path = "../edict-syntax" }
glob = "0.3"
serde = { version = "1", features = ["derive"] }
Expand Down
Loading