Skip to content

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 19 Oct 20:44
· 6 commits to develop since this release
v0.6.2

Release v0.6.2: Semantic Index Merging in Hub Sync & Composite Vendor IDF

Release v0.6.2 is a patch release resolving multi-device index.md bookkeeping collisions during hub synchronization, fixing per-bundle IDF distortion across vendor packages in layered BM25 search, supporting numbered Related Concepts headings during relationship mutations, and retiring standalone starter-pack distribution archives in favor of native CLI scaffolding.


1. Bug Fixes & Improvements

Semantic 3-Way Merge for index.md Bookkeeping in Hub Sync (#52, #55)

  • Problem: okf create and okf update automatically rewrite the parent folder's index.md. When two devices or agent harnesses concurrently created different concepts inside the same folder, they modified no common concept file, yet both updated that folder's index.md. Because the reconcile engine previously only auto-merged log.md, the shared index became a same-file collision: the remote index won, the local index was forked to index.conflict-local.md, and the canonical index silently dropped the locally created concept.
  • Resolution: Added MergeIndexContent(base, local, remote) in pkg/sync/index_merge.go and unified bookkeeping conflict resolution under mergeBookkeeping in pkg/sync/engine.go. Each * [Title](file.md) - Description listing line is merged as an independent record keyed by its link target using the persisted base tree from .okf/sync-state.json. Disjoint additions and removals from both sides apply cleanly, edits take precedence over concurrent deletions, and same-listing edits favor the remote version. Non-listing prose and frontmatter are merged as a whole, falling back to .conflict-local.md only when both sides modified the prose differently.
  • Credit: Reported and implemented by @cdcore09 in #52 and PR #55.

Composite BM25 IDF Across Vendor Packages in Layered Search (#54)

  • Problem: SearchLayered (pkg/okf/scope.go) previously executed SearchAdvanced on each vendor bundle individually before merging all vendor hits at priority 70. Because BM25 document frequency (df) and corpus size (N) were computed per bundle in isolation, a vendor package dedicated to a specific topic (where the topic term appears in nearly every concept, $df \approx N$) suffered severe IDF suppression compared to an unrelated vendor package mentioning that term once in passing ($df = 1$).
  • Resolution: Non-shadowed vendor concepts across all installed .okf/vendor/ bundles are now aggregated into a single composite vendor corpus prior to executing SearchAdvanced. N and df are computed uniformly across the entire vendor layer while preserving bundle-relative concept IDs for tokenization and preventing unintended cross-vendor ID shadowing.
  • Credit: Reported with root-cause analysis and reproduction script by @Khouloud-Kessentini in #54.

Numbered Related Concepts Heading Support in Mutations

  • Improvement: Enhanced Markdown section parsing in pkg/okf/mutate.go (isRelatedHeading, AddRelationship, hasRelationship) to recognize arbitrary heading depths (H1–H6), strip leading section numbers (e.g. ## 4. Related Concepts), terminate section bounds accurately on sibling or parent headings, and match both - and * list bullets.

Packaging & Agent Codex Updates

  • Starter-Pack Archive Retirement: Retired standalone okf-starter-pack .zip and .tar.gz release archives (Makefile, .github/workflows/release.yml) in favor of single-command scaffolding via okf bootstrap.
  • AAG Commit Message Guidelines: Codified Conventional Commits constraints (<= 50 char imperative header) in AGENTS.md using Agent Action Grammar (AAG v0.1).

2. Knowledge & Architecture


3. Community & Special Thanks

  • @cdcore09: For reporting #52 and implementing the 3-way per-listing index.md merge in #55.
  • @Khouloud-Kessentini: For diagnosing and reproducing the per-bundle vendor IDF ranking inversion in #54.

4. 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.6.1...v0.6.2 on GitHub.