wayfinder_cli 0.2.0
wayfinder_cli: ^0.2.0 copied to clipboard
Local OKF validation, knowledge indexing and semantic search.
Unreleased #
- BREAKING: MCP
searchand default CLI textwayfinder searchnow return structured Markdown (## Matchesand## Related Context) with<path>:<lineStart>-<lineEnd>citations, single-line concept metadata, and resolvedsourcesentries instead of the JSON search payload. Callers that require machine-readable JSON must usewayfinder search --output=jsonor remain on0.2.0. - Fix
wayfinder mcpcommand dispatch to use the server's persistent retrieval service instead of the one-shot CLI default. Preserve explicit Dart knowledge factory overrides and ordinary one-shot command behavior. - Reuse parsed snapshots across bundles in persistent MCP services when each canonical index directory, generation, and reread complete JSON text are unchanged. Cap retained JSON at 64 MiB UTF-8 with LRU eviction; larger records bypass the cache. Preserve source freshness, per-call store closure, exact search output, and one-shot CLI behavior. Failures, missing records, and disconnect clear the entry.
- BREAKING: Search is dense-only. Remove CLI
--mode(including dense) and MCPmode. Retired inputs are rejected explicitly; unsupported MCP fields are not silently discarded. Every actual search requires the verified local encoder and compatible vectors; there is no model-free fallback. Existing compatible saved indexes need no rebuild solely for this cutoff. Model/input identity, snapshot format, context behavior, and bundle/Profile rules are unchanged. - Reuse a lazy encoder across serialized MCP retrieval calls. Preserve source freshness and per-bundle locks; evict on failure and dispose on disconnect.
0.2.0 #
wayfinder mcpwithout a bundle now discovers all configured project bundles, matching CLI project search/index. Search ranks them together with one query embedding, a global limit, and bundle-aware citations; index refreshes them all. Validate and graph return independent reports underbundles, with each validation report keeping its own gate andexit_code. No implicit indexing or partial search results are introduced. Explicitmcp <bundle>launches retain their result shapes;WAYFINDER_KNOWLEDGE_DIRremains an explicit single-bundle override. The plugin and newsetupentries default to project mode. Existing entries needwayfinder setup --forceand a host restart; unset the environment override for project-wide search. Bundles and Profile package formats are unchanged.- Requires
ack^1.7.0andwayfinderandwayfinder_embeddings^0.2.0. - The
wayfinderandokfpHomebrew formulas are removed frombtwld/homebrew-tap.wayfinder updatetells a Homebrew installation the formula was removed and to reinstall with the install script. setup --session-hooksadds project-local, context-only startup hooks for Claude, Codex, and Gemini and anAGENTS.mdpointer for Grok. The short bootstrap prompts loadinguse-wayfinderand its related skills; it performs no indexing or network requests. Existing hooks and instructions are preserved.search "<query>"searches all project bundle paths fromwayfinder.json;--bundle <folder-name>optionally filters one. Matches rank across bundles with one query embedding and a global limit, preserving bundle-aware citations.indexwithout a path refreshes the same bundle set. Explicit paths retain their existing behavior and JSON; missing/stale selected indexes still fail search without implicit indexing or partial results.wayfinder getandupgradeinstall the skill of every locked package that names one inskill, from its locked commit, into the project's.claude/skills/<id>/and.agents/skills/<id>/with a.wayfinder-profilemarker, keeping each file's executable bit outside Windows. They never replace or remove a directory without the marker and fail before writing the lock when one is in the way. They remove a marked directory whose Profile no longer ships a skill or is no longer locked, and rewrite nothing when every marker is current. A skill root that a symbolic link at the root or an ancestor places outside the project is never pruned, and it failsgetbefore the lock is written when a locked Profile ships a skill to install there; the message names every such root. Text output lists each skill;--output jsonaddsskillsandremoved_skills.validatereports a missing or outdated copy as thewayfinder/profile-skill-stalewarning without changing the gate.- A project names only the Profile it applies; the package names its parent.
wayfinder getfollows each package'sextends, reading a same-revision parent from the child's commit, composes every chain before it writes the lock, and locks a flatpackagesmap with one source per Profile id, itsgit,ref, andpath, resolved to one commit. Two chains that describe one id with different sources failgetnaming both sources, even when they resolve to the same commit. Run twice with nothing changed,getfetches nothing and leaves the lock's bytes alone. A lock in the oldprofilesshape is rewritten.get --output jsonreportspackagesinstead ofprofilesand dropsdirect. Validation selects through the resolver'sselect, which never fetches and reports each failure as one diagnostic, including a lock whose chain, release or parent disagrees with the cached package, or whose selected package records anothergit,reforpaththan the configuration. wayfinder getreads each configured source'swayfinder-profile.jsonas a format 2 package and composes the chain before writing the lock, so a package this engine cannot read, or a chain that does not compose, failsgetwith the reason and leaves the lock untouched. Awayfinder.jsonkey is the package id, in kebab-case, and the package must declare that id. Bitwild isbitwild-profileatprofiles/bitwild; no chain has to reach it. The runtime archive no longer shipsprofile/.wayfinder validateand MCP validation of a 2026.2 bundle, or any bundle with nowayfinder.jsonabove it, reportwayfinder/config-missingwith the ProfileNOT ASSESSEDand gateINCOMPLETE, exiting 2. An in-bundleprofile.mdno longer selects a Profile. Stay on wayfinder 0.1.x to keep validating a 2026.2 bundle unchanged, or migrate it to awayfinder.jsonbinding. The runtime archive no longer ships the 2026.2 Profile snapshot. The worked example moved toexamples/bitwild, awayfinder.jsonproject whose bundle isexamples/bitwild/knowledge; runwayfinder get examples/bitwildbefore validating it.wayfinder validateand MCP validation end with one derived gate,PASS,FAILorINCOMPLETE, exiting 0, 1 or 2, and list the engine'swayfinder/*diagnostics beside the findings. A run that could not assess everything, such as an unresolved Profile source or a link graph that cannot be built, isINCOMPLETEand neverPASS. JSON dropsjudgment_rulesandautomated_gate. With--output jsonorsarif, a run that stops still prints a result carryingwayfinder/internal-error.wayfinder getdecodes the Profile manifest and rule catalog thatgit showprints as UTF-8, so a non-ASCII character such as§no longer comes back as§on Windows.wayfinder validateand MCP validation report what Profile 2026.3 permits, such as an unresolved planned link, as summary entries: JSONprofile.summary, a textSummary:block, and SARIF informational results. They never change the gate or the exit code. The resolver rejects a composed binding that declares a tag equal to a type, status, trust tier, or relationship name.wayfinder graphand the MCPgraphtool add each concept's typedrelationshipsfrontmatter entries beside okf's graph. JSON keeps every okf key and adds afield_edgesarray; Mermaid and DOT label each added edge with its relationship name, quoted in Mermaid so a name containing|still parses. Search expansion follows the same relationships, before untyped body links, and a context hit reached through one carries itsrelationshipname. Saved indexes stay compatible.- Project bindings accept
relationships, declared liketags, and the resolver composes them throughextendswith the same collision checks. wayfinder validate --fixwrites okf's generated indexes for a Profile 2026.3 bundle, then validates. It writes only index files that differ, never writes a 2026.2 bundle or one that fails OKF, and says which applied.wayfinder validateand MCP validation recognize configured Bitwild Profile 2026.3 bundles; CLI validation accepts--configfor an explicit project file. Both validate read-only from a current lock/cache;getandupgradeare the explicit fetching and lock-writing commands. Graph, index, and search do not resolve unused Profile sources. Legacy 2026.2 bundles remain supported.index --detachruns one background index per machine; while one runs, it reports that and starts nothing. A background index stops after 30 minutes or once its bundle directory is removed. The git hooks fromsetup --hooksskip file checkouts, new clones and worktrees, and changes that leave the bundle alone; rerunwayfinder setup --hooksto update existing hooks.setup --hooksno longer adds Claude Code and Codex Stop hooks, which indexed after every agent turn in every workspace. Rerunning it removes the Stop hooks earlier releases added and keeps every other hook; search still reports a stale index, and the MCPindextool refreshes it.
0.1.2 #
- Refresh the plugin and authoring skills so they copy OKF §5 inline frontmatter and refuse a silent Profile release change.
- An unsupported Profile release is reported as
NEEDS HUMAN, not a 2026.2 judgment failure. Graph CLI filters match the MCP graph tools.
After upgrading, run wayfinder update so the plugin and skills refresh.
Existing 2026.2 bundles stay conformant. Profile validation, the embedding
model, the ObjectBox schema, and index configuration are unchanged.
0.1.1 #
- Recover oversized separators and identifiers without aborting bundle indexing
or editing source files, using
wayfinder_embeddings0.2.0. - Report oversized-input recoveries as structured
warningsin completed/current CLI JSON and MCP index results, and escaped stderr warnings in text mode. - Replay persisted warnings without loading the model, including foreground calls after detached completion; detached status acknowledgements are unchanged.
- Bump application index configuration to 3 for lossless splitting and conditional context omission. Existing indexes require one rebuild; source bundles need no edits.
- Harden the public installers' platform and input validation before network access, including an explicit error for unknown Windows architectures.
After upgrading, run wayfinder index <bundle> once before searching. JSON
consumers must allow the additive warnings field. Profile validation, the
embedding model, and the ObjectBox schema are unchanged.
0.1.0 #
- Report Profile 2026.2 and depend on
okf^0.5.0.wayfinder validateprintsProfile 2026.2and treats a bundle declaring2026.1as an unsupported release. Date-only timestamps surface as okf's non-blockingokf/timestamp-without-offsetadvisory and leave the gate passing.
0.0.4 #
wayfinder graph <bundle>prints the bundle's OKF relationship graph as JSON, Mermaid or DOT, filtered by type, path prefix or link resolution. MCP clients get a read-onlygraphtool.- Native installs also report
sourcespaths that resolve to nothing as validation advisories, and no longer treat adjacent footnote references ([^a][^b]) as a missing-source error. The pub.dev package gains both with the nextwayfindercore release.
0.0.3 #
-
Homebrew installations are directed to the install script because the formula is no longer updated.
-
wayfinder indexreturns without loading the model when the saved index already matches the bundle, and reportscurrentin JSON output. -
index --forcediscards the saved index and re-embeds every passage. -
index --detachreturns at once and indexes in the background only when the bundle changed. -
wayfinder setup --hooksrefreshes the index after Claude Code and Codex turns and after git pulls, checkouts and rebases.
0.0.2 #
wayfinder skills install|status|removeinstalls the bundled agent skills for Claude Code, through thewayfinderplugin when theclaudeCLI is available, and for~/.agents/skillsreaders such as Codex.wayfinder setupadds the Wayfinder MCP server to a project's.mcp.json.wayfinder updateupgrades installer-managed runtimes and refreshes skills and the plugin. Interactive commands mention a newer release at most daily.- Native bundles include the skill family.
0.0.1 #
Application moves from wayfinder to wayfinder_cli. The executable remains wayfinder, including MCP. Core validation comes from wayfinder; native installs no longer require okfp.
Changelog #
0.0.1-dev.1 #
- Use the
wayfinder_embeddingspackage for retrieval. - Preserve saved indexes across the library rename; write compatible schema markers.
- Support
WAYFINDER_EMBEDDING_MODELwhile retaining the legacy override. - Align package setup, native builds and documentation with Wayfinder naming.
0.0.1-dev.0 #
- Validates explicit local OKF bundles through the existing OKF Profile checks.
- Indexes and searches bundle passages using verified local embeddings and persistent ObjectBox storage, preserving original citations.
- Reuses compatible vectors and rejects stale or incompatible indexes.
- Serves validation, indexing, and search over MCP stdio.
- Keeps contextual Profile judgment explicitly unassessed by automated checks.
Indexing and search require separately prepared model weights and native libraries. The Dart package does not include the complete native runtime bundle.