Skip to content

Releases: Loctree/aicx

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 23:30
8bb3d36

Added

  • Card schema v2 for the canonical store: versioned sidecars
    (schema_version: 2), YAML card.v2 frontmatter 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: ChunkSignals now 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-file content_sha256 verification,
    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: 1 marker, and
    refreshed content_sha256 after the header rewrite.
  • Evidence mode (aicx search --evidence, MCP aicx_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 MCP aicx_intents/aicx_search payloads label claims as
    historical @ session close · not verified by aicx.
  • CLI/MCP search parity: shared fuzzy_search_with_post_filters +
    finalize_fuzzy_results so ordering/limit semantics are identical across
    surfaces; end-to-end parity test.
  • MCP host contract: --host, --allowed-host (repeatable),
    --allow-any-host, HTTP Host-header validation with an explicit
    trust policy, Bearer-auth token cascade documentation, and
    aicx doctor MCP version-pair diagnostics.
  • Operator-markdown imports carry structural provenance
    (source_file/source_format/content-hash import_id); ChatGPT exports
    are dated from their Created header instead of file mtime.

Changed

  • Card readers are header-agnostic (bracket v1 or frontmatter v2) through a
    single shared card_header helper, 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 now Vetcoders <hello@vetcoders.io>.
  • GitHub Actions workflows pin every action to a full commit SHA
    (supply-chain hardening; semgrep github-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-host disables Host validation explicitly (tailnet
    flow) while staying Bearer-gated.
  • CLI pre-parse hints (--source requirement, config --show hint) fire
    only on the top-level subcommand instead of matching anywhere in argv.
  • ~/-prefixed frontmatter cwd values 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

Choose a tag to compare

@Szowesgad Szowesgad released this 22 Jun 17:07
866a82e

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 single canonicalize source.
  • 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.mjs includes win32-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.asc

macOS 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

Choose a tag to compare

@Szowesgad Szowesgad released this 19 Jun 02:02
485cda0

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

Full Changelog: v0.9.2...v0.9.3

v0.9.2

Choose a tag to compare

@Szowesgad Szowesgad released this 12 Jun 13:29
4692d47

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

Choose a tag to compare

@Szowesgad Szowesgad released this 13 May 07:00
44626c0

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 store progress 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 .jsonl files as session transcripts,
    preserving sessionId metadata and allowing aicx all to 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

Choose a tag to compare

@Szowesgad Szowesgad released this 09 May 01:27

Added

  • Context Corpus Contract for immutable loct-context-pack prism packs: sidecars now carry artifact_family, schema_version, truth_status, learning_use, keywords, and content_sha256; aicx ingest --source loct-context-pack <PACK_DIR> retains packs under $HOME/.aicx/context-corpus/... with index.jsonl.
  • aicx store writes content hashes into sidecars and skips duplicate chunk bodies in the target bucket; aicx doctor --check-dedup reports duplicate content hashes across the live store and context corpus.
  • aicx doctor surfaces the context-corpus state as a first-class check (context_corpus field on DoctorReport): reports empty (will be created on first ingest) when the directory is absent, empty (no batches yet) when the tree exists but holds no chunks, or a N chunks across M batch(es) / R repo(s) summary when populated. Operators no longer need to ls ~/.aicx/context-corpus/ to confirm corpus existence.
  • New operator documentation docs/CONTEXT_CORPUS.md covering 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 intents and live-truth semantic indexes exclude Example-role chunks), and the parallel context-corpus.embeddings.ndjson materialization namespace. Cross-linked from STORE_LAYOUT.md, COMMANDS.md, and README.md.
  • 9-type intent taxonomy (EntryType enum): Intent, Why, Argue, Decision, Assumption, Outcome, Result, Question, Insight — replaces the flat 4-kind IntentKind.
  • Intent entry state machine (EntryState enum): 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.
  • IntentEntry struct in types.rs with 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 DerivedFrom linking (top-3 in session).
  • intent_entries field on ChunkMetadataSidecar for sidecar-level intent storage (backward compatible: empty Vec default).
  • aicx migrate-intent-schema CLI 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 intents and semantic index writes exclude immutable loct-context-pack examples from the live-truth namespace; context-corpus embeddings materialize to a separate context-corpus.embeddings.ndjson namespace.
  • 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, and store now use watermark-tracked incremental refresh by default. --full-rescan is the explicit escape hatch for backfills, while legacy --incremental is accepted as a hidden no-op with a deprecation notice.
  • aicx dashboard now owns both static HTML generation and live serving. dashboard-serve is kept as a hidden compatibility shim while public help/doc surfaces point to aicx dashboard --serve, including explicit --allow-cors-origins policies for non-loopback binds and --bg background launch.
  • aicx reports-extractor is renamed to aicx 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.gz is the installer-compatible macOS arm64 bundle with adjacent SHA-256 checksum.
  • aicx-v0.7.0-aarch64-apple-darwin-slim-signed.zip contains Apple Developer ID codesigned binaries for aicx and aicx-mcp with 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

Choose a tag to compare

@Szowesgad Szowesgad released this 06 May 07:35

What's in 0.6.5

  • noise filter rollout — sentence-aware truncation, signal-block coverage, sidecar counter, doctor noise_health metric, opt-out via --no-noise-filter and 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 doctor health metric extension
  • corpus protection — source-truth invariants + repair manifests
  • release flow — new release-bundle-only-binaries Makefile target produces unsigned tarballs for the vibecrafted foundations 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.sh

The 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 | bash

The 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