Skip to content

Releases: Drakonis96/nodus

Nodus 1.8.0

Choose a tag to compare

@Drakonis96 Drakonis96 released this 11 Jul 19:55

Highlights

LibreOffice Writer copilot (new)

The Nodus writing copilot now works with LibreOffice Writer on Linux, macOS and Windows. Install the bridge macro with one click from Settings → Writing copilot (LibreOffice), run start_nodus_copilot in Writer, and open the copilot pane in any browser. The pane follows your cursor, analyzes the current paragraph against your corpus, and inserts AI-drafted, cited text at the cursor.

  • Zero-config connection: the app publishes a local discovery file (port, token and TLS CA) that the macro picks up automatically — no manual setup.
  • The bridge verifies TLS against the local Nodus CA and applies document changes safely on LibreOffice's main thread.

Linux packages (new)

Official Linux builds: .deb and AppImage installers are now built and published with every release. The app also inherits the system cursor theme on Wayland desktops.

French and Turkish prompt languages

Generated content — ideas, themes, Deep Research reports, writing drafts — can now be produced in French and Turkish, alongside Spanish and English. Verbatim quotes always stay in the source language.

Fixes

  • Local PDFs attached after a work's first scan are now picked up on sync instead of staying flagged as "no text" forever.
  • Hardened PDF text-extraction loading for packaged apps and headless usage.
  • The Word task pane no longer risks misdetecting a slow Word start as browser mode.

Credits

