Skip to content

Releases: forkzero/lattice

v0.2.1

24 May 02:11

Choose a tag to compare

Summary

Adds lattice health — a unified CI gate that combines freshness, change pressure, and code impact into a single PASS/WARN/FAIL verdict.

What's New

  • lattice health — one command, one verdict:
    • Freshness: hours since lattice was updated relative to code
    • Change pressure: contested theses + drift items
    • Code impact: files changed since last lattice update that are bound in implementation nodes (lattice-tracked files)
  • --check exits 2 on FAIL for CI gates; WARN exits 0
  • --format json for automation

Verdict logic

FAIL: pressure + code/time signals together, or high pressure alone (>3)
WARN: any single signal (tracked files changed, stale >72h, or some pressure)
PASS: nothing flagged

Fixes

  • Fixed NodeMeta untagged serde ordering — ThesisMeta was incorrectly matching implementation nodes due to struct-level #[serde(default)]
  • lattice summary now shows message count and contested thesis count
  • Health command loads graph once via build_node_index instead of double-loading

Full Changelog: v0.2.0...v0.2.1

v0.2.0

24 May 01:54

Choose a tag to compare

Summary

Major release adding adversarial debate primitives, persona-specific messaging, and continuous learning foundations. Lattice can now capture structured challenges to strategic positions, track confidence changes over time, and measure change pressure across the knowledge graph.

What's New

Message node type (MSG-*)

  • lattice add message — create persona-specific claims grounded in theses
  • Messages trace back to strategic positions via grounded_in edges
  • Drift-detected when underlying theses weaken — know immediately when messaging is on shaky ground
  • Searchable, listable, and visible in lattice summary

Adversarial debate primitives

  • rebuts edge — thesis directly argues against another thesis (structured debate)
  • concedes edge — thesis acknowledges validity of an opposing point (partial agreement)
  • contested status — signals a thesis is under active challenge; downstream requirements flagged

Confidence tracking

  • Confidence history — audit trail of {value, reason, updated_by, updated_at} entries on theses
  • Research lifecycle fields: last_researched, research_scope, agent_directive

Change pressure assessment

  • lattice assess — compute change pressure from contested theses, confidence shifts, affected requirements, and drift
  • --check flag exits non-zero for CI gates — trigger planning cycles when enough has shifted

Schema versioning

  • Auto-detection on every command — warns if lattice schema is older or newer than the binary
  • lattice migrate (hidden) — upgrades .lattice/ to v0.2.0 schema
  • Handles both directions: "run lattice migrate" or "run lattice update"

What's Changed

  • lattice summary now shows message counts and contested thesis counts
  • New adversarial_debate workflow in lattice help workflows and --json catalog
  • Message node type in concepts block with prefix MSG-*
  • All 3 new edge types documented with semantics in catalog

Fixes

  • Fixed NodeMeta untagged serde ordering — variants with required fields now tried first, preventing silent data loss on thesis metadata
  • Schema version comparison properly handles major.minor (ignores patch)
  • lattice assess uses shared node index instead of double-loading all nodes

Full Changelog: v0.1.26...v0.2.0

v0.1.26

23 May 23:26

Choose a tag to compare

Summary

Fixes a bug where lattice list -s and -p flags were silently ignored, producing unfiltered results regardless of input.

Fixes

  • --status / -s now validates and filters — accepts draft|active|deprecated|superseded, errors on invalid values like deferred with a clear message pointing to valid options
  • --priority / -p now actually filters — was also silently ignored, now filters by P0|P1|P2
  • Improved help text to disambiguate workflow status (--status) from resolution filters (--blocked, --deferred)

Example

$ lattice list requirements -s deferred
Error: Invalid status: deferred. Must be draft, active, deprecated, or superseded

$ lattice list requirements -p P0
(shows only P0 requirements)

Fixes #29

Full Changelog: v0.1.25...v0.1.26

v0.1.25

23 May 23:02

Choose a tag to compare

Summary

Unifies all help output (lattice, lattice --help, lattice help) to show the same grouped, domain-aware display. Subcommand --help (e.g. lattice drift --help) still shows clap's per-command help.

What's Changed

  • lattice, lattice --help, and lattice help now all show the same grouped output:
    • KNOWLEDGE GRAPH — add, get, list, search, edit, resolve, verify, refine, remove, replace
    • HEALTH & ANALYSIS — summary, drift, freshness, lint, diff, plan, export
    • SETUP — init, update, help
  • Integration commands (mcp, prompt, push) hidden from help display (still work)
  • 8 new integration tests covering all help paths, grouped output, hidden commands, topics, and subcommand help

