Releases: Dicklesworthstone/eidetic_engine_cli
Release list
v0.15.2
EE 0.15.2 makes the complete CLI installable from crates.io and corrects the read-only WAL regression found while qualifying 0.15.1. All required runtime, storage, ORM, search and graph packages are published; EE no longer needs sibling checkouts or Cargo patches.
cargo +nightly install eidetic-engine --version 0.15.2 --lockedThe binary remains ee. Prebuilt binaries are available for Windows x86-64, Apple Silicon, Intel Mac, GNU/Linux x86-64 and ARM64, and musl/Linux x86-64.
Changes
- Published and verified all 48 previously unavailable dependency packages, followed by the three corrected FrankenSQLite 0.4.1 packages. EE uses FrankenNetworkX 0.3, SQLModel 0.5, Frankensearch 0.6 and exactly one Asupersync runtime, version 0.5.0.
- Fixed strict read-only access to an existing WAL database while another same-process connection remains alive. Read-only opening also works for a checkpointed database whose WAL sidecar is absent, empty, short or invalid; write and maintenance protections remain intact.
- Reranking preserves the original fusion order and reports
rerank_model_unavailablewhen document storage cannot be read. Missing or out-of-scope documents remain normal omissions. A failed read stops repeated attempts, and partially reranked results are discarded. - Replaced local dependency paths and patches with registry dependencies. The 573-entry lockfile contains EE and 572 checksum-pinned registry packages, including development and target-specific packages. Source installers use
--lockedand skip sibling checkout preparation for this registry-only release. - Updated dependency diagnostics and their output contract to report actual registry versions and provenance.
- Fixed optional Frankensearch shadow comparisons so synchronous backend work uses the caller's blocking pool. Missing-pool callers explicitly shed the optional comparison; serving does not synchronously write its artifact. Original latency guards and successful persisted comparisons were tested separately.
- Updated strict-Clippy idioms without changing hex validation, key zeroization, or cache cleanup cadence. Corrected the installer test to match the README's guarded downloads and cacheable fallback URLs.
- Made two index snapshot tests explicitly select deterministic hash embeddings. Their producer choice no longer depends on models cached on the test machine; all ordering and generation assertions remain intact.
If upgrading from a release earlier than 0.15.0, rebuild existing semantic indexes with ee index rebuild --workspace . and reinstall managed hooks as described in the 0.15.0 upgrade notes.
The 0.15.1 crate was published before these regressions were found; its GitHub and Homebrew release was withheld. Use 0.15.2 or newer for Cargo installations.
Validation
-
Final registry-only all-target checks, strict Clippy, formatting, and compilation of the extracted crate passed. All 58 selected tests passed: 15 regressions, nine dependency contracts, 33 installer cases and the unchanged real-model runtime regression. The installer rerun includes the test-only source-pin expectation correction in
6e99cedb; that file is excluded from the crate and production code is unchanged from the release source. -
Check and strict Clippy ran on Linux. The Windows cross-build retains platform-specific unused-import and dead-code warnings; warning-free compilation across all six platforms is not claimed.
-
FrankenSQLite's corrected source passed full-workspace all-target checks, strict Clippy and formatting, plus 47 targeted regression cases. Its three public archives match their tagged source and registry checksums.
-
The public crates.io archive matches the qualified Cargo-generated candidate byte for byte, including all 339 source files, its original manifest, exact lockfile and tagged VCS record. The public index matches all 48 direct dependency declarations and ten features from Cargo metadata.
-
The original 160-request rerank workload returned 96 scored candidates under the selected portable profile, with only the expected profile-limit advisory. The independent fusion-only request returned its own profile's full 160-result limit. Neither the request size nor runtime budgets were raised.
-
The unchanged six-writer, 60-write workload passed all eight assertions in 27.79 seconds: all 30 journal entries and 30 memories persisted, all memory IDs read back, and the index was current before search with exact result-ID equality.
-
Three real Model2Vec retrieval scenarios and installed hooks with daemon model warming passed. Apple Silicon core memory commands and installed hooks passed; GNU/Linux x86-64 core commands passed on Debian 10.
-
A fresh Cargo installation into an empty installation prefix passed all seven core workflow checks. It used the public registry package and a warm Cargo dependency/build cache; no sibling source or injected Git build metadata was used.
-
The tagged shell installer passed an offline installation in a fresh retained container, including its doctor self-test, Bash completions and exact installed-binary hash/version/source checks. Cleanup was suppressed to preserve test evidence and remains unqualified; this was a checksum-based local archive test, not a network or signature test.
-
GNU/Linux ARM64 passed the same workflow under Debian 10 with QEMU; Intel Mac passed under Rosetta. These are emulated core-workflow checks, not native ARM or platform-wide inference qualifications.
-
The musl/Linux x86-64 binary passed the same Debian 10 workflow. ELF inspection confirmed no interpreter or dynamic-library dependencies. Both GNU/Linux binaries passed the glibc 2.28 symbol gate.
-
Native Windows memory workflows passed. A held byte-range lock produced the expected
doctor_concurrency_lostresponse before lifecycle allocation; after releasing it, two doctor runs passed while preserving previous/latest pointers, and the lock could be reacquired after process exit.
Remaining limits
- The transitive
lru 0.16.4RustSec warning remains tracked in #40. No advisory ignore was added. An audit without vulnerabilities can still report this unsoundness warning; a strict warning-free audit is not claimed. - Existing issues #29, #37, and #41 remain open, as do previously recorded integration failures. This release does not claim a fully green test suite.
- Binaries are built with DSR outside GitHub Actions. SHA-256 checksums and a source-bound manifest are provided; assets are unsigned, with no Sigstore bundle or SLSA attestation. They do not satisfy
--require-provenance.
Release source: 1478b2f3b0a912d5302808f6dc6de9e56e589c05. Normal Cargo installs have no injected Git build metadata; the published crate's VCS record identifies their source.
EE v0.15.0
EE 0.15.0 improves daemon-backed memory retrieval, generated hooks, native reranking, and backup correctness.
Upgrade steps
After installing this release, run ee index rebuild --workspace . for each workspace with a semantic index. The updated Model2Vec loader has a new producer identity, so existing vector indexes need rebuilding. Reinstall managed hooks to receive the updated snippets. For Claude Code, inspect EE hook entries before and after reinstalling: entries without eeManaged metadata can be duplicated, and ee hook status does not detect those duplicates (#41).
Changes
- Windows doctor runs can replace their own
latestpointer on repeated invocations while retaining the previous pointer and rejecting redirected parent directories. - Workspace daemons now serve anchored recall and bounded fast orientation, with local fallback when a daemon is unavailable. Anchored recall does not require loading an embedding model.
- macOS daemon clients preserve replies buffered before the server closes, fixing a socket-timeout race that broke retrieval and daemon shutdown.
- SessionStart hooks inject useful memory and rule text with provenance within their token budget.
ee hook statusrecords invocation outcomes separately from installation freshness. Missing EE or Python processes fail open. - Native reranking uses the request's blocking pool and cancellation budget. Optional reranking failures preserve fusion results with an explicit degradation; snapshot cleanup preserves the original search error.
- Model2Vec callers share verified weights within a process. Streamed decoding avoids retaining another full weight-file buffer. Persistent tokenizer caching remains upstream work.
- Backup exports preserve original memory-body whitespace. Query normalization preserves literal leading exclusion markers, deterministic UUIDs retain their sequence without ambient randomness, and pack DNA avoids duplicate unavailable-PPR warnings.
- Recorder follow commands handle SIGINT inherited as ignored from background launchers, including during long polling waits.
- Updated crossbeam-queue, base64, fs4, uuid, zeroize, zstd and toml_edit. The pinned runtime uses the maintained PEM parser and includes the Windows readiness-import correction.
- Integration tests are grouped into 39 executable targets while preserving the root test modules and required process isolation.
Validation and distribution
- Final-source
cargo check --all-targets --locked, Clippy with-D warnings, formatting, and the all-features forbidden-dependency check passed. RCH receipts retain the authorized build-admission exception and a proof-broker source-state-mismatch diagnostic; these are compiler passes, not clean infrastructure attestations. - All six final release binaries passed actual memory workflows with version, source commit, target and binary hash checked: native Windows x86-64, native Apple Silicon, Intel Mac under Rosetta, GNU x86-64 and musl x86-64 on Debian 10, and GNU ARM64 on Debian 10 under QEMU. Both GNU binaries require at most glibc 2.28; the musl binary has no ELF interpreter or dynamic-library dependencies. Windows additionally passed real byte-lock contention and two successive doctor repairs with the prior pointer preserved.
- The 9,523-case library selection was accounted for across the original run and exact continuation batches: 9,517 passed, two failed, and four were ignored. The two failures identified stale doctor metadata and a stale hook-template assertion, both corrected in this release. All three focused doctor, hook-template and buffered-reply regressions passed on the final source: three passed, zero failed, zero ignored, 9,521 filtered out. The original combined build/test invocation timed out and remains recorded as a timeout. Two ignored cases involving real models passed separately on an earlier issue-fix candidate; two explicit microbenchmarks were not run.
- Dependency-specific regression groups passed individually: 58 writer-queue, 151 encoding/cursor/identifier, 78 locking/secret-store plus three CLI cases, 34 UUID/runtime, five backup/recovery, 44 compression/cache plus eight pack integration cases, and 75 configuration/profile tests.
- The final GNU/Linux binary passed the strict multi-process writer scenario: six processes, 60 interleaved memory/journal writes, zero dropped writes, all memory bodies durably readable, and the exact index generation and search-ID set verified before read repair (eight assertions, 32.273 seconds).
- A final-source Linux hook scenario used the actual Model2Vec model and automatic daemon warming in two one-rule semantic workspaces. All 20 CLI/hook commands passed, with five real capabilities observations showing
warmingthrough the hook calls and thenready. Recall and fast orientation worked during warming and after readiness; missing-socket and wrong-workspace fallbacks preserved the correct memory. SessionStart took 0.817 seconds and PreToolUse 0.266 seconds in this small fixture. These are measured fixture timings, not a general latency guarantee. - On the immediately preceding candidate, which predates the final Mac-only daemon fix, three semantic context scenarios passed with the actual Model2Vec model. A 300-memory reranking fixture requested 160 candidates; the selected portable profile capped that at 96, and all 96 received native rerank scores in 15.319 seconds. Mac boundary migration passed 8/8. Linux installed-hook workflows passed; the corrected final Mac binary also passed all 17 recorded daemon, fallback, workspace-isolation, installed-hook, deduplication and shutdown commands.
- The unchanged shell installer passed an offline installation of the exact GNU x86-64 archive in a fresh retained container, including mandatory SHA-256 verification and its executable self-test. The installed binary matched the qualified binary byte for byte and reported the exact release source. Process-local cleanup suppression retained temporary files; cleanup, same-host upgrades and semantic model downloads were not qualified by this probe. Public asset downloads are checked separately.
This release is built through DSR without GitHub Actions. Source: d09edf26a0adf8d39897de615610b7d67430bb81. The assets carry SHA-256 checksums and a source-bound build manifest; they are unsigned and have no Sigstore bundle or SLSA attestation. They do not satisfy --require-provenance.
Remaining limits
- RustSec audit remains nonzero for RUSTSEC-2026-0253, through Tantivy's
lru 0.16.4. This dependency was already in 0.14.5. Exact-source review found only a private integer-key cache usingnew,get,putandlen; it neither calls the affectedpopoperation nor permits a panicking key destructor. A compatible upstream backport is still needed; no new advisory ignore was added. Follow-up: #40. - The original high-concurrency library-test SIGSEGV report (#29) remains unresolved. Passing runs under other profiles do not prove that report fixed.
- A late report exposed a remaining Claude Code installer issue (#41). On the final binary, reinstalling intact managed entries is byte-identical, but removing their
eeManagedmetadata causes one existing hook per event to become two while status still reports four fresh hooks. This reproduction deliberately removed metadata; it does not establish how the reporter's original settings lost it. The issue remains open. - The integration sweep is not entirely green: retained baseline failures include stale fixtures, performance and environment-sensitive checks, and a promoted-rule/source-body selection limitation. These are not claimed fixed by the dependency update.
- crates.io publication is blocked by six unavailable dependency versions and an API missing from published Asupersync 0.4.11. The binary release uses the exact pinned sibling sources.
ee v0.14.5: Linux compatibility and storage recovery
ee 0.14.5 improves Linux binary compatibility, storage recovery, and runtime resource use.
- GNU/Linux binaries target glibc 2.28 on x86-64 and ARM64. The release build now checks the ELF binary's actual symbol requirements before packaging, preventing the build host from silently raising the minimum supported glibc version (#38).
- SQLite busy lock-wait timeouts are retried during concurrent storage operations and CASS imports. Import transactions now retain the database writer lock through commit or rollback and roll back unfinished writes during unwinding. Actual deadlines and cancellation remain terminal. Doctor reports the versions of the dependencies linked into this release.
- Windows storage now honors the dedicated database worker's existing capability to perform small I/O directly, with the same 64 KiB limit as Unix. Larger transfers and ordinary async callers retain offload. Cancellation and tracked-write outcomes are preserved.
- The pinned FrankenSQLite update includes legacy V2 certificate-log recovery (#27). A controlled legacy-record fixture preserved its stored canary through migration checks, another write, and a subsequent search; the reporter's original database was unavailable for reproduction.
- CLI runtimes use bounded, lazy blocking pools. Initialization and migration checkpoint their writes, and doctor warns about excessive WAL growth. Doctor's thread creation dropped substantially in the measured fixture. Generated SessionStart hooks still withhold the orientation payload when it exceeds their token ceiling; #35 remains open for the complete ambient-context experience.
- Daemons warm their resident search stack at startup and expose
warm.posture. Requests received during warm-up fall back with an explanation. Warm-RPC overhead can still exceed the default two-second client deadline on some hosts; #37 remains open, and generated hooks do not yet route orient/recall through the daemon (#39). - Workspace backups preserve more recovery state, including authorization keys through encrypted key backups, memory revisions, relationship metadata, tombstones, authenticated audit history, and learned procedural evidence.
- Explicit stored recipes participate in task recommendations with scope and evidence explanations. An OpenAI-compatible remote embedding backend is available as an explicit opt-in; local operation remains the default.
The pinned stack uses Asupersync 0.4.10, FrankenSQLite 0.3.18, SQLModel 0.4.3, Frankensearch 0.5.0, FrankenNetworkX 0.2.1, and nightly-2026-08-31. The rustls-pemfile maintenance exception remains required by the pinned TLS dependency graph (#22).
Validation: source 214f1ed passes Linux all-target checking, Clippy with -D warnings, formatting, and the forbidden-dependency audit. On 1c9043e, three focused CASS tests, 15 manifest tests, and four public-identifier checks passed. Default-profile Unix library coverage completed across two batches: 9,496 passed and three existing ignores, using 2 MiB stacks and four test threads. The first full invocation timed out after two hours; the unfinished cases passed in a second batch. This does not resolve the original 128-thread report in #29. The subsequent source changes pin Windows-only FrankenSQLite backports for compilation and bounded I/O dispatch. Nine backup, daemon recovery, and writer integration tests also passed on the earlier 612f48f test binaries; one pre-existing bridge test remained ignored. These are self-reviewed results, not an independent verification.
Final GNU qualification: the x86-64 binary passed on Debian 10 (glibc 2.28) and Ubuntu 24.04, passed 36 basic/selected advanced CLI checks, and preserved every write in a six-process contention test. Its real-model search returned 50 reranked results without degradation on a 505-memory fixture. Doctor reported ok with 21 clone calls in 4.4 seconds on a one-memory fixture. The controlled legacy V2 certificate fixture also passed. The ARM64 GNU binary passed the glibc 2.28 symbol gate and completed init → remember → search → pack in an emulated ARM Debian 10 container.
The final static musl binary completed the same memory workflow in Debian 10. The macOS ARM64 binary completed it natively on Apple Silicon and passed eight boundary migration checks. Windows passed all three new storage regressions and the complete memory workflow natively. Initialization took 34.6 seconds after the preceding candidate exceeded the unchanged 180-second limit; host load varied, so this is not a controlled speedup benchmark. Windows was cross-compiled on Linux using cargo-xwin 0.23.1; its release build retains existing platform warnings.
The macOS x86-64 binary completed the memory workflow through Rosetta on Apple Silicon. All six release targets were built from commit 214f1ed009481a5e99824d2e16350aebd934a5f9; the tested binaries are the ones included in the release archives.
The Linux installer passed checksum verification, self-test, and the installed memory workflow in a private destination. Cleanup was excluded from that probe.
Like v0.14.4, this release provides SHA-256 checksums and a build manifest without Sigstore signatures or SLSA attestations; --require-provenance is not supported by these assets.
ee v0.14.4
Agent-facing discovery and input-correctness patch release. This cut makes the
machine-readable capability inventory follow the actual Clap command tree and
closes correctness gaps in tag filters, SEC identifier policy, and local
provenance rendering.
Added
- Capability discovery now exposes the complete live CLI contract. The
inventory is derived from Clap rather than a parallel hand-maintained table,
including nested commands, aliases, environment variables, defaults, value
constraints, and stable JSON/TOON ordering. - Local provenance has actionable repair guidance. Memory list/show output
preserves supported local URI schemes while redacting sensitive path details,
and malformed or unsafe provenance explains how to repair the source.
Changed
- The pinned release stack advances to FrankenSQLite 0.3.11 and
nightly-2026-08-25. The lockfile, path-dependency manifest, and release
toolchain now describe the same tested source graph.
Fixed
- SEC identifiers no longer trip the phone-number policy. Canonical
zero-padded CIKs and accession numbers pass throughee remember, while
valid NANP phone forms and SSNs remain protected. Secret-detector allow
phrases and regexes now honor the documented user config layer beneath
project config. - Tag filters now round-trip the same canonical form used by
ee remember.
ee memory list --tagand tag bitmap queries accept mixed-case filters for
existing canonical rows without requiring reindexing. Hyphens and
underscores remain distinct outside documented scope-keyword aliases. - Local memory provenance no longer loses its URI scheme at output time.
Redacted list/show views retain enough typed provenance to round-trip through
machine consumers without exposing the underlying local path.
ee v0.14.2
Patch on the 0.14 team-confederation product. Rebuilds against current franken-stack pins and a crates.io lock refresh. Nightly toolchain only — never stable.
- asupersync 0.4.9, FrankenSQLite 0.3.7, frankensearch 0.3.2
- franken_networkx / toon / franken_agent_detection at origin/main
- SQLModel stays on the 0.4.0 harmonize pin
- Workspace-id bind campaign after v0.14.1
- Proven
--version: linux gnu, darwin arm64, and darwin amd64 reportee 0.14.2
Install:
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/eidetic_engine_cli/v0.14.2/install.sh?$(date +%s)" | bash -s -- --easy-mode --verify
ee v0.14.1
Patch on the 0.14 team-confederation product. Rebuilds against current franken-stack pins and a crates.io lock refresh. Nightly toolchain only — never stable.
- asupersync 0.4.8, FrankenSQLite 0.3.5
- frankensearch / franken_networkx / toon / franken_agent_detection at origin/main
- SQLModel stays on the 0.4.0 harmonize pin
- Assets: darwin arm64 + amd64, linux gnu + musl + aarch64 gnu, windows MSVC
- Proven
--version: linux gnu, darwin arm64, and windows MSVC all reportee 0.14.1
Install:
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/eidetic_engine_cli/v0.14.1/install.sh?$(date +%s)" | bash -s -- --easy-mode --verify
v0.13.1
v0.13.1
Patch release: the native rerank stage now actually reaches installed binaries, and ee model status no longer misclassifies healthy reranker metadata.
Fixed
- GH#26 — reranker registry metadata misclassified as corrupt.
ee model statusparsed every model-registry row'smetadata_jsonas an embedding metadata record, so a validrerank-default-v1row (schemaee.rerank_model_registry_metadata.v1) was reported asmodel_asset_corruptwith an embedding-oriented repair hint, and v0.13.0 search stayed fusion-only. Lifecycle rows now validate against the schema matching theirModelPurpose; malformed reranker metadata still surfacesmodel_asset_corruptwith a reranker-specific repair (ee model fetch rerank-default). (76c7773) - Envelope honesty:
ee model statusmirrorsmodelLifecycle.degraded[]into the top-levelee.response.v2degraded[](deduped by code+message), so a high-severity lifecycle degradation can no longer coexist with an empty top-leveldegraded[]. - Clean-clone builds restored.
Cargo.toml,Cargo.lock, andfranken-stack.lockhad drifted mutually inconsistent (ed25519-dalek pin vs lock, asupersync =0.3.10 pin vs 0.4.4 APIs), breaking--lockedbuilds. The pins are reconciled (asupersync =0.4.4, sqlmodel 0.4.0, ed25519-dalek 3.0.0 closure in the lock) andfranken-stack.lockis refreshed to the validated sibling revisions. - Windows asset restored (2026-08-17). v0.13.1 initially published with zero Windows assets, because CI's Windows leg hit an upstream
rustcnightly internal compiler error (asupersync::Cximport resolution failing under this repo's floatingchannel = "nightly"toolchain pin) — confirmed not a source defect and confirmed toolchain-specific by a controlled rebuild: identical source and sibling pins, only the nightly date changed, and the failure went away.ee-x86_64-pc-windows-msvc.tar.xz(+.sha256) is now attached, built and executed on real Windows hardware (ee --versionreportsee 0.13.1), and independently re-verified by downloading the published asset back from GitHub and re-hashing it.install.ps1's existing fallback-to-newest-Windows-release logic remains as defense-in-depth for future incomplete releases; it is no longer needed to reach v0.13.1 specifically. The underlying floating-nightly toolchain issue is unresolved upstream and could recur on a future cut.
Changed
- Everything merged to
mainsince v0.13.0, including the native reranker completion wave (rerank-default-v1bootstrap, checksum and publication hardening) that v0.13.0 binaries could not execute.
Assets
This release ships locally built, checksum-verified binaries for:
ee-aarch64-apple-darwin.tar.xz(+.sha256)ee-x86_64-unknown-linux-gnu.tar.xz(+.sha256)ee-x86_64-pc-windows-msvc.tar.xz(+.sha256) — added 2026-08-17, see Fixed above
install.sh / install.ps1 are attached as usual. Targets from the v0.13.0 matrix still not attached here: x86_64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-musl.
Known limitation: no provenance or Sigstore attestation on this release (any platform)
v0.13.1 ships without SLSA provenance or Sigstore attestation for any platform — a release-wide regression from v0.13.0 (which shipped both for five targets), not specific to any one platform including Windows. A client running with --require-provenance will fail identically on all three attached platforms until this is fixed. install.sh/install.ps1 treat the missing signature bundles as a warning rather than a hard failure by design, so a default install is unaffected.
Remedy: this needs a genuine CI signing run — cosign sign-blob --tlog-upload=true requires a GitHub-Actions-issued OIDC identity token to produce a .sigstore.json bundle that means anything (it binds the signature to a specific verified CI run in the public Rekor transparency log). There is no local or manual equivalent: a signature produced any other way would not be this attestation, and a .provenance.json manually assembled outside CI would misrepresent its own runDetails.builder.id/workflowRef/invocationId fields, which are supposed to identify the actual CI run that built the artifact. Producing either by hand was considered and rejected for v0.13.1's Windows asset specifically for this reason — a fabricated attestation is worse than an absent one, because absence is visible and a fake would verify as if it meant something it does not. Fixing this requires re-running the release workflow's signing steps on a real GitHub Actions runner against the already-published artifacts, not a local patch.
rerank-default-v1 model artifact
Pure-Rust native reranker model artifact for ee v0.13.0. Size: 82767464 bytes. SHA-256: adaada3ccc15ae535e9bea238d2ec05e4f39726bdcad07dd87cba9f85dc10edb. BLAKE3: 42e850f16c60969e23a48b665824be64ad0b245ebca838782df3b191b953d7b3. Contents: model_f32.safetensors, tokenizer.json, config.json. License: Apache-2.0.
ee v0.13.0
Installation
Unix (Linux/macOS)
curl -fsSL https://github.com/Dicklesworthstone/eidetic_engine_cli/releases/download/v0.13.0/install.sh \
| EE_VERSION="v0.13.0" bashWindows (PowerShell)
$f = Join-Path $env:TEMP 'install-ee.ps1'; Invoke-WebRequest -UseBasicParsing https://github.com/Dicklesworthstone/eidetic_engine_cli/releases/download/v0.13.0/install.ps1 -OutFile $f; & $f -Version "0.13.0"Verification
All release artifacts are signed with Sigstore. The official install.sh accepts
either keyless workflow signatures (this release) or the pinned long-lived EE
release key (used as a fallback for manual maintainer-cut releases).
Keyless (workflow-built releases — recommended)
cosign verify-blob \
--bundle ee-<target>.tar.xz.sigstore.json \
--insecure-ignore-tlog=false \
--certificate-identity-regexp "^https://github\.com/Dicklesworthstone/eidetic_engine_cli/\.github/workflows/release\.yml@refs/tags/v[0-9].*$" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
ee-<target>.tar.xzPinned key (manual-cut fallback releases)
When release.yml is unavailable, the maintainer may sign with the pinned EE release key.
The official installer tries keyless signatures first and only uses this fallback when keyless verification does not match.
Set EE_INSTALL_REQUIRE_KEYLESS=1 to refuse the pinned-key fallback.
The public key lives at signing/cosign.pub in the repo. Verify with:
cosign verify-blob \
--bundle ee-<target>.tar.xz.sigstore.json \
--insecure-ignore-tlog=false \
--key https://raw.githubusercontent.com/Dicklesworthstone/eidetic_engine_cli/main/signing/cosign.pub \
ee-<target>.tar.xzEach tarball also ships SLSA provenance. Verify it with the same keyless or pinned-key flow:
cosign verify-blob \
--bundle ee-<target>.provenance.json.sigstore.json \
--insecure-ignore-tlog=false \
--certificate-identity-regexp "^https://github\.com/Dicklesworthstone/eidetic_engine_cli/\.github/workflows/release\.yml@refs/tags/v[0-9].*$" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
ee-<target>.provenance.jsonChanges
Durable, local-first, explainable memory for coding agents. This release rolls
up 673 commits since v0.12.0
(~102 feat, ~232 fix, ~130 test) across the core memory loop, search
index corpus, pack integrity, daemon write path, installer, and agent
contracts. Minor bump per the pre-1.0 convention (features land as minor).
Version was set in-tree by
861d5fb7
on 2026-06-21; this cut tags v0.13.0 on current main so post-bump
storage, index-publication, and installer fixes ship in the same binary.
Highlights
User-global memory store (ADR 0083)
- Separate local store at the user data root (
…/global/) with schema/migration
parity to a workspace store. - Normal verbs operate on it via
--global(selector conflicts with
--database; workspace-id guard keeps stores isolated). - Replaces the earlier policy-only / write-mostly global tier with real open,
migrate, remember, and list paths
(09ecf4f8,
919caaf7;
ADR 0083).
Learn → Retrieve → Pack loop closed for rules and evidence
- Procedural rules join the derived search corpus and hydrate into pack
candidates through source-memory linkage
(b19d8075,
f96deb2d;
bd-3h6bz). - Imported CASS evidence spans become searchable documents and hydrate when
distilled; undistilled spans degrade honestly
(context_evidence_hit_unhydrated) instead of looking like pack items
(dba0cf30,
0e438e14;
bd-16imy). - Typed pack entity identity work (ADR 0085) keeps memory / rule / evidence
identities distinct for pack, replay, and why surfaces
(ADR 0085).
Pack ledger integrity and public replay (v2 contracts)
- Pack history reads prefer the integrity-verified selection ledger over
denormalized convenience rows (V084 profile domain + ledger read APIs)
(910b872d). - Public ID projection and replay-text redaction so support bundles, handoff,
and swarm surfaces never echo raw secret-shaped values
(f78c9963). - Wire schemas and handlers:
ee.pack.replay.v2,ee.pack.diff.v2,ee.context.delta.v2,
support-bundle pack-replay summary v2, and public attestation projection
(31fb02ea,
9789f684,
900ab215,
a62b7e95,
2b0b5667). - Top-level JSON envelopes surface
degraded[]even under minimal field
profiles so agents can plan recovery without the fulldatatree
(4f07392f). --schema-versionselects response renderer generation (v1= current
ee.response.v2wire shape;v0= legacy compatibility)
(248bfb12).
Hot-path write + index intake (ADRs 0077 / 0078)
- Group-commit write intake contract, config, telemetry, and daemon write-owner
path (ee.daemon.write, journal coalescing,ee.daemon.write_journal)
(ADR 0077;
80c250f3,
a47b71e7,
7f86703f). - Coalesced-batch incremental index intake when the touched set is safe;
otherwise full rebuild remains the audited fallback
(ADR 0078;
306272ed). - Corpus publication stamps a deterministic corpus revision and exact
per-source/per-tier counts; legacy memory-only generations cannot be
relabeled as current after rule/evidence expansion
(6ad42dd5;
bd-1zfau). Migrations V080–V087 cover generation floors, audit timeline,
memory-debt snapshots, pack profiles, evidence security posture, rule
generations, and evidence storage rebuild.
Search, capture, and swarm authority
- Rerank
auto|off+ top-k config; first-use reranker auto-provision with
honest fusion-only degradation offline
(ff9c87e0,
638998b5). - Ambient capture command wiring and coverage-gap / capture-demand reporting
(b8526743). - CASS prefetch coordinator with gated schedule, budget accounting, and
per-workspace metrics
(884de00a). - Agent Mail snapshot v1 freshness and workspace-binding authority for swarm
brief / claim evidence
(9dacddeb). - Insights unscoped bundle carries per-section pagination so truncation is
visible (GH#15)
(3c444c5e).
Installer
- Bash 3.2-safe empty-array expansion under
set -u(proxy, agent detection,
box rendering, archive candidates) so proxy-free macOS installs resolve the
latest release and agent-less hosts no longer fail post-install config
(7c107614). - Compatible GNU archive retry when preferred musl is absent on x86_64 Linux;
one-byte network preflight instead of downloading the archive twice (already
staged in Unreleased and carried into this release).
Fixed
- Evidence rescreen / rebuild atomicity and V087 registry realignment so
corrupt or legacy evidence rows do not poison publication
(seefix(db):series culminating in
5f2aea8c,
efa2f4e5). - Search preserves unfiltered evidence hits when admission filters would drop
the only supporting document
(9b492289). - RCH / verify path: pinned Franken-stack topology, Cargo config provenance
attestation, worker-pressure classification, and portable pinned bundles
(verify series on main after the version bump). - Envelope / golden isolation: host topology, process env, and degraded
mirrors no longer leak machine-specific fields into contract tests.
Migrations agents may need
ee migrate run --workspace .
ee index rebuil...ee v0.12.0
Installer correction (2026-07-28): Use the maintained installer command below. The
install.shbundled as a v0.12.0 asset has a version-resolution bug under Apple’s stock Bash 3.2, and this release does not include the x86_64 Linux musl archive. The maintained installer fixes the macOS path and automatically retries the SHA-256-verified GNU archive on x86_64 Linux.
Durable, local-first, explainable memory for coding agents. This release rolls up roughly 300 commits since v0.9.1, focused on swarm-scale observability, RCH topology resilience, deterministic answering, and harness conformance.
Highlights
Scale & contention observability
ee.diag.contention.v1— read-only contention diagnostic aggregating write-lock, read-pool, single-flight, and cache posture into one ranked "top contention" report.- Scale-envelope collectors, contract, deterministic fixtures, locality advisor, and an RCH SLO harness for reasoning about behavior under dozens of concurrent
eeprocesses. - New telemetry schemas
ee.index_intake.v1(incremental intake) andee.write_group_commit.v1(group-commit).
RCH topology resilience
scripts/rch_verify.sh --worker-root-canary— a bounded, read-only worker-topology probe (ee.rch.worker_root_canary.v1) that reports whether remote workers can accept this checkout's project roots before a heavy Cargo proof is dispatched, with structured degraded codes and repair actions.- Topology-recurrence evidence bundles and handoff export, claim-gate topology surfacing, and a
verifytopology closure audit.
Deterministic answering & memory lifecycle
ee ask— deterministic extractive question answering with citations, conflict sides, calibrated abstention, and fail-closed confidence mode.- Session-budget advisory planner: recommends the cheapest useful next command.
- Typed decision workflow (
ee decide), a memory-debt doctor for curation, and query-miss gap mining for capture templates.
Agent integration
- MCP adapter exposes the wave-surface tools.
- Harness conformance schema, simulator, and golden proof; toolchain-provenance authority folded into swarm work packets and hook-install freshness auditing.
Platforms
Binaries for macOS (aarch64, x86_64), Linux (aarch64, x86_64 gnu), and Windows (x86_64).
curl -fsSL "https://raw.githubusercontent.com/Dicklesworthstone/eidetic_engine_cli/main/install.sh?$(date +%s)" | bashVerify
ee --version # ee 0.12.0
ee doctor --json