Skip to content

OKF4net 0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Oct 19:15
· 2 commits to main since this release

The headline of 0.7.0 is the interactive okf-render viewer, and okf is now also a dotnet tool.

What is new

  • okf-render sites 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.
  • okf as a dotnet tool: OKF4net.Cli. Pin it in a tool manifest and gate CI with dotnet tool restore then dotnet okf validate. The Native AOT binaries for winget and install.sh are unchanged.
  • A hardening wave.
    • okf verify and okf_verify can no longer be made to print a forged line from a stored timestamp (#123).
    • YamlValue.Equals, GetHashCode and 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-quickstart runs OKF4net.Agents with no LLM endpoint (#5), and OkfDocumentBuilder.SharedUsageWindow writes the shared §5.1 usage_window.

Breaking changes (0.x minor)

  • Frontmatter.RequiredKeys and Frontmatter.RecommendedFields are read-only IReadOnlyList<string> properties, no longer mutable string[] fields (#113). This breaks binary compatibility, and source compatibility for .Length and 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 okf or okf-render prints its usage on stdout and exits 0, as --help does. It used to print on stderr and exit 1. A verb missing a required argument still fails.
  • YamlEmitter refuses, with YamlEmitException, 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.0

Native 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.