Repository navigation
The headline of 0.7.0 is the interactive okf-render viewer, and okf is now also a dotnet tool.
What is new
okf-rendersites are interactive. A tree explorer with trust and staleness marks, a Jump to palette (Ctrl+K), a light/dark toggle, a side panel with contents and backlinks, a local neighbourhood graph on every concept page, a global graph page (graph.html) with facets by type, trust, freshness and tags, and a resizable side panel. The Inter, Inter Tight and Space Mono fonts are embedded. Markdown is still rendered client-side behind the same DOM sanitizer, which a jsdom harness now guards in CI. There is no full-text search by design.okfas a dotnet tool:OKF4net.Cli. Pin it in a tool manifest and gate CI withdotnet tool restorethendotnet okf validate. The Native AOT binaries for winget andinstall.share unchanged.- A hardening wave.
okf verifyandokf_verifycan no longer be made to print a forged line from a stored timestamp (#123).YamlValue.Equals,GetHashCodeand the emitter now answer, or refuse cleanly, for any value built in code, where they used to overflow the stack or run out of memory (#158, #189).- A concept cited by 100,000 others no longer takes minutes to load (#148).
- A junction or symlink to a bundle shares the bundle's write lock (#86).
- Smaller additions.
samples/agents-quickstartrunsOKF4net.Agentswith no LLM endpoint (#5), andOkfDocumentBuilder.SharedUsageWindowwrites the shared §5.1usage_window.
Breaking changes (0.x minor)
Frontmatter.RequiredKeysandFrontmatter.RecommendedFieldsare read-onlyIReadOnlyList<string>properties, no longer mutablestring[]fields (#113). This breaks binary compatibility, and source compatibility for.Lengthand element assignment.- The YAML subset has one nesting rule for block and flow, reader and writer: at most 1000 nested collections. Block documents nested 501–1000 deep now load. Documents mixing block and flow past 1000 in total, which used to load, are now rejected. The emitter refuses values nested 1001 deep.
- A bare
okforokf-renderprints its usage on stdout and exits 0, as--helpdoes. It used to print on stderr and exit 1. A verb missing a required argument still fails. YamlEmitterrefuses, withYamlEmitException, a value built in code that reuses collections or long strings past a 16 MiB budget, or whose text would pass 256 MiB characters (#189). Everything the parser returns is unaffected.
Install
dotnet add package OKF4net --version 0.7.0
dotnet tool install -g OKF4net.Cli --version 0.7.0
dotnet tool install -g OKF4net.Mcp --version 0.7.0Native AOT binaries for okf and okf-render are attached below, and winget install Coderise.OKF4net follows once the winget-pkgs moderators merge the update.
Full details: CHANGELOG, 0.7.0.