Skip to content

aicx v0.7.0

Choose a tag to compare

@Szowesgad Szowesgad released this 09 May 01:27
· 23 commits to main since this release

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.