Skip to content

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 27 Sep 20:31
· 24 commits to develop since this release
v0.4.4
007ab43

Release v0.4.4: Metadata Mutation Parity, Core Decoupling & Drift Validation Fix

Release v0.4.4 establishes full metadata mutation parity across CLI and MCP interfaces, decouples MCP server and Hub synchronization operations into dedicated core packages, encapsulates CLI subcommands inside internal/cli, introduces generic frontmatter --filter AST evaluation and temporal staleness horizons (--stale-within), and fixes a drift validation false positive for non-bare relative parent index links.


1. Metadata Mutation Parity for CLI and MCP (#38, #39)

  • CLI Mutation Parity:
    • okf update: Registered and handled --type, --status, and --tags flags with explicit replacement semantics.
    • okf create: Added --status flag (defaulting to stable per OKF v0.2 invariants).
    • Explicit tag clearing: Passing --tags "" clears existing concept tags; omitting --tags preserves them.
    • Upfront CLI input validation: Validates non-empty concept types and strict lifecycle statuses (draft, stable, deprecated).
  • MCP Mutation Parity:
    • okf_create: Exposes optional status (defaults to stable) and searchable tags (string array).
    • okf_update: Exposes type, status, tags, title, description, body; passing an empty tags: [] array clears tags.
    • Tag Length Boundary: Enforces a clean 50-character limit (maxLength: 50) per tag across schemas and handlers.
  • Test Coverage: Added CLI regression tests in internal/cli/mutate_test.go and MCP lifecycle mutation suites in pkg/okf/mcp_test.go.

2. Core MCP & Hub Decoupling with Modular CLI Package

  • Package Architecture Refactoring:
    • Decoupled embedded stdio MCP server from cmd/okf into reusable pkg/okf package.
    • Decoupled Hub vault operations and remote reconcile sync engine into pkg/sync.
    • Encapsulated command routing, argument parsing, and subcommand dispatching into internal/cli, reducing cmd/okf/main.go to a lean entrypoint.
  • SaveOptions & API Ergonomics: Introduced clean okf.SaveOptions and HubOp structures for deterministic programmatical bundle interactions.

3. Query Filter AST & Temporal Staleness Engine

  • Generic Frontmatter Query Filters (--filter):
    • Implemented AST-based expression evaluator in pkg/okf/filter.go supporting comparison operators (=, !=, <, <=, >, >=), regex matches (=~), and array containment (contains).
    • Integrated --filter "<expr>" into okf search for precise semantic slicing across frontmatter keys.
  • Temporal Horizon Staleness Engine (--stale-within):
    • Added --stale-within <duration> to okf validate, projecting forward review horizons against stale_after dates.

4. Drift Validation Link Resolution Fix (#41)

  • Semantic Link Target Resolution:
    • Replaced naive substring matching in pkg/okf/validator.go with deterministic linkRegex parsing and canonical b.ResolveLink resolution.
    • Fully supports bundle-absolute (/decisions/foo.md), dot-relative (./foo.md), and anchored (foo.md#section) links in directory index.md files without false-positive drift warnings.
  • Regression Testing: Added comprehensive index link variant tests in pkg/okf/validator_parent_index_test.go.

5. Community & Integrations (#40)

  • StackMap Curated Graph Inclusion: Added curated AI stack knowledge graph verification badge to README.md.

Community & Special Thanks

  • Denis Samatov (@denis-samatov): Full implementation and regression test suite for CLI and MCP metadata mutation parity (#38, #39).
  • Rogelio (@rogeliodh): Detailed bug report, reproduction steps, and root-cause analysis for missing CLI/MCP metadata mutation flags (#38).
  • Alvise (@alvistar): Detailed bug report and reproduction for drift validation false positives with bundle-absolute and dot-relative index links (#41).
  • StackMap (@hoghweed): Inclusion of OKF Agent Memory in the curated open-source AI stack map (#40).

Pre-Built Binaries

Pre-compiled standalone binaries for macOS, Linux, and Windows are available in the release assets on GitHub:

  • macOS (darwin/arm64, darwin/amd64)
  • Linux (linux/amd64, linux/arm64)
  • Windows (windows/amd64, windows/arm64)

Full Changelog

See commits between v0.4.3...v0.4.4 on GitHub.