Full Changelog: v0.1.24...v0.1.25

v0.1.24

23 May 19:30

Choose a tag to compare

Summary

Reorganizes CLI help output so the domain model is immediately visible and commands are logically grouped.

What's New

  • Domain summary at the top of --help and lattice help: "sources → theses → requirements → implementations"
  • Grouped command list in lattice help: KNOWLEDGE GRAPH, HEALTH & ANALYSIS, SETUP
  • add subcommands expanded in help: shows add source, add thesis, add requirement, add implementation individually
  • Integration commands hidden from --help: mcp, prompt, push still work but don't clutter the display

What's Changed

  • Commands reordered in --help: graph operations first, then health/analysis, then setup
  • All command descriptions now teach the domain by naming the four node types explicitly
  • lattice help descriptions truncated to first sentence for scannability

Full Changelog: v0.1.23...v0.1.24

v0.1.23

11 May 23:37

Choose a tag to compare

Summary

Adds lattice freshness — a staleness detector that compares the last git commit touching .lattice/ vs code files, for use in pre-commit hooks and CI.

What's New

  • lattice freshness: Shows when lattice and code were last updated, flags if the gap exceeds a threshold
  • lattice freshness --check: Exits with code 2 if stale — use in CI or pre-commit hooks
  • --threshold <hours>: Configurable staleness window (default: 72 hours)
  • --format json: Machine-readable output for dashboards and automation

Example usage

# Pre-commit hook or CI job
lattice freshness --check --threshold 48

# Output when stale:
# STALE: Code updated 2026-03-24 21:19 UTC but lattice last updated 2026-03-17 00:48 UTC (188 hours ago, threshold: 48h)
# exit code: 2

Fixes

  • Fix 4 clippy warnings from Rust 1.93 upgrade (checked_div, redundant into_iter)

Full Changelog: v0.1.22...v0.1.23

v0.1.22

24 Mar 21:25

Choose a tag to compare

Summary

Adds a --compact flag for LLMs that already know the lattice domain model and just need command signatures.

What's New

  • lattice --json --compact: Outputs only command names and parameter specs (name, type, required, description) — no examples, descriptions, concepts, or workflows. ~50% smaller than the full catalog.
  • Also available via lattice help --json --compact

What's Changed

  • v0.1.21 added lattice help concepts and lattice help workflows for human-readable onboarding
  • v0.1.20 added the full enriched catalog (concepts, workflows, structured examples, schema hints, related commands)

Full Changelog: v0.1.21...v0.1.22

v0.1.21

24 Mar 20:58

Choose a tag to compare

Summary

Adds human-readable help topics so users can learn lattice concepts and workflows directly from the CLI.

What's New

  • lattice help concepts: Displays node types (with prefixes), all edge types with semantics and direction, versioning/drift model, and ID naming conventions
  • lattice help workflows: Shows 4 common task-oriented command sequences (capture_decision, check_health, respond_to_drift, record_gap)
  • lattice help now includes a TOPICS section pointing to the new topics
  • Unknown topics produce a clear error with available options

Full Changelog: v0.1.20...v0.1.21

v0.1.20

24 Mar 20:29

Choose a tag to compare

Summary

Enriches the lattice --json command catalog so LLMs can understand the domain model, edge semantics, and common workflows without external documentation.

What's New

  • Concepts block: Node types (with prefixes and purpose), all 10 edge types with plain-English semantics and direction, versioning/drift model, and ID naming conventions
  • Workflows section: 4 task-oriented patterns — capture_decision, check_health, respond_to_drift, record_gap — with step-by-step command sequences
  • Structured examples: Examples now include command + explanation (was bare strings)
  • Output schema hints: Each command includes a one-line hint of its --format json response shape
  • Related commands: Navigation hints between commands (e.g., driftget, edit, summary)

What's Changed

  • All command descriptions expanded with "when to use" guidance
  • 6 new tests validating catalog structure; edge type test validates against canonical EDGE_TYPES constant

Fixes

  • JUnit XML test reporting added for forkzero meta-repo conformance (make test-all)

Full Changelog: v0.1.19...v0.1.20

v0.1.19

17 Mar 01:36

Choose a tag to compare

Summary

Push payload now includes the git remote URL so the app can link back to the source repository.

What's New

  • repoUrl in push payload: lattice push sends the git remote get-url origin value, enabling the app to link to the source repo, files, commits, and PRs

What's Changed

  • Made get_git_remote_url() public for use by the push handler
  • repoUrl is optional — omitted gracefully if no git remote is configured

Full Changelog: v0.1.18...v0.1.19