Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -587,6 +587,14 @@ Applied, Rejected, Obstructed}` with receipt evidence and typed contract

### Fixed

- `scripts/verify-local.sh` stamp storage now resolves the real gitdir via
`git rev-parse --git-dir`, so pre-commit and pre-push hooks work in linked
worktrees where `.git` is a file rather than a directory. Stamps are
per-worktree as a result.
- `docs/spec/SPEC-0009-wasm-abi-v3.md` now states that the documented EINT v1
layout is the ABI v3 application-dispatch intake
(`OpticIntentPayload::EintV1`) and cites the session-protocol EINT v2
envelope as a separate layer outside ABI v3 dispatch.
- `warp-core` WSC retained-evidence recovery now rejects conflicting duplicate
retained material digests and reading ids instead of letting recovery or the
recovered retention index silently overwrite evidence identity collisions.
Expand Down
8 changes: 8 additions & 0 deletions docs/spec/SPEC-0009-wasm-abi-v3.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,14 @@ The EINT v1 byte layout is:
+ vars (exactly vars_len bytes)
```

This v1 layout is the WASM ABI intake format: application dispatch routes
`OpticIntentPayload::EintV1` bytes into `KernelPort::dispatch_intent`
[`crates/echo-wasm-abi/src/kernel_port.rs#2687@2048da5c`]. A richer EINT v2
envelope (versioned header, flags, in-envelope schema hash, op version,
blake3 payload checksum, canonical-CBOR payload) exists at the session
protocol layer [`crates/echo-session-proto/src/eint_v2.rs#3@2048da5c`] and is
**not** part of ABI v3 application dispatch.

Trusted runtime control still uses `ControlIntentV1` internally. For those
privileged control intents, `op_id` is always `0xffffffff` and `vars` are
canonical-CBOR bytes that decode as `ControlIntentV1`; those bytes must not be
Expand Down
5 changes: 4 additions & 1 deletion scripts/verify-local.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ cd "$REPO_ROOT"
PINNED_FROM_FILE=$(awk -F '"' '/^channel/ {print $2}' rust-toolchain.toml 2>/dev/null || echo "")
PINNED="${PINNED:-${PINNED_FROM_FILE:-1.90.0}}"
VERIFY_FORCE="${VERIFY_FORCE:-0}"
STAMP_DIR="${VERIFY_STAMP_DIR:-.git/verify-local}"
# Resolve the real gitdir so stamps work in linked worktrees, where .git is
# a file pointer rather than a directory.
GIT_DIR_RESOLVED="$(git rev-parse --git-dir 2>/dev/null || echo .git)"
STAMP_DIR="${VERIFY_STAMP_DIR:-$GIT_DIR_RESOLVED/verify-local}"
VERIFY_USE_NEXTEST="${VERIFY_USE_NEXTEST:-0}"
VERIFY_LANE_MODE="${VERIFY_LANE_MODE:-parallel}"
VERIFY_LANE_ROOT="${VERIFY_LANE_ROOT:-target/verify-lanes}"
Expand Down
Loading