v0.4.4
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--tagsflags with explicit replacement semantics.okf create: Added--statusflag (defaulting tostableper OKF v0.2 invariants).- Explicit tag clearing: Passing
--tags ""clears existing concept tags; omitting--tagspreserves them. - Upfront CLI input validation: Validates non-empty concept types and strict lifecycle statuses (
draft,stable,deprecated).
- MCP Mutation Parity:
okf_create: Exposes optionalstatus(defaults tostable) and searchabletags(string array).okf_update: Exposestype,status,tags,title,description,body; passing an emptytags: []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.goand MCP lifecycle mutation suites inpkg/okf/mcp_test.go.
2. Core MCP & Hub Decoupling with Modular CLI Package
- Package Architecture Refactoring:
- Decoupled embedded stdio MCP server from
cmd/okfinto reusablepkg/okfpackage. - Decoupled Hub vault operations and remote reconcile sync engine into
pkg/sync. - Encapsulated command routing, argument parsing, and subcommand dispatching into
internal/cli, reducingcmd/okf/main.goto a lean entrypoint.
- Decoupled embedded stdio MCP server from
- SaveOptions & API Ergonomics: Introduced clean
okf.SaveOptionsandHubOpstructures 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.gosupporting comparison operators (=,!=,<,<=,>,>=), regex matches (=~), and array containment (contains). - Integrated
--filter "<expr>"intookf searchfor precise semantic slicing across frontmatter keys.
- Implemented AST-based expression evaluator in
- Temporal Horizon Staleness Engine (
--stale-within):- Added
--stale-within <duration>tookf validate, projecting forward review horizons againststale_afterdates.
- Added
4. Drift Validation Link Resolution Fix (#41)
- Semantic Link Target Resolution:
- Replaced naive substring matching in
pkg/okf/validator.gowith deterministiclinkRegexparsing and canonicalb.ResolveLinkresolution. - Fully supports bundle-absolute (
/decisions/foo.md), dot-relative (./foo.md), and anchored (foo.md#section) links in directoryindex.mdfiles without false-positive drift warnings.
- Replaced naive substring matching in
- 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.