Skip to content

Releases: Bilal-Junaid-Jiwani/okfsmith

v0.7.0 — native Anthropic backend

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 03 Oct 03:29

Claude, no proxy: --provider anthropic (or just ANTHROPIC_API_KEY) now speaks Anthropic's native Messages API directly.

Added

  • Native Anthropic Messages API backend — system prompts hoisted into the API's native system param, same-role turns merged, text blocks concatenated in order, Anthropic error messages surfaced
  • Provider implication: ANTHROPIC_API_KEY alone (no provider/base configured) selects the native backend
  • Provider-scoped key chain: --api-key → OKFSMITH_API_KEY → ANTHROPIC_API_KEY → legacy OPENAI_API_KEY
  • Default model for the provider: claude-haiku-4-5
  • Docs updated: README, docs/llm.md, providers + changelog pages (site rebuilt)

Full test suite green (937 passed, 25 skipped). Install: pip install okfsmith==0.7.0

v0.6.1

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 01 Oct 16:51

Security + CI reliability release.

Fixed

  • CI audit gate red: dependency security floors. The pip-audit step failed on published advisories:
    • fastmcp 2.13.0.2 (PYSEC-2026-2474, PYSEC-2026-2475, PYSEC-2026-2476, GHSA-rcfx-77hg-w2wv)
    • starlette 0.50.x (PYSEC-2026-161, PYSEC-2026-248, PYSEC-2026-249, PYSEC-2026-2280, PYSEC-2026-2281)
  • Root cause: the old uvicorn<0.32 cap forced pip to resolve the vulnerable fastmcp 2.13.0.2 (fastmcp>=3.2 needs uvicorn>=0.35), and fastapi<0.122 pinned the vulnerable starlette 0.50.x.
  • Fix: floors raised to fastapi>=0.122,<0.143 (pulls starlette>=1.x), uvicorn>=0.35,<0.55, fastmcp>=3.2,<5 (mcp extra). The audit step now upgrades pip itself before running pip-audit, so the runner's own pip CVEs can't fail the gate.
  • CI test matrix red on macOS/Windows. Three platform-specific issues:
    • tests/test_viz.py used a hardcoded $HOME/workspace/projects/okfsmith path that only exists on the dev machine — now uses the in-repo examples/bundles/cs-curriculum.
    • Surrogate/non-UTF-8 filename tests assumed a Linux byte-oriented filesystem; they now skip cleanly on macOS (APFS rejects invalid UTF-8) and Windows (os.fsdecode raises).
    • Real bug found: the text parser did not normalize \r\n line endings, breaking frontmatter/section detection on Windows files. parse_text_file now normalizes CRLF/CR to LF.
    • Unix-only tests (os.mkfifo, /dev/zero) now skip on Windows.

Verification

  • pip-audit: clean, exit 0 ("No known vulnerabilities found")
  • Full test suite: 905 passed, 25 skipped
  • ruff check: clean
  • CLI smoke (init/ingest/validate): OK
  • MCP server: 12 tools registered under fastmcp 4.0.10
  • Dashboard: 38 routes under fastapi 0.142.2 / starlette 1.7.0
  • Wheel + sdist build, twine check: passed
  • Hosted GitHub Actions (Ubuntu/macOS/Windows × Python 3.10–3.13 + audit): all 13 jobs green

Install: pip install okfsmith==0.6.1

okfsmith v0.6.0

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 30 Sep 23:30

Added

  • Similarity-based entity resolution in the extraction pipeline: dedup gains a third branch after exact normalized-title and same-resource match — Jaccard over stemmed title tokens (title_similarity), merging at >= 0.8 with deterministic id tie-breaking. Dependency-free, offline-safe stand-in for the v1 TODO embedding similarity.

Tests

  • 15 new tests in tests/test_extract_similarity.py; full suite: 905 passed, 25 skipped.

PyPI: https://pypi.org/project/okfsmith/0.6.0/

v0.5.2

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 28 Sep 23:20

Fixed

  • Dashboard frontend missing from the PyPI wheel: the 0.5.1 wheel shipped only the dashboard's Python files, so a pip-installed okfsmith dashboard showed the "frontend bundle has not been built yet" placeholder instead of the SPA. [tool.setuptools.package-data] now includes okfsmith/dashboard/static/* in wheels and sdists, with regression tests (tests/test_packaging.py) guarding every runtime data directory against the same mistake.
  • Stale test_version: tests/test_core_smoke.py::test_version hardcoded "0.3.2" and failed on every release since; it now compares okfsmith.__version__ against the version declared in pyproject.toml.

Install

pip install -U okfsmith

v0.5.1

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 28 Sep 18:18

Fixed

  • Knowledge-graph edge resolution for section concepts: when a document is split into per-section concepts (id doc/section), markdown links in those concepts are relative to the source document, but the resolver treated the id as a file path — so the Explore graph silently dropped edges for interlinked documents. Links now resolve to the target document's primary section concept; genuinely broken links are still marked dead, and closer-scope nested ids still win. Found during demo testing of the v0.5.0 dashboard.

Install

pip install -U okfsmith

v0.5.0 — Web dashboard

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 28 Sep 17:58

Web dashboard

okfsmith dashboard launches a local-first web UI covering all ten product areas — Overview, Ingest, Explore, Temporal, Chat, Validate, MCP, Eval, Doctor, Settings.

  • Drag-and-drop ingest with live parse → chunk → embed → validate → index progress
  • Interactive ECharts-style knowledge graph: cluster-colored circles, labels inside nodes, degree-scaled hubs, edge-to-edge arrows
  • Grounded chat with clickable citations, same 15 provider presets as the CLI
  • Binds only to 127.0.0.1, per-launch token auth, fully offline packaged assets (no CDN)

Full walkthrough with screenshots: https://bilal-junaid-jiwani.github.io/okfsmith/dashboard.html

Install

pip install -U okfsmith
okfsmith dashboard

See CHANGELOG.md for details.

v0.4.1

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 28 Sep 01:59

Fixed

  • Runtime __version__ mismatch: okfsmith --version and the chat startup banner reported 0.3.2 because src/okfsmith/__init__.py was never bumped in the v0.4.0 release commit (only pyproject.toml was). Now __version__ = "0.4.1" everywhere.

Install: pip install -U okfsmith

okfsmith v0.3.0

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 26 Sep 13:24

What's new in v0.3.0

  • Interactive chat: okfsmith chat BUNDLE — Claude Code-style REPL over your knowledge bundle, with [concept-id] citations, slash commands, multi-turn context, and persistent history. Generative via Ollama or any OpenAI-compatible API; extractive fallback with --no-llm (zero setup).
  • Any model, any API key: --provider presets for 15 OpenAI-compatible endpoints (OpenRouter, Groq, Mistral, DeepSeek, Together, Fireworks, DeepInfra, Anyscale, Perplexity, xAI, Gemini, OpenAI, Agent Router, LM Studio, Ollama) on ingest and chat, plus --api-base for anything else. Keys are never displayed or saved.
  • New chat startup UI: Qwen/Claude/Antigravity-style gradient ASCII banner, bundle-aware kb › prompt, ✦ answer markers.
  • Documentation website: full Claude Code-style docs site in docs/, live at https://bilal-junaid-jiwani.github.io/okfsmith/ (GitHub Pages).

Install: pip install okfsmith / upgrade: pip install -U okfsmith

okfsmith 0.2.0

Choose a tag to compare

@Bilal-Junaid-Jiwani Bilal-Junaid-Jiwani released this 26 Sep 06:18

Polish release: honest ingest reporting, C0-control XSS fix, ruff-clean, full test suite green (191 passed), docs corrected. pip install okfsmith==0.2.0