Huge thanks to first-time contributor Oğuz Karayemiş (@oguzkarayemis) for driving this release: the LibreOffice Writer integration, the Linux packaging push, the Turkish and French prompt languages, and the extraction fixes all grew from his contribution (#6).

1.7.5

Choose a tag to compare

@github-actions github-actions released this 11 Jul 13:16

New

  • Expandable collection tree in setup. The onboarding wizard now shows your Zotero collections as a fold/unfold tree instead of a flat list, so you can pick specific subcollections to monitor when a top-level collection is too large. Each node shows its item and subcollection counts, and selecting a parent never auto-selects its children.

Fixes

  • Local models no longer run out of context in the research assistant. Local servers (LM Studio, Ollama) load a model with a small, fixed context window — LM Studio defaults to 4096 tokens — that Nodus's large prompts overflowed, so the assistant refused every question with a "not enough context" error. Nodus now fits the context, the conversation history and the answer length to the model's real window, trimming the least query-relevant material first so the most relevant ideas and passages survive. A small local model can now always answer.
  • Cleaner citations from local models. Citations from local models now render as "Author, Year" instead of the internal idea id, and a bracketed id the model wrote without a link is turned into a proper source link (only when the id actually exists in your corpus).

1.7.4

Choose a tag to compare

@github-actions github-actions released this 11 Jul 12:33

New

  • Immersion gallery. The Immersion home is now a gallery with grid and list views, search and sort, and a New immersion button that opens a composer dialog — the same shape as Deep Research. The no-AI territory preview still runs before an immersion is generated.
  • Bulk delete. Deep Research and Immersion both gain multi-select: pick several reports or immersions and delete them at once, with a confirmation step.
  • AI translations. A new Translate button on any report or immersion generates an AI translation into the language you choose from a broad list. Each translation is saved to reread, regenerate, or delete, and keeps the document's formatting and source citations intact.
  • What's new dialog. After the app updates, a one-time dialog shows the latest changes and fixes so you don't miss them.

Fixes (carried from 1.7.3)

  • Generating narration audio no longer freezes the interface.
  • The Spanish "Sharvard" voice is now correctly listed as a male voice.

1.7.3

Choose a tag to compare

@github-actions github-actions released this 11 Jul 11:59

Fixes

  • Responsive UI while narrating. Generating audio for a Deep Research report or an immersion no longer freezes the window. Local voice synthesis (Piper and Kokoro) now runs in a background worker instead of on the UI thread, so the app stays clickable while narration is produced.
  • Corrected the "Sharvard" Spanish voice. It was labelled female but always rendered its male speaker (the engine exposes only that speaker of the underlying model), so it now appears correctly as a male voice. For a female Spanish voice, choose the Español (México) option.

1.7.2

Choose a tag to compare

@github-actions github-actions released this 11 Jul 10:39

Interface polish

A small UX release focused on the model pickers, global search, and the Argument Map. No new app features and no database migration — the schema stays at v31.

Changed

  • AI model dropdowns are sorted. Every model selector — the per-feature pickers, the research assistant, and the tutor — now lists models alphabetically by provider and then by model name, so a given option always sits in the same place across the app.
  • Search results reuse each section's own detail view. Clicking an idea in global search now opens the same idea detail modal as the Ideas section, and clicking a work opens the same modal as the Library. Other result kinds (notes, gaps, themes, authors, passages) jump straight to their home view. The generic search preview modal has been removed.
  • The Argument Map header is cleaner. The redundant back-to-graph arrow was removed; you navigate between sections from the sidebar as everywhere else.

1.7.1

Choose a tag to compare

@Drakonis96 Drakonis96 released this 11 Jul 09:58

MCP server polish

This release refines the built-in MCP server (Settings → Integrations) so external clients get more reliable, cheaper and more consistent access to your local corpus. No new app features and no database migration — the schema stays at v31.

Added

  • New tool nodus_search_passages — semantic full-text search over the source passages of your library, ranked by cosine similarity, with citable work metadata on every hit and an optional scope to a single work. This is the direct way to locate where the corpus discusses a topic; unlike nodus_analyze_passage it performs no extra AI relation-typing. Requires an embedding provider configured in Nodus.
  • Progress notifications on long toolsnodus_generate_deep_research (writer "nodus") and nodus_ask_coverage_question now stream MCP notifications/progress (planning, per-section, coverage, assembly) when the client sends a progress token, so multi-minute calls no longer look stalled and are less likely to hit a client-side timeout.
  • nodus_get_capabilities reports more — it now returns the running Nodus version plus themes and passages counts, so a client can size the corpus and identify the build in a single call.

Changed

  • List queries match text, not raw JSON — the query filter on the list tools now matches only human-readable fields (titles, statements, author names, …) instead of the serialized record, so searches no longer match internal ids or enum values (e.g. querying "claim" no longer returns every idea via its type).
  • nodus_list_ideas is compact by default — list rows carry a statement snippet instead of the full statement; pass full=true for complete statements. This sharply reduces token cost on large corpora. nodus_get_idea still returns one idea in full.
  • Structured tool output — object results are now mirrored into the response's structuredContent field for modern clients, while the JSON text block is kept for older ones.
  • The MCP surface is now fully English — the remaining Spanish tool descriptions, hints and client-facing error messages were translated for a consistent experience when an external client connects.

Fixed

  • Idle MCP sessions are reclaimed — a periodic sweep closes sessions left idle beyond a timeout, so a client that disconnects without a clean shutdown no longer leaks its session until the app restarts.
  • The server reports its real version in the MCP handshake instead of a hardcoded placeholder.

1.7.0

Choose a tag to compare

@Drakonis96 Drakonis96 released this 11 Jul 09:00

Word writing copilot — official beta

The Word add-in graduates from a development-only experiment to an official beta, installable directly from the packaged app.

Added

  • Install from Settings → Integrations, no development tooling required. Nodus now generates its own local certificate authority (10 years, trusted once per machine through the standard system dialog) and a localhost certificate (1 year) that is silently re-issued before expiry — no repeated trust prompts. Machines that already trusted the previous development certificate keep working unchanged.
  • The task pane speaks your language: it follows the Nodus interface language (Spanish/English). Its status chip now doubles as a retry button when Nodus is unreachable, and the Settings section shows the three setup steps (certificate → enable → install in Word).

What the copilot does, as a reminder: while you write in Word, the side panel shows how the current paragraph relates to your library (typed relations with evidence), lets you search ideas/authors/works, open any idea in Nodus, insert an AI-paraphrased idea with an author-year citation, and jump to the exact item in Zotero.

Changed

  • Test suite modernized: npm test now uses Node's built-in test runner, discovering and running the 32 test scripts in parallel with unified reporting — seconds instead of a serial chain. Each script remains runnable on its own.
  • Dependency swap: the development-only certificate CLI was replaced by a pure-JS certificate generator that works from the packaged app.

Notes

  • No database migration; the schema stays at v31.
  • Beta caveats: the copilot needs Word for desktop (macOS or Windows), an indexed library, and an embeddings provider configured in Nodus. Feedback welcome via issues.

1.6.0

Choose a tag to compare

@Drakonis96 Drakonis96 released this 11 Jul 08:38

Consolidation release

No new features — this release unifies provider configuration that had been duplicated across the app, and fixes two real bugs that the duplication had already caused.

Fixed

  • Encrypted exports with "include secrets" now carry local-provider tokens. The optional access tokens for Ollama and LM Studio (used for secured instances) were silently skipped on export and left untouched on restore, because the export code kept its own outdated provider list.
  • MCP model override accepts every supported provider. Xiaomi MiMo, Ollama and LM Studio were rejected by an out-of-date provider list in the MCP tool schema, so MCP clients could not route writing or deep-research jobs through those providers.

Changed

  • Provider identity, display labels, local-server base URLs, the embedding provider list and the default embedding model per provider are now defined once, in a single registry shared by the main process and the renderer. Six independently maintained copies were removed; adding a provider now touches one file, and the type system enforces the rest.

Notes

  • No database migration; the schema stays at v31. Settings, favorites and stored keys are untouched.

1.5.3

Choose a tag to compare

@github-actions github-actions released this 11 Jul 08:18

Local AI providers: Ollama and LM Studio

Nodus can now use models running on your own machine, right next to the cloud providers.

Added

  • Ollama and LM Studio as configurable providers in Settings → Providers. Set the server address (IP and port), test the connection, and load the models installed on your machine.
  • Loaded models show their metadata inline — parameter size, quantization, context length and on-disk size — and LM Studio marks which models are already loaded in memory.
  • An optional access token per local provider, for instances secured behind one, stored encrypted at rest like every other key. Neither provider requires a key by default.
  • Local models can be starred as favorites and used anywhere a cloud model can be used — chat, summaries, deep research, immersion, writing, and more. They also appear as an embeddings provider (e.g. Ollama's nomic-embed-text); switching the embedding model re-embeds the corpus offline.

Notes

  • Ollama runs on http://localhost:11434 and LM Studio on http://localhost:1234 by default; both addresses are editable, including a LAN IP for a remote host.
  • Small local models may produce lower-quality structured output during deep scans; Nodus already repairs and retries, so scans degrade gracefully.

1.5.2

Choose a tag to compare

@github-actions github-actions released this 11 Jul 00:51

Audio voices — search & filters

Finding a voice in Settings → AI → “Audio y voz” is now much quicker:

  • Search box — filter voices by name for any provider.
  • Language filter — Piper and Kokoro filter locally by language; Hume filters by language on the server (via its voices API) and re-queries as you change it.
  • Hume library filter — narrow to Hume’s shared voices or your own custom voices, and each Hume voice shows its Octave model version.