Releases: Loctree/aicx
Release list
v0.10.0
Added
- Card schema v2 for the canonical store: versioned sidecars
(schema_version: 2), YAMLcard.v2frontmatter replacing the legacy
bracket header, an L0 provenance pointer (source { path, sha256, span }
to the raw session file), and claim-honesty metadata
(claim_scope=session_close,freshness_contract=historical,
verification_state=not_verified_by_aicx) on every new card. Contract:
docs/CARD_CONTRACT.md. - Typed signals:
ChunkSignalsnow serialize as structured
signals[]records (kind,text,line_span,extractor_version) in
the sidecar; the md[signals]block is a deterministic render of those
records instead of the only artifact. aicx corpus validate-cards [ROOT] [--strict] [--json]— card contract
gate: schema/versioning checks, full-filecontent_sha256verification,
header-form consistency, placeholder ban, harness-noise heuristic, and
md↔sidecar signal parity, with a born-v2 vs migrated-v2 severity policy.aicx migrate --cards-v2 [ROOT] [--apply]— in-place v1→v2 store
migration: dry-run by default, streaming walk, per-file manifest with the
old header preserved for reversibility, body-byte invariance enforced by
a hard sha256 pre/post check,migrated_from_schema: 1marker, and
refreshedcontent_sha256after the header rewrite.- Evidence mode (
aicx search --evidence, MCPaicx_search
evidence: true): evidence packets with answer/support re-ranking,
verified source paths, and oracle-status envelopes. - Search quality: TOML-seeded quality eval harness
(aicx eval search-quality), anchored-answer preference, content-first
excerpts, scoped-fallback and project-bucket fixes, and a lighter Polish
stemming profile in the Tantivy adapter. - Intent taxonomy extended with Task & Commitment kinds; every
[signals]-sourced record now carries provenance tags and is revalidated
through the shared classifier (document-role awareness skips pasted
commit/changelog blocks; code/log fragments are dropped). - Claim-honesty frame on display surfaces:
aicx intents(text + JSON)
and MCPaicx_intents/aicx_searchpayloads label claims as
historical @ session close · not verified by aicx. - CLI/MCP search parity: shared
fuzzy_search_with_post_filters+
finalize_fuzzy_resultsso ordering/limit semantics are identical across
surfaces; end-to-end parity test. - MCP host contract:
--host,--allowed-host(repeatable),
--allow-any-host, HTTPHost-header validation with an explicit
trust policy, Bearer-auth token cascade documentation, and
aicx doctorMCP version-pair diagnostics. - Operator-markdown imports carry structural provenance
(source_file/source_format/content-hashimport_id); ChatGPT exports
are dated from theirCreatedheader instead of file mtime.
Changed
- Card readers are header-agnostic (bracket v1 or frontmatter v2) through a
single sharedcard_headerhelper, and prefer sidecar metadata over
re-parsing the md header. - Repository deprivatized for public release: personal names, contact
addresses, internal infra references, and internal planning docs removed;
npm/crate author metadata nowVetcoders <hello@vetcoders.io>. - GitHub Actions workflows pin every action to a full commit SHA
(supply-chain hardening; semgrepgithub-actions-mutable-action-tag
gate is clean).
Fixed
- MCP HTTP security posture: non-loopback binds refuse to start without
auth; loopback-only--no-require-auth; a bare all-interfaces bind
without--allowed-hostdisables Host validation explicitly (tailnet
flow) while staying Bearer-gated. - CLI pre-parse hints (
--sourcerequirement,config --showhint) fire
only on the top-level subcommand instead of matching anywhere in argv. ~/-prefixed frontmattercwdvalues expand with native path separators
on every platform (fixes windows-latest CI on operator-md ingest).- Search-seed project discovery paths guarded in the eval harness.
aicx v0.9.4
The insight layer for agent sessions. loctree is sight; aicx is insight — it remembers the why behind every decision an agent makes.
Prebuilt, signed binaries
| Platform | Asset | Verification |
|---|---|---|
macOS (Apple Silicon, aarch64) |
aicx-v0.9.4-aarch64-apple-darwin-slim.zip |
Apple-notarized (Accepted) + Developer ID signed + GPG .asc + SHA-256 |
Linux (x86_64) |
aicx-v0.9.4-x86_64-linux-gnu-slim.tar.gz · aicx_0.9.4-1_amd64.deb |
GPG .asc + SHA-256 |
Windows (x86_64) — code landed, binary pending
Windows support shipped in this release at the code level: native file locking
(LockFileEx byte-range), cross-OS path normalization, DACL-restricted auth-token
storage, and the @loctree/aicx-win32-x64-gnu npm package. The prebuilt Windows
binary is not attached to this release yet — it is blocked on a CI packaging fix
(git safe.directory on the Windows runner) and will follow in a patch.
What's new (0.9.4)
- Windows is now a first-class target in code: native locking, process-liveness
checks, DACL-restricted token persistence; an npm platform package. - Path handling across the Windows boundary: canonical chunk refs, config/lookup/
manifest paths, and the reports filter normalized to forward slash; the\\?\
verbatim prefix is stripped at the singlecanonicalizesource. - Traversal-guard hardening: catches a bare
..under a Windows verbatim prefix
and on both separators. - Migration extracts Windows drive-letter source paths from legacy bundles.
distribution/npm/sync-version.mjsincludeswin32-x64-gnu.
Verify
Every asset ships a detached GPG .asc and a .sha256:
sha256sum -c aicx-v0.9.4-x86_64-linux-gnu-slim.tar.gz.sha256
gpg --verify aicx-v0.9.4-x86_64-linux-gnu-slim.tar.gz.ascmacOS is Apple-notarized and Developer ID signed — codesign --verify --deep --strict passes.
Install
- macOS: unzip →
./aicx --version(notarized, no Gatekeeper prompt). - Linux (tarball):
tar xzf aicx-v0.9.4-x86_64-linux-gnu-slim.tar.gz && cd aicx-v0.9.4-* && ./install.sh - Linux (Debian/Ubuntu):
sudo dpkg -i aicx_0.9.4-1_amd64.deb
v0.9.3
What's Changed
- Implement intent stages, fix CLI SIGPIPE handling, and release 0.9.3 by @Szowesgad in #19
- Enhance CLI, intents, and session workflows with new features and fixes by @Szowesgad in #20
- Align npm publish Windows asset check with MSVC release artifacts by @Szowesgad with @Copilot in #22
New Contributors
- @Szowesgad with @Copilot made their first contribution in #22
Full Changelog: v0.9.2...v0.9.3
v0.9.2
What's Changed
- Enhance intents handling with tests, fixes, and new features by @Szowesgad in #14
- fix(release): unblock v0.9.2 signing on all runners + path-aware pre-push by @Szowesgad in #15
- ci(release): fix Windows leg path-resolution (working-directory + custom shell) by @Szowesgad in #16
- ci(release): green all three build legs (windows shell, idempotent deb, tolerant keychain) by @Szowesgad in #17
- ci(release): tolerate python3 stubs and force bash for clean step by @Szowesgad in #18
Full Changelog: v0.9.1...v0.9.2
AICX v0.7.3
Added
- Unified multi-project scope handling across search, intents, semantic index,
MCP, dashboard, and doctor surfaces so operators can narrow to one or more
projects with the same contract everywhere.
Changed
aicx storeprogress output is now bounded and human-readable: structured
progress ticks remain machine-parseable while interactive terminals keep a
stable three-line status view instead of flooding logs.
Fixed
- Gemini JSONL extraction now treats
.jsonlfiles as session transcripts,
preservingsessionIdmetadata and allowingaicx allto ingest Gemini
sources alongside Claude, Codex, Junie, and CodeScribe. - Junk corpus bucket slugs are covered so malformed or placeholder project
names no longer leak into canonical project grouping.
aicx v0.7.0
Added
- Context Corpus Contract for immutable
loct-context-packprism packs: sidecars now carryartifact_family,schema_version,truth_status,learning_use,keywords, andcontent_sha256;aicx ingest --source loct-context-pack <PACK_DIR>retains packs under$HOME/.aicx/context-corpus/...withindex.jsonl. aicx storewrites content hashes into sidecars and skips duplicate chunk bodies in the target bucket;aicx doctor --check-dedupreports duplicate content hashes across the live store and context corpus.aicx doctorsurfaces the context-corpus state as a first-class check (context_corpusfield onDoctorReport): reportsempty (will be created on first ingest)when the directory is absent,empty (no batches yet)when the tree exists but holds no chunks, or aN chunks across M batch(es) / R repo(s)summary when populated. Operators no longer need tols ~/.aicx/context-corpus/to confirm corpus existence.- New operator documentation
docs/CONTEXT_CORPUS.mdcovering the immutable-corpus contract: ingest source semantics,~/.aicx/context-corpus/<org>/<repo>/<date>/loct-context-pack/<batch>/{raw,sidecars,index.jsonl}retention layout, sidecar schema fields (artifact_family,schema_version,truth_status,content_sha256,keywords), immutability filter behavior (aicx intentsand live-truth semantic indexes excludeExample-role chunks), and the parallelcontext-corpus.embeddings.ndjsonmaterialization namespace. Cross-linked fromSTORE_LAYOUT.md,COMMANDS.md, andREADME.md. - 9-type intent taxonomy (
EntryTypeenum): Intent, Why, Argue, Decision, Assumption, Outcome, Result, Question, Insight — replaces the flat 4-kindIntentKind. - Intent entry state machine (
EntryStateenum): Proposed → Active → Done/Superseded/Contradicted with explicit lifecycle transitions. - Typed link graph (
LinkType+Link): DerivedFrom, Supersedes, Verifies, Contradicts, Supports, ResultsIn, Answers, LinksTo — first-class relations between intent entries. IntentEntrystruct intypes.rswith stable deterministic IDs, confidence scoring, topic tags, and cross-project linking.classify_chunk_entries()— per-chunk classifier covering all 9 types with marker-based and NL-pattern heuristics; abstain-first (confidence < 0.5 = skip).- Session-level post-processing: unresolved intent detection (7-day threshold), supersedes chain detection (same topic, newer date), contradicted assumption detection (Result + failure words), insight-to-source
DerivedFromlinking (top-3 in session). intent_entriesfield onChunkMetadataSidecarfor sidecar-level intent storage (backward compatible: empty Vec default).aicx migrate-intent-schemaCLI subcommand with--dry-run(default) for classification count reports per-type and per-project.- 25 new unit tests: 20 classifier tests (per-type + abstain + all-9 chunk + deterministic IDs + tag inference), 5 session-level tests (supersedes, contradicted, insight linking, unresolved threshold, recent not tagged).
Changed
aicx intentsand semantic index writes exclude immutableloct-context-packexamples from the live-truth namespace; context-corpus embeddings materialize to a separatecontext-corpus.embeddings.ndjsonnamespace.- Operator surface wording: "push" → "materialize" in CLI help text, progress messages, and doc comments to reinforce the two-layer mental model (canonical corpus first, semantic materialization second).
- Semantic compatibility validation now detects stale metadata even when no documents exist yet in the memex index; reports diverged fields explicitly.
- Compatibility validation runs before file scanning in
memex-sync, failing fast on config mismatches. claude,codex,all, andstorenow use watermark-tracked incremental refresh by default.--full-rescanis the explicit escape hatch for backfills, while legacy--incrementalis accepted as a hidden no-op with a deprecation notice.aicx dashboardnow owns both static HTML generation and live serving.dashboard-serveis kept as a hidden compatibility shim while public help/doc surfaces point toaicx dashboard --serve, including explicit--allow-cors-originspolicies for non-loopback binds and--bgbackground launch.aicx reports-extractoris renamed toaicx reports, with default HTML output moved under~/.aicx/to avoid polluting the current working directory.
Fixed
- Test isolation: source extraction tests use unique temp directories per test to prevent cross-test interference on parallel runs.
Artifact note
aicx-v0.7.0-aarch64-apple-darwin-slim-unsigned.tar.gzis the installer-compatible macOS arm64 bundle with adjacent SHA-256 checksum.aicx-v0.7.0-aarch64-apple-darwin-slim-signed.zipcontains Apple Developer ID codesigned binaries foraicxandaicx-mcpwith hardened runtime. Notarization is not attached because Apple notary returned HTTP 403: a required Apple Developer agreement is missing or expired.
aicx v0.6.5
What's in 0.6.5
- noise filter rollout — sentence-aware truncation, signal-block coverage, sidecar counter, doctor
noise_healthmetric, opt-out via--no-noise-filterand config - intents engine — dedup truth + metadata-noise filter; richer 9-type intent taxonomy + typed link graph + session-level post-processing
- extract command — session-mode for grouped session extraction
- Oracle provenance + readiness reporting — surface verifier signal +
aicx doctorhealth metric extension - corpus protection — source-truth invariants + repair manifests
- release flow — new
release-bundle-only-binariesMakefile target produces unsigned tarballs for thevibecraftedfoundations bundler chain
Install
Direct binary (recommended on macOS arm64)
curl -fsSL -o aicx-v0.6.5-aarch64-apple-darwin-slim-unsigned.tar.gz \
https://github.com/Loctree/aicx/releases/download/v0.6.5/aicx-v0.6.5-aarch64-apple-darwin-slim-unsigned.tar.gz
shasum -a 256 -c <(curl -fsSL https://github.com/Loctree/aicx/releases/download/v0.6.5/aicx-v0.6.5-aarch64-apple-darwin-slim-unsigned.tar.gz.sha256)
tar -xzf aicx-v0.6.5-aarch64-apple-darwin-slim-unsigned.tar.gz
./aicx-v0.6.5-aarch64-apple-darwin-slim-unsigned/install.shThe bundle is unsigned — macOS Gatekeeper will require explicit allow on first run. A signed + notarized variant lands via make release-bundle KEYS=... for users who maintain their own signing keys.
Via vibecrafted foundations installer
curl -fsSL https://vibecrafted.dev/install.sh | bashThe foundations installer in vibecrafted resolves this asset automatically (AICX_REPO=Loctree/aicx).
Notes for cargo install users
aicx 0.6.0 on crates.io remains available but is architecturally constrained — the current source tree binds directly to a local rust-memex workspace that is not (yet) on crates.io, so we do not publish 0.6.5 to crates.io. New users get the latest aicx via this GH release; users who pinned 0.6.0 from crates.io continue to work but will not receive 0.6.5 features without switching install path.
Sha256
Captured in the .sha256 sidecar attached to this release.
Authored-By: claude agents@vetcoders.io