Skip to content

ContextLattice v3.15.0 - The Graph Earns Its Keep

Choose a tag to compare

@sheawinkler sheawinkler released this 12 Jul 09:29
ee3e325

ContextLattice v3.15.0 - The Graph Earns Its Keep

A graph is not intelligence because it stores edges. It earns that name when it
recovers evidence ordinary ranking misses, fits inside the prompt budget, and
proves the gain without hiding a regression. v3.15 closes that loop.

What changed

  • Added contextlattice_memory_graph_repair, a CLI-first, dry-run-default repair
    lane with exact project confirmation and a hard cap on new edges per run.
  • Reordered deterministic repair around the strongest identity signals:
    explicit references, session continuity, same-topic evidence, then opt-in
    inferred relationships.
  • Made repeated repair batches scan past existing edges and report bounded
    forward progress instead of stalling behind an already-connected prefix.
  • Added explicit graph-neighbor holdouts with separate direct seed and graph
    target expectations.
  • Split direct-recall health from graph efficacy. Ordinary direct cases no
    longer dilute the graph denominator.
  • Required graph targets to resolve to durable memory and hydrate into bounded,
    token-budgeted evidence. A dangling edge cannot pass the gate or enter a
    Context Pack as useful graph context.
  • Added skill_retirement.v1 and contextlattice_skill_retire for terminal,
    immutable, non-destructive retirement of inactive Skill Foundry drafts.
  • Serialized draft, evaluation, export, and retirement lifecycle mutations so a
    terminal retirement cannot race another public Foundry transition.
  • Added interrupted-append recovery: a persisted retirement tombstone remains
    authoritative even if the process stops before the terminal draft snapshot is
    appended.

The boundary

  • Repair writes are project-scoped and bounded. Inferred scoring remains opt-in.
  • Graph efficacy does not call a model and does not treat an edge pointer as
    evidence.
  • Direct recall must remain healthy when graph efficacy is evaluated.
  • Draft retirement deletes nothing, installs nothing, and mutates no active
    runtime behavior.
  • Retirement changes Foundry draft history only; it never uninstalls or deletes
    a separately installed skill.
  • No MCP tool was added, so lifecycle hygiene and graph operations do not inflate
    every agent's tool surface.

Try it

Audit first, then apply one bounded repair batch:

contextlattice_memory_graph_repair --project my-project --pretty
contextlattice_memory_graph_repair \
  --project my-project \
  --write \
  --confirm-project my-project \
  --max-writes 500 \
  --pretty

Build graph-aware holdouts and require direct recall plus positive hydrated
graph lift:

contextlattice_memory_graph_efficacy \
  --refresh-cases \
  --project my-project \
  --graph-max-cases 3 \
  --pretty

Retire a temporary or superseded inactive Foundry draft without deleting its
proof:

contextlattice_skill_retire \
  --draft-id <draft-id> \
  --operator <identity> \
  --reason "temporary proof completed" \
  --pretty

The reproducible baseline, holdout design, economics, and live verification
record are in docs/evals/v3.15-graph-efficacy-foundry-retirement.json.

Proof, not graph theater

  • Two scoped repair runs wrote 15,258 high-confidence deterministic edges,
    rejected 29,997 below-gate candidates, and reached zero remaining writes on
    an idempotence pass.
  • The durable store restarted with all 39,495 edges loaded and zero policy
    skips.
  • Direct recall stayed healthy at recall@5 1.0 and MRR 1.0. Three explicit
    graph holdouts then recovered three hydrated targets absent from direct
    top-K, producing measured graph lift 1.0.
  • The Foundry smoke draft retired once, replayed idempotently without another
    write, and remained retired after restart. No evidence was deleted and no
    active runtime was mutated.