Changelog
Release history and version notes for GNO
All notable changes to GNO will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.41.1 - 2026-04-07
Fixed
- Fixed sqlite-vec writes to replace existing chunk rows cleanly during re-embed flows, eliminating the duplicate-key warning users could hit after same-model clears or force re-embeds.
- Fixed embedding recovery so GNO now downshifts failed batches, resets disposed embedding ports, and surfaces concrete sample errors plus retry guidance instead of only reporting opaque failed-chunk counts.
0.41.0 - 2026-04-07
Added
- Added embedding compatibility profiles plus safer indexing fallback behavior, including model-aware query/document formatting, batch-to-single-item embed recovery, and batched vector-query embedding in hybrid retrieval.
Changed
- Improved the default Qwen embedding path for both indexing and retrieval while keeping the full retrieval stack intact, and documented the required
gno embed --forceor clear-and-reembed migration path for formatting/profile changes.
0.40.2 - 2026-04-06
Fixed
- Fixed Web UI document layout regressions in the left outline rail, including width blowouts, sticky behavior, and long-title handling in dense note views.
- Fixed local markdown image rendering in Doc View and editor preview by resolving note-relative asset paths against the current document instead of the web root.
0.40.1 - 2026-04-06
Changed
- Updated the release workflow to use
actions/download-artifact@v8inpublish.yml.
0.40.0 - 2026-04-06
Added
- Added collection-scoped embedding ergonomics across CLI, Web UI, API, and MCP, including
gno embed [collection]/gno embed --collection <name>plus collection embedding cleanup actions for stale or all vectors. - Added
gno_clear_collection_embeddingsto MCP so agents can explicitly remove stale or all embeddings for one collection when write tools are enabled.
Changed
- Updated CLI, MCP, Web UI, and skill docs so collection-scoped embed/re-embed/cleanup flows are documented consistently after the default embed-model switch.
0.39.1 - 2026-04-06
Changed
- Clarified the upgrade path after the default embed-model switch to
Qwen3-Embedding-0.6B-GGUF, including the explicitgno models pull --embed+gno embedre-embed step for existing collections.
0.39.0 - 2026-04-06
Added
- Added a new public multilingual markdown benchmark lane for general collections, with vendored FastAPI docs fixtures, same-language and cross-language relevance cases, and committed benchmark artifacts for
bge-m3andQwen3-Embedding-0.6B-GGUF. - Added collection-level embedding cleanup across CLI, Web UI, and API, including stale-vs-all modes and protection for vectors still shared by active documents in other collections.
Changed
- Switched built-in preset embedding models from
bge-m3toQwen3-Embedding-0.6B-GGUFafter it materially outperformedbge-m3on both code and multilingual prose benchmark lanes. - Status/backlog reporting is now model-aware for the active embedding model across CLI, Web UI, SDK, and MCP, so preset/default embed-model changes immediately surface the need to re-embed.
- Preset switching in CLI/Web/API now explicitly tells users when the embedding model changed and embeddings need to be regenerated.
0.38.0 - 2026-04-06
Added
- Added a collection-level model editor in the web UI, including per-role override editing, inherited-vs-overridden effective model display, and code-collection recommendations for the embedding model.
- Added richer collection API payloads plus
PATCH /api/collections/:nameso clients can inspect and update collection-scoped model overrides without hand-editing YAML. - Added
gno collection add --embed-modelso collection-specific embedding model overrides can be set directly from the CLI.
Changed
- Updated CLI, API, configuration, Web UI, troubleshooting, and agent-skill docs to cover collection-scoped model overrides and the follow-up embedding workflow after changing a collection’s embedding model.
0.37.0 - 2026-04-06
Added
- Added a retrieval-quality upgrade pass across BM25 lexical handling, code-aware chunking, terminal result hyperlinks, and per-collection model overrides.
- Added a code-embedding benchmark workflow with canonical, real-GNO, and pinned OSS benchmark slices plus a bounded autonomous search harness for comparing alternate embedding models.
- Added benchmark/result pages and documentation that now recommend
Qwen3-Embedding-0.6B-GGUFas the current code-specialist embedding model for per-collection code overrides. - Added ADRs for BM25 query semantics, code-aware chunking, and collection-model resolution, plus a follow-up Flow epic for more granular path/file-type model resolution.
Fixed
- Fixed BM25 lexical search so quoted phrases, negation, hyphenated technical terms, underscores, and filepath/title/body weighting behave intentionally and are protected by regression tests.
- Fixed CLI retrieval output to emit TTY-only OSC 8 hyperlinks without leaking escape sequences into structured or non-TTY output.
- Fixed code-chunking visibility so
gno doctornow reports the automatic code-aware chunking mode and supported extensions. - Fixed the embedding autoresearch harness so candidate runtime wiring, dual-fixture scoring, and leaderboard/result loading work correctly in the tracked branch/CI path.
0.36.0 - 2026-04-06
Added
- Added a much stronger note command palette experience in the web workspace, including place-aware creation, section-first query results, keyboard navigation that follows visible ordering, and better help/discoverability around note-native actions.
Changed
- Rebalanced the desktop document view rails so metadata and outline stay together on the left, while properties/path and relationship panels live on the right with tighter sticky behavior for long-note reading.
Fixed
- Fixed command palette focus/selection styling so the input no longer inherits the global outline ring and selected items are visually obvious while using arrow keys or narrowing results.
- Fixed command palette result ordering so
cmdkno longer fights the app’s grouped ordering, preventing invisible selection jumps to non-visible items.
0.35.0 - 2026-04-05
Added
- Added workspace-native note authoring flows across the web workspace, including place-aware note creation from Browse, note presets, editor preset insertion, section outline/deep links, and a stronger command palette for note/navigation actions.
- Added reference-aware file operations for editable notes, including move, duplicate, folder creation, refactor warning previews, and shared note/file operation contracts that now span the Web UI, SDK, and MCP surfaces.
- Added new programmatic surfaces for note workflows: REST endpoints for note presets, sections, folder creation, file refactor planning, move, and duplicate; new MCP write tools for folder/note refactors; and SDK parity for note creation, folder creation, sections, rename, move, and duplicate.
- Added the Scholarly Dusk design-system ADR and linked the new note-workspace epics/tasks to it so future UI work stays visually coherent.
Fixed
- Fixed Windows/macOS path normalization issues so note/file workflows and desktop runtime-layout helpers keep POSIX-stable relpaths/URIs across platforms, unblocking green Windows CI again.
0.34.1 - 2026-04-04
Fixed
- Fixed the desktop release workflows to stop uploading redundant proof-only artifacts, preventing transient GitHub artifact
ENOTFOUNDfailures from sinking otherwise successful macOS packaging runs.
0.34.0 - 2026-04-04
Added
- Added a cross-collection Browse 2.0 workspace with a real tree sidebar, folder detail panes, and tab-scoped browse state restoration.
- Added richer document rendering in the web workspace, including clickable frontmatter links, clickable resolved wiki links in note content, and denser document metadata/frontmatter presentation.
- Added a broad website/content refresh across the homepage, feature pages, docs metadata, FAQ, and comparison pages to better position GNO as a local knowledge workspace for humans and agents.
Fixed
- Improved graph loading by reducing redundant server-side graph work and tuning the client-side graph defaults for faster initial render.
- Improved browser smoke coverage for Browse flows and stabilized the direct-child browse API assertion in tests.
0.33.4 - 2026-04-03
Fixed
- Improved web UI regression coverage with Bun-first DOM interaction tests and a repo-local browser smoke path for search, capture, and document flows.
0.33.3 - 2026-04-03
Fixed
- Fixed the macOS desktop packaging workflow artifact handling so the release-manifest JSON is uploaded from the generated release directory instead of the wrong artifact root.
0.33.2 - 2026-04-03
Fixed
- Fixed the macOS desktop packaging workflow to execute the release script directly in CI and validate the artifact directory in the same step, reducing ambiguity around artifact discovery failures.
0.33.1 - 2026-04-02
Fixed
- Fixed the macOS desktop release workflow so notarized desktop beta artifacts are uploaded from the correct runner paths and can be attached to GitHub releases.
0.33.0 - 2026-04-02
Added
- Added a packaging matrix for CLI vs desktop support on macOS and Linux, including support tiers, artifact guidance, and runtime bundling assumptions.
- Added a repo-local macOS desktop release command for the Electrobun shell that signs, notarizes, staples, and verifies versioned desktop beta zip/DMG artifacts.
- Added a macOS desktop packaging job to the release workflow so tagged releases can build notarized desktop beta artifacts in CI once the release environment is configured.
Changed
- Installation and desktop rollout docs now describe Linux desktop as experimental and macOS desktop as the primary beta target.
0.32.0 - 2026-04-02
Added
- Added
GET /api/jobs/activeso clients can discover the currently running background job without scraping a409error message.
Changed
- Job-conflict
409API responses now include structurederror.details.activeJobIdmetadata.
0.31.2 - 2026-04-02
Fixed
- Browse now uses the available table space more effectively for long note titles, paths, and collection names. Document titles/paths wrap cleanly, and collection chips no longer truncate similarly named collections into unreadable slivers.
0.31.1 - 2026-04-01
Fixed
- Relaxed Windows-only CI assumptions in the desktop runtime-layout tests so path separator differences no longer fail the test suite on
win32. - Increased the Windows timeout budget for the concurrent CLI access regression test, avoiding false negatives from slower process startup on GitHub Actions runners.
[0.31.0] - 2026-04-01
Added
- Added first packaged
windows-x64desktop beta build plumbing, including packaged-runtime validation, Windows packaging workflow coverage, and release-asset support for the Windows desktop zip. - Added explicit Windows support docs covering current target scope, packaged-runtime validation, and manual validation guidance for the desktop beta.
Changed
gno index <collection>now scopes the embedding phase to that collection instead of consuming unrelated global backlog from other collections.- Release automation now publishes the packaged Windows desktop beta zip alongside the normal npm/GitHub release flow.
Fixed
- CLI index summaries no longer divide embed duration by
1000twice, so long embedding runs report realistic times instead of bogus sub-second output.
0.30.0 - 2026-03-27
Added
- Added
gno daemon, a headless continuous-indexing mode that reuses GNO’s existing watcher/sync/embed pipeline without starting the Web UI server.
Changed
- Elevated the in-app workspace presentation across the web/desktop shell path with stronger visual hierarchy, cleaner tabs/footer treatment, and a more intentional dashboard/search/ask aesthetic.
- Clarified product docs around when to use the desktop app,
gno serve, and the new headless daemon mode.
Fixed
- Read-only CLI commands no longer take unnecessary write locks on startup, avoiding transient
database is lockedfailures when they overlap withgno update. gno daemon --no-sync-on-startnow behaves correctly and skips the initial sync pass.
0.29.2 - 2026-03-27
Changed
- Refined the
gno serveworkspace presentation with a more distinctive visual language across the dashboard, tabs, search, ask, footer, and global styling, while keeping the UI fully offline-safe.
0.29.1 - 2026-03-27
Fixed
- Desktop/Web document trashing no longer depends on a separately installed global
trashCLI. GNO now uses built-in platform-aware trash behavior instead. - Trashing a document now reports failure if the document cannot be marked inactive in the index, avoiding false-success UI states that could leave stale search results behind.
0.29.0 - 2026-03-27
Added
- First public
GNO Desktop Betashell naming and rollout surfaces for the mac-first desktop app path. - Full desktop-beta onboarding flow in the Web UI and desktop shell, including folder setup, plain-language preset selection, health checks, bootstrap/runtime visibility, connector center, import preview, app tabs, file lifecycle actions, and recovery history.
- Explicit in-wizard sync progress plus clearer blocked-state handling for first indexing and embedding completion.
Changed
slim-tunedis now the built-in default preset, using the fine-tuned expansion model while keeping the same embed, rerank, and answer models asslim.- Fresh onboarding now skips the model-prep step when the active preset is already ready.
- Desktop shell now exposes standard edit menu actions so paste/select-all work like a normal app.
Fixed
- Collection add no longer throws a false “Collection not found after add” error after successful mixed-case name normalization.
- Fresh sandboxes and alternate runtime launches no longer mis-detect model readiness when
GNO_CACHE_DIRalready points at amodelsdirectory. - No-op
Update Allruns now report a stable up-to-date result instead of flashing away. - Onboarding sync/add flows now trigger embedding immediately when models are ready, preventing the final step from looking stuck after indexing starts.
0.28.2 - 2026-03-23
Fixed
- Updated the validated dev-tooling dependency batch:
@biomejs/biome,@types/react,lefthook,oxlint-tsgolint,playwright, andultracite.
0.28.1 - 2026-03-23
Fixed
- Updated
@modelcontextprotocol/sdkto1.27.1in a narrow follow-up security/maintenance bump after the stale grouped dependency PR failed local validation.
0.28.0 - 2026-03-23
Fixed
gno embednow requests full embedding threads fromnode-llama-cppand uses an adaptive embedding-context pool on CPU-only machines, with graceful fallback when extra contexts cannot be created. Thanks @riyadist for the report and repro details.
0.27.3 - 2026-03-23
Fixed
- Excluded the archived
desktop/electrobun-spikeworkspace from root type-aware lint/typecheck so CI and patch publishes no longer fail on unresolved spike-only Electrobun imports.
0.27.2 - 2026-03-23
Fixed
- Fell back gracefully for unsupported markdown fence languages in the Web UI, including Obsidian-style ````tasks` blocks that previously crashed document rendering with a frontend ShikiError. Thanks @almino for the report.
0.27.1 - 2026-03-22
Fixed
- Normalized created
gno://document URIs to POSIX-style forward slashes on Windows so editable-copy responses and related create flows no longer return backslash-separated URIs.
0.27.0 - 2026-03-22
Added
- Safe document capability metadata across the API, CLI
gno get, SDK, and MCP so callers can distinguish editable markdown/plaintext documents from read-only converted source files. - Read-only handling plus editable-copy creation for converted PDF/DOCX-style documents in the Web UI.
- Deep links for document view/edit routes with source-view line targeting and exact-hit navigation from search results.
- Watch-driven document event streaming for live refresh and external-change awareness in Search, Browse, Doc View, and the editor.
- Wiki-link autocomplete and linked-note creation in both the full editor and Quick Capture.
- A fast
Cmd/Ctrl+Kquick switcher with recent-document tracking and note-creation handoff. - Local editor snapshot history with restore support after save conflicts or mistaken edits.
- Updated skill guidance for editable vs read-only document handling and richer
gno get --jsoncapability metadata.
Changed
- Web/docs/website positioning now describe GNO as a safer markdown-first local workspace for agent-centric teams rather than only a retrieval layer alongside Obsidian.
gno_get/GET /api/doc/ related docs now return richer source metadata and capability metadata.
Fixed
- Preserved deep-link line targets when navigating from document view into edit mode.
- Avoided editable-copy navigation races by waiting for the copied markdown document to become queryable before opening it.
- Removed the ugly quick-switcher focus ring/outline clash from the command input.
0.26.0 - 2026-03-22
Added
- OpenCode and OpenClaw as skill install targets (
--target opencode,--target openclaw). --target allnow installs to all 4 targets (claude,codex,opencode,openclaw).- MCP parameter descriptions on all 19 tools, including clearer usage guidance across roughly 60 parameters.
- MCP tool descriptions with improved usage guidance, async/job polling hints, and ref-format examples.
- Skill documentation for
--since,--until,--exclude,--intent, and--query-mode. - Skill sections for Document Retrieval, Links & Similarity, and search-then-get JSON pipelines.
Fixed
--target allfor skill install/uninstall was previously hardcoded toclaude+codexonly.
0.25.1 - 2026-03-22
Changed
- Expanded the bundled GNO agent skill with missing CLI retrieval flags, structured query mode guidance,
get/multi-getretrieval examples, search-then-get JSON pipelines, and document links/similarity commands for better agent usability.
[0.25.0] - 2026-03-21
Added
- Preset-aware retrieval depth policy across Web, CLI, and MCP:
Balancednow enables expansion onslim/slim-tuned, whileThoroughwidens the rerank candidate pool for best recall. - Explicit model-role split for presets and runtime:
expandnow controls query expansion separately fromgenanswer generation, with updated config/docs, model management UX, and CLI output. - Collection management discoverability and actions across the web UI, including direct
/collectionsnavigation, inline reindex affordances, and clickable collection surfaces that lead into filtered Browse views.
Changed
- Ask/Search preset UI now presents the active preset as a bundle and shows separate expansion vs answer roles instead of implying the retrieval-tuned model is the answer model.
- The live
slim-tunedpreset guidance now pairs the promoted retrieval expansion model with a separate larger answer model.
[0.24.0] - 2026-03-10
Added
- First-class structured multi-line query documents using
term:,intent:, andhyde:across CLIquery/ask, REST/api/queryand/api/ask, MCPgno_query, SDKquery/ask, and Web Search/Ask text boxes. - Dedicated structured syntax reference doc plus updated CLI/API/MCP/SDK/Web docs.
[0.23.0] - 2026-03-10
Added
- First stable SDK / library mode at the package root via
createGnoClient(...), with inline-config and file-backed startup, direct retrieval/document methods, and programmaticupdate/embed/indexflows.
Changed
- Package root now resolves to the SDK surface; the CLI remains available through the
gnobinary and./cliexport. - Added full SDK docs, README coverage, architecture notes, website nav, homepage copy, and a dedicated SDK feature page.
[0.22.6] - 2026-03-10
Fixed
- Stabilized cross-platform research tests by replacing one remaining generated-artifact assertion with direct filtering logic checks.
[0.22.5] - 2026-03-10
Changed
- Updated the main README, CLI examples, docs page, homepage bento, and fine-tuned model feature page to point at the current promoted
slim-tunedretrieval model and Hugging Face install flow.
[0.22.4] - 2026-03-10
Changed
- Updated the public fine-tuned model docs and feature pages to point at the published Hugging Face model, the current promoted slim retrieval preset, and the canonical HF-backed install flow instead of local-only paths.
[0.22.3] - 2026-03-10
Fixed
- Relaxed the autonomous confirmation test so release CI no longer depends on a locally generated repeat-benchmark artifact being committed.
[0.22.2] - 2026-03-10
Fixed
- Made retrieval research tests portable in CI by removing machine-specific absolute paths and using repo-root-relative fixture resolution.
[0.22.1] - 2026-03-10
Fixed
- Included fine-tuning helper libraries and benchmark fixture JSON used by the retrieval research scripts/tests so release CI can resolve the research sandbox correctly on clean machines.
[0.22.0] - 2026-03-10
Added
- Retrieval fine-tuning sandbox now supports real local MLX LoRA training, portable GGUF export, automatic checkpoint selection, promotion bundles, and repeatable benchmark comparisons.
- Autonomous retrieval search harness now supports bounded candidate search, early-stop guards, repeated incumbent confirmation, promotion target checks, and recorded experiment history.
- Published promoted slim retrieval model
gno-expansion-slim-retrieval-v1on Hugging Face, plus canonical release bundle, install snippet, and user-facing fine-tuned model documentation.
[0.21.1] - 2026-03-09
Added
- Reproducible retrieval candidate benchmark harness for local generation bases, including Qwen3.5 comparisons, raw artifacts, and recommendation memo for expansion fine-tuning.
- Manual benchmark scripts/docs for full-path model evaluation across expansion reliability, hybrid retrieval quality, latency, memory, and ask-style smoke tests.
[0.21.0] - 2026-03-08
Added
- CLI
gno ask --query-modeparity with existing Ask API and Web support, including structured mode validation and JSON metadata output.
[0.20.0] - 2026-03-08
Changed
- Upgraded
node-llama-cppto3.17.1and switched runtime initialization tobuild: "autoAttempt"for improved backend selection and fallback behavior.
[0.19.0] - 2026-03-08
Added
- Explicit exclusion filters across CLI, API, Web, and MCP retrieval surfaces for hard-pruning docs by title/path/body terms.
- Ask-side structured query mode parity across API and Web, including validated
queryModespass-through and Ask UI chips.
Changed
- Ask responses now surface structured query mode summary metadata for retrieval debugging and UX confirmation.
[0.18.0] - 2026-03-08
Added
- Explicit
intentsteering for ambiguous retrieval across CLI, API, Web, and MCP query flows. candidateLimitcontrols for hybrid retrieval and ask flows to tune rerank cost vs. recall.
Changed
- Query expansion now uses a bounded configurable generation context (
models.expandContextSize, default2048). - Reranking now deduplicates identical chunk texts before scoring and fans scores back out deterministically.
- Search and Ask web advanced retrieval controls now expose intent and rerank candidate limit.
[0.17.0] - 2026-02-23
Added
- Structured query mode inputs across CLI/API/MCP (
term,intent,hyde) with validation and explain metadata. - Temporal retrieval upgrades: query recency intent detection, explicit/relative date range parsing, and recency sorting with frontmatter-date fallback.
- Frontmatter date-field extraction and date-aware browse sorting (
sortField/sortOrder) in web API and UI. - Logseq link compatibility for alias links (
[text]([[Target]])) and block embeds ({{embed ((block-id))}}).
Changed
- Ingestion now stores richer metadata/date materialization in
documentsfor retrieval-time filtering and sorting. - Web routing now remounts pages on URL changes to keep Browse/Doc views reactive without custom navigation events.
- Documentation/specs refreshed for query modes, temporal filters, API sorting, and retrieval behavior.
Fixed
- Max-bytes enforcement now re-checks file size before read/convert to prevent stale-walker oversize ingestion.
- Link extraction no longer double-counts alias inner wiki syntax in Logseq-style links.
Migrations
- Added migration
006-document-metadata(documents.metadata_json). - Added migration
007-document-date-fields(documents.document_date,documents.date_fields_json) with backfill support.
[0.16.0] - 2026-02-03
Changed
- Improved batch embedding performance -
embedBatch()now processes embeddings concurrently (up to 16 at a time) instead of sequentially, with proper error handling and dispose safety (#64)
[0.15.1] - 2026-02-01
Changed
- Upgrade officeparser 5.2.2 → 6.0.4 (v6 API:
parseOffice().toText()) - Upgrade 23 dependencies including oxlint 1.42.0, oxfmt 0.27.0, node-llama-cpp 3.15.1
Fixed
- Await pager stdin write (caught by new oxlint rule)
[0.15.0] - 2026-02-01
Added
- HTTP backends for remote model servers - Offload embedding, reranking, and generation to remote llama-server instances via OpenAI-compatible APIs (#62) - thanks @Whamp!
- Configure with URI format:
http://host:port/path#modelname - Supports embedding (
/v1/embeddings), reranking (/v1/completions), and generation (/v1/chat/completions) - Enables running GNO on lightweight machines while GPU inference runs on separate servers
- Configure with URI format:
[0.14.3] - 2026-01-14
Changed
- CLI embed verbose errors now include batch titles and root cause
[0.14.2] - 2026-01-14
Added
- Frontmatter metadata grid in doc view and edit preview
Fixed
- Strip frontmatter from markdown preview rendering
- Prevent frontmatter URL overflow in UI
- Stop dev CSS flicker by relying on built stylesheet
[0.14.1] - 2026-01-14
Added
- Verbose embedding errors -
--verboseflag now logs embedding failures to stderrgno index --verboseandgno embed --verboseshow batch failures, count mismatches, and store errors- Helps debug when
gno indexreports errors without details
[0.14.0] - 2026-01-10
Changed
- Walker include fallback - Empty
includenow defaults to supported document types (.md, .txt, .pdf, .docx, .pptx, .xlsx) instead of all files- Prevents “No converter for application/octet-stream” errors when indexing repos with source code
- Extensionless files (Makefile, LICENSE) and dotfiles (.env, .gitignore) are always excluded
- Explicit
includestill overrides the default
Fixed
- Documentation now accurately describes exclude patterns as component-based matching (not globs)
0.13.2 - 2026-01-07
Fixed
- Disable pager in tests and when NO_PAGER/GNO_NO_PAGER is set
Changed
- Clarify release workflow changelog handling
0.13.1 - 2026-01-07
Fixed
- Escape backslashes in markdown table cell output
0.13.0 - 2026-01-06
Added
- Knowledge Graph - Interactive visualization of document connections
gno graph- CLI command with--json,--dot,--mermaidoutput formats--collectionfilter,--similarfor similarity edges,--thresholdcontrol- REST API:
GET /api/graphwith full query parameters - MCP tool:
gno_graphfor AI agents to explore relationships - WebUI:
/graphpage with force-directed layout, zoom/pan, collection filter - Similarity edges shown as golden connections (semantic relatedness)
- Click any node to navigate to that document
- Document Viewer - Enhanced document reading experience
- Outgoing links panel showing wiki and markdown links
- Backlinks panel showing documents linking to current doc
- Related notes sidebar with AI-powered similarity suggestions
- Tooltips for truncated titles in all panels
Fixed
- Wiki link resolution for path-based references
- Right panel title truncation with tooltip on hover
0.12.0 - 2026-01-05
Added
- Note Linking - Wiki-style links, backlinks, and semantic similarity
[[Target]]wiki link syntax with cross-collection support ([[collection:Target]])gno links <docid>- List outgoing links from a documentgno backlinks <docid>- Find documents linking TO a targetgno similar <docid>- Semantic similarity search using embeddings- REST API:
/api/doc/:id/links,/api/doc/:id/backlinks,/api/doc/:id/similar - MCP tools:
gno_links,gno_backlinks,gno_similar - WebUI: OutgoingLinksPanel, BacklinksPanel, RelatedNotesSidebar
- WikiLinkAutocomplete:
[[trigger, fuzzy search, keyboard nav, broken link detection
- Vector Index Maintenance - Fix empty results from
gno similargno vec sync- Fast incremental sync when vec0 driftsgno vec rebuild- Full rebuild of vec0 index- Auto-sync after embed batches when drift detected
- Transaction-wrapped sync for atomicity
Fixed
- vec0 index sync - Vector inserts silently failing no longer leaves index out of sync
- inferDimensions - Filter by model and validate byte alignment
0.11.0 - 2026-01-05
Added
- MCP
gno_embedtool - Generate embeddings for unembedded chunks via MCP- Runs as async background job, poll with
gno_job_status - Offline-only: fails fast if embedding model not cached (no auto-download)
- Returns
{ jobId, status, model }on start
- Runs as async background job, poll with
- MCP
gno_indextool - Full reindex (sync + embed) in single job- Syncs all collections then embeds new chunks
- Optional
collectionparam to limit scope - Optional
gitPullto pull before sync - Returns
{ jobId, collections, phases, status }
- Typed job results - Job status now includes discriminated
typedResultunion{ kind: "sync", value: SyncResult }{ kind: "embed", value: { embedded, errors } }{ kind: "index", value: { sync, embed } }
- Server-side embed scheduler - Auto-embed after sync in web UI
- 30s debounce to batch rapid syncs
- Background embedding with progress in
/api/embed/status - Manual trigger via
POST /api/embed
Fixed
- Embed scheduler notification - Sync/add jobs now properly trigger auto-embed
- Job schemas - Updated
mcp-job-status.schema.jsonandmcp-job-list.schema.jsonfor new job types
0.10.4 - 2026-01-04
Changed
- Skill progressive discovery - Concise SKILL.md overview with links to reference docs (cli-reference.md, mcp-reference.md, examples.md) for reduced context bloat
0.10.3 - 2026-01-04
Fixed
- Markdown title extraction - Files without
# headingnow fall back to filename instead of showing URL-encoded path in UI
0.10.1 - 2026-01-04
Fixed
- Tailwind v4 semantic colors - Add
@themedirective to generatebg-card,bg-muted,text-foregroundetc. utilities (previously silently failing) - Tag autocomplete - Substring matching (typing “fix” now finds “fixtures”), retry on fetch failure, re-filter when tags load
- POST /api/docs URI - Return
gno://URI instead offile://for correct navigation - CodeMirrorEditor - Migrate to React 19 ref-as-prop pattern
0.10.0 - 2026-01-04
Added
- Tag System - Organize and filter documents by tags
- Frontmatter tag extraction during sync (
tags:field in markdown) - Hierarchical tags with
/separator (e.g.,project/web,status/draft) gno tagsCLI commands:list,add,rmfor tag management--tags-any/--tags-allflags on search/vsearch/query/ask for OR/AND filtering- REST API:
GET /api/tagsendpoint, tag filtering params on search endpoints - MCP tools:
gno.list_tagsfor tag discovery,gno.tagfor add/remove - WebUI: TagInput with autocomplete, TagFacets sidebar for filtering, filter chips display
- Frontmatter tag extraction during sync (
0.9.6 - 2026-01-03
Fixed
- SKILL.md frontmatter -
allowed-toolsnow space-delimited per Agent Skills spec
0.9.5 - 2026-01-03
Added
--skillflag for agent discovery -gno --skilloutputs SKILL.md for AI agents to discover capabilities- Follows Agent Skills specification format
- Clean output suitable for piping/parsing
Fixed
- SKILL.md refresh - Updated with ~15 missing CLI commands (serve, models, context, mcp, skill subcommands, doctor, etc.)
0.9.4 - 2026-01-03
Changed
- Default model preset switched to “slim” - Better eval scores (69% vs ~50%), faster inference, smaller download (~1GB)
- Balanced preset still available via
gno models use balanced
- Balanced preset still available via
- Updated model names - slim: Qwen3-1.7B, balanced: Qwen2.5-3B-Instruct, quality: Qwen3-4B-Instruct
Internal
- Evalite v1 evaluation harness (local-only quality gates for releases)
- Fixed
--fullflag ranking order bug in search results
0.9.3 - 2026-01-03
Added
- Shell tab completion - bash/zsh/fish support with commands, flags, and dynamic collection names
gno completion output <shell>- Generate completion scriptgno completion install- Auto-install to shell config
- Automatic pager - Long output piped through
$PAGER(less -R / more)--no-pagerflag to disable- Respects TTY detection and structured output modes
0.9.2 - 2026-01-03
Added
- ThoroughnessSelector on Ask page - Fast/Balanced/Thorough modes with keyboard shortcut (T)
- Skills documentation - New docs/integrations/skills.md with Claude Code, Codex, OpenCode, Amp, VS Code Copilot, and Cursor support
- noExpand/noRerank API params - Added to
/api/askendpoint for search depth control
Changed
- Documentation restructure - Agent integration (Skills, MCP) now prioritized before Web UI in README and website
- Screenshot updates - All webui screenshots updated to .jpg format with new Brandbird styling
Fixed
- react-markdown node prop leak - Prevented
nodeprop from leaking to DOM elements - Table row striping - Increased visibility of alternating row colors in markdown tables
- Em dash removal - Replaced AI-style em dashes with standard punctuation across all docs
0.9.1 - 2026-01-02
Added
- Document Editor Sync Scrolling - Bidirectional scroll sync between CodeMirror editor and markdown preview
- Toggle button (Link/Unlink icons) in toolbar, enabled by default
- Percentage-based position mapping with event-based loop prevention
- Epsilon checks prevent unnecessary updates and jitter
Fixed
- Raycast MCP docs - Fixed deeplinks with correct
mcpServerswrapper format, added clipboard auto-fill JSON
0.9.0 - 2026-01-02
Added
- MCP Write Operations - AI assistants can now manage collections via MCP
gno_capture- Create new markdown documents in collectionsgno_add_collection- Add folders to the index (async with job tracking)gno_sync- Reindex one or all collectionsgno_remove_collection- Remove collection from configgno_job_status- Check async job progressgno_list_jobs- List active and recent jobs
- Write Tool Gating - Disabled by default, enable with
--enable-writeorGNO_MCP_ENABLE_WRITE=1 - Security Protections
- Dangerous root rejection (
/,~,/etc,~/.ssh) with realpath canonicalization - Path traversal prevention (rejects
../escapes) - Sensitive subpath blocking (
.ssh,.gnupg,.git) - Cross-process locking via OS-backed flock/lockf
- Atomic writes (temp + rename pattern)
- Dangerous root rejection (
- Core Modules - Shared utilities for MCP and WebUI
src/core/validation.ts- Path and collection validationsrc/core/file-ops.ts- Atomic file operationssrc/core/file-lock.ts- Advisory file lockingsrc/core/config-mutation.ts- Config change flowsrc/core/job-manager.ts- Async job tracking
- MCP Documentation - Updated docs/MCP.md with all new tools, security model, Raycast write-enabled deeplinks
- Smoke Test Script -
scripts/mcp-write-smoke-test.tsfor MCP validation
0.8.6 - 2026-01-02
Added
- Single-key shortcuts (GitHub/Gmail pattern):
Nnew note,/search,Tcycle depth,?help - HelpButton with scholarly marginalia design (Old Gold accents)
- ShortcutHelpModal redesigned with two-column “Card Catalog” layout
- ThoroughnessSelector for search depth control (Fast/Balanced/Thorough)
- AIModelSelector with “vacuum tube display” aesthetic for Ask page
- Simplified Search page - Thoroughness now controls BM25 vs hybrid modes
Fixed
- Keyboard shortcuts no longer fire when Ctrl/Cmd/Alt held (fixes macOS browser conflicts)
- Shortcuts don’t fire inside dialogs or text inputs
0.8.5 - 2026-01-02
Fixed
- Pre-build Tailwind CSS for npm distribution - runtime plugin fails for global installs
0.8.4 - 2026-01-02
Fixed
bunfig.tomlmissing from npm package - broke Tailwind CSS processing ingno serve
0.8.3 - 2026-01-02
Fixed
- Web UI shortcuts use Ctrl on all platforms (avoids Cmd+N/K browser conflicts on Mac)
- Missing
minimatchdependency brokegno multi-geton npm install - Removed unused
rehype-highlightdependency
0.8.2 - 2026-01-02
Fixed
gno servebroken when installed from npm - moved tailwindcss to dependencies
0.8.1 - 2026-01-02
Added
- AI Answers screenshot in docs (webui-ask-answer.png)
Fixed
- CI publish workflow: removed obsolete
typecheckscript, uselint:check - Screenshot references updated to PNG format
0.8.0 - 2026-01-02
Added
- Document Editor - Split-view markdown editor with live preview
- CodeMirror 6 with syntax highlighting and word wrap
- Auto-save with 2s debounce
- Keyboard shortcuts: ⌘B bold, ⌘I italic, ⌘K link, ⌘S save
- Unsaved changes warning on navigation
- Document CRUD - Full create, read, update, delete via Web UI
PUT /api/docs/:id- Update document contentDELETE /api/docs/:id- Delete document and file- DocView edit/delete buttons with confirmation dialogs
- Collections Management - Add and remove collections from Web UI
- AddCollectionDialog with folder path input
- IndexingProgress component with real-time status
- Re-index action per collection
- Keyboard Shortcuts - Global and editor shortcuts
- ⌘N new note, ⌘K focus search, ⌘/ show help
- ShortcutHelpModal with tactile keyboard key styling
- Platform-aware modifier display (⌘ vs Ctrl)
- Quick Capture - Floating action button for instant note creation
- CaptureModal with title, content, collection fields
- Remembers last used collection
- Shows indexing progress after creation
Changed
- Design Polish - Enhanced visual refinements
- Hero Documents card with gradient and glow
- Card hover lift effects with shadows
- Enhanced glass effect with saturation
- Search input with gradient focus border
- Improved empty states with actionable suggestions
- CaptureButton with pulse glow animation
- Fixed transparent backgrounds in dialogs, dropdowns, selects
- Changed collection remove icon from Trash to FolderMinus
0.7.0 - 2026-01-01
Added
- REST API write operations - Full CRUD for collections and documents
POST /api/collections- Add new collectionDELETE /api/collections/:name- Remove collectionPOST /api/sync- Trigger re-indexPOST /api/docs- Create documentPOST /api/docs/:id/deactivate- Unindex documentGET /api/jobs/:id- Poll job status
- CSRF protection - Origin validation for mutating endpoints
- API token auth -
X-GNO-Tokenheader for non-browser clients
Changed
- Extracted collection CRUD to
src/collection/for API/CLI parity - Config sync with mutex serialization (YAML → DB → memory)
0.6.1 - 2026-01-01
Added
- Auto-download models - Models download automatically on first use (CLI, MCP, Web UI)
- Offline mode -
--offlineflag andHF_HUB_OFFLINE/GNO_OFFLINEenv vars - Cross-process locking - Safe concurrent model downloads with stale lock recovery
0.6.0 - 2026-01-01
Added
- Tiered search modes -
--fast(BM25 only, ~0.7s), default (with reranking, ~2-3s),--thorough(full pipeline with expansion, ~5-8s) - Chunk-level reranking - Reranks best chunk per document (4K) instead of full documents, ~25× faster with same quality
Changed
- Default search now skips LLM query expansion (faster) but keeps reranking (quality)
- Refactored rerank pipeline with extracted helper functions for maintainability
Fixed
- Properly await
store.close()in scripts - Handle
cleanupAndExitpromises to prevent floating promise warnings
0.5.1 - 2026-01-01
Fixed
- Include fts5-snowball binaries in npm package
0.5.0 - 2026-01-01
Added
- Document-level BM25 - Full documents indexed (not chunks), finds terms across sections
- Snowball stemmer - FTS5 with multilingual stemming (20+ languages); “running” matches “run”
- Contextual chunking - Chunks embedded with document title prefix for context awareness
- Strong signal detection - Skip expensive LLM expansion when BM25 has confident match
- Tiered top-rank bonus - +0.05 for #1, +0.02 for #2-3 in RRF fusion
- Full-document reranking - Qwen3-Reranker scores complete documents (32K context)
- Full-document answers - Answer generation receives complete document content
Changed
- Original query now gets 2× weight in RRF fusion (prevents dilution by variants)
- Switched to Qwen3-Reranker-0.6B (Apache 2.0 license, 32K context)
0.4.0 - 2026-01-01
Added
- Web UI - Local web dashboard via
gno serve- Dashboard with index stats and collection overview
- Search page with BM25/hybrid search modes
- Ask page with AI-powered answers and citations
- Document viewer with syntax highlighting
- Browse collections and documents
- Model preset selector with hot-reload
- Model download with progress polling
- REST API - Full HTTP API for programmatic access
/api/search- BM25 keyword search/api/query- Hybrid search (BM25 + vector)/api/ask- AI answers with citations/api/docs,/api/doc- Document listing and retrieval/api/presets- Model preset management/api/models/pull- Model download with progress
- Convenience scripts -
bun run serveandbun run serve:dev
Changed
- Extracted answer generation to shared
src/pipeline/answer.tsmodule - API and CLI now share identical pipeline code
0.3.5 - 2025-12-31
Changed
- README: Comprehensive rewrite with full MCP install commands, feature tables, doc links
- README: Added footer attribution
Fixed
- License badge spacing
0.3.4 - 2025-12-31
Fixed
- CI: Use Node.js 24 for npm OIDC trusted publishing support
0.3.3 - 2025-12-31
Fixed
- CI: Use npm for tarball install test (bun has issues with local tarballs)
0.3.2 - 2025-12-31
Fixed
- CI: Add TTY workarounds to publish workflow
0.3.1 - 2025-12-31
Fixed
- CI: Serial test execution on Windows fixes exit code issue
- CI: TTY workaround for macOS/Ubuntu test output
- CI: Use native Bun ecosystem for Dependabot
Changed
- Use npm trusted publishing (OIDC) instead of tokens
0.3.0 - 2025-12-31
Added
- 10 MCP installation targets (Claude Desktop, Claude Code, Cursor, Zed, Windsurf, etc.)
- LibreChat YAML config support
- Incremental sync (only new/modified files re-indexed)
0.2.1 - 2025-12-31
Added
- MCP Install CLI - One-command setup for AI assistant integration
gno mcp install- Configure gno as MCP server in Claude Desktop, Claude Code, or Codexgno mcp uninstall- Remove gno from MCP configurationgno mcp status- Check installation status across all targets
- Cross-platform support (macOS, Windows, Linux)
- Atomic config writes with automatic backup
- User and project scope support for Claude Code and Codex
0.2.0 - 2025-12-30
Added
- MCP server with stdio transport for AI assistant integration
- Tools:
gno_search,gno_vsearch,gno_query,gno_get,gno_multi_get,gno_status - Resources:
gno://{collection}/{path}document access - Plan for
gno mcp installauto-configuration command - Website: punchy tagline, 8 features in bento grid, theme-aware terminal glow
0.1.0 - 2025-12-30
Added
Core Features
- Hybrid Search Pipeline - BM25 + vector retrieval with RRF fusion
- HyDE Query Expansion - Hypothetical Document Embeddings for better semantic matching
- Cross-encoder Reranking - Two-stage retrieval with reranking for precision
- Multi-language Support - Automatic language detection with BCP-47 codes
CLI Commands
gno init- Initialize a knowledge base with a collectiongno collection add/list/remove/rename- Manage document collectionsgno update- Sync files from disk (no embedding)gno index- Full index with optional embeddinggno embed- Generate vector embeddingsgno search- BM25 keyword searchgno vsearch- Vector semantic searchgno query- Hybrid search with expansion and rerankinggno ask- AI-powered Q&A with citationsgno get- Retrieve single document by referencegno multi-get- Batch document retrievalgno ls- List indexed documentsgno context add/list/rm- Manage retrieval context hintsgno models list/use/pull/clear/path- Model managementgno status- Index status and healthgno doctor- Diagnostics and troubleshootinggno cleanup- Remove orphaned datagno skill install/uninstall/show/paths- Claude Code skill management
Document Processing
- Native Converters - Markdown, plain text, JSON, YAML, TOML, CSV
- External Converters - PDF (pdftotext), Office docs (pandoc), images (tesseract OCR)
- Smart Chunking - Semantic-aware document splitting
- File Walker - Configurable patterns, gitignore support, extension filters
Storage & Indexing
- SQLite Backend - Single-file database with FTS5 full-text search
- sqlite-vec - Cross-platform vector storage and similarity search
- Migrations - Schema versioning with automatic upgrades
- Mirror Cache - Converted document caching for fast re-indexing
AI/ML Integration
- Local Embeddings - GGUF models via node-llama-cpp (no API keys)
- Model Presets - slim (~1GB), balanced (~2GB), quality (~2.5GB)
- Reranker Models - Cross-encoder scoring for result quality
- LLM Abstraction - Pluggable providers (Anthropic, OpenAI, Ollama)
Developer Experience
- Output Formats - JSON, CSV, Markdown, XML, files protocol
- Verbose Mode - Detailed logging with
--verbose - Exit Codes - 0 (success), 1 (validation), 2 (runtime)
- Contract Tests - Schema validation for all outputs
Documentation
- Jekyll Website - Comprehensive docs at gno.sh
- VHS Terminal Demos - Animated CLI demonstrations
- Search Pipeline Guide - Deep dive into HyDE, RRF, reranking
- API Specifications - CLI spec, MCP spec, output schemas
Infrastructure
- Bun Runtime - Fast startup, native TypeScript
- Biome Linting - Zero-config via Ultracite preset
- GitHub Actions CI - Lint, typecheck, test matrix
- Beads Issue Tracking - Git-native dependency-aware tracking
Version History
| Version | Date | Highlights |
|---|---|---|
| 0.12.0 | 2026-01-05 | Note linking, backlinks, related notes |
| 0.11.0 | 2026-01-05 | MCP embed/index tools, server embed sched |
| 0.10.0 | 2026-01-04 | Tag system with filtering |
| 0.9.0 | 2026-01-02 | MCP write operations |
| 0.8.0 | 2026-01-02 | Document editor, collections management |
| 0.4.0 | 2026-01-01 | Web UI and REST API |
| 0.1.0 | 2025-12-30 | Initial release with full search pipeline |