Skip to content

Releases: Arsenije/Uru

0.1.15

Choose a tag to compare

@github-actions github-actions released this 20 Jul 19:40
0e79354

Changed

  • Settings appear in Obsidian's settings search. The settings tab now uses Obsidian 1.13's declarative settings API (getSettingDefinitions()) instead of the deprecated display(): toggles and the ignore-patterns editor are declarative (and searchable app-wide), the live rows (backend status, indexing progress, uninstall preflight) keep their real-time behavior, and the collapsed Advanced / Models / Danger zone sections became navigable sub-pages.
  • minAppVersion raised from 1.7.2 to 1.13.0 — the declarative settings API and the setDestructive() button style only exist on 1.13+.

Fixed

  • Deprecated setWarning() replaced. The Uninstall button and the confirmation dialog's confirm button now use setDestructive() (the dialog's as a destructive primary action); the Stop-indexing button drops the warning styling entirely, since stopping a run isn't destructive.

Added

  • "Permissions" section in the README — maps each capability Obsidian's automated review flags (direct filesystem access, shell execution, vault enumeration, clipboard) to exactly what Uru does with it: all filesystem access stays outside the vault, notes are read only through the vault API, every spawned process is a fixed binary with a fixed argument list, and clipboard use is write-only behind the Copy-diagnostics buttons.

Manual install: download main.js, manifest.json, and styles.css below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Put them in <your-vault>/.obsidian/plugins/uru/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

0.1.14

Choose a tag to compare

@github-actions github-actions released this 20 Jul 19:06
2340443

Fixed

  • Obsidian plugin-review lint warnings cleared. The community reviewer runs eslint-plugin-obsidianmd with typescript-eslint's recommendedTypeChecked, which flagged 175+ no-unsafe-* warnings on ordinary Node builtin calls (join, existsSync, execFile…). These were false positives caused by Node's ambient types not resolving in the reviewer's program. The dev toolchain now mirrors the reviewer's (ESLint 9 / typescript-eslint 8 / TypeScript 5 / @types/node 18) via a flat eslint.config.mjs, and tsconfig adds types: ["node"], skipLibCheck, and a wider lib so builtins always resolve — clearing all ~396 unsafe warnings. npm run lint now runs exactly what the reviewer runs.

Changed

  • Network calls use Obsidian's requestUrl(). The sidecar client now calls requestUrl() instead of fetch(), per the plugin guidelines. Because requestUrl buffers the response, chat NDJSON events now arrive together rather than token-by-token; the event-driven consumer and chatSync fallback are otherwise unchanged.

Manual install: download main.js, manifest.json, and styles.css below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Put them in <your-vault>/.obsidian/plugins/uru/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

0.1.13

Choose a tag to compare

@github-actions github-actions released this 20 Jul 08:41

Manual install: download main.js, manifest.json, and styles.css below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Put them in <your-vault>/.obsidian/plugins/uru/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

0.1.12

Choose a tag to compare

@github-actions github-actions released this 14 Jul 21:20

Fixed

  • Obsidian plugin-review error resolved. workspace.revealLeaf() (available since Obsidian 1.7.2) is now awaited, and minAppVersion is raised from 1.5.0 to 1.7.2 to match the APIs the plugin actually uses.
  • Review warnings addressed. onunload is synchronous again (shutdown runs fire-and-forget in the same order); timers use window.setTimeout/setInterval so they behave in popout windows; the default ignore list derives the config folder from vault.configDir instead of hardcoding .obsidian; a settings status callback no longer leaks a return value; a child-process failure now rejects with a proper Error.

Changed

  • Releases are attested and minimal. The release workflow now publishes GitHub artifact attestations for main.js, manifest.json, and styles.css (verify with gh attestation verify main.js -R Arsenije/Uru), and the extra uru-<version>.zip asset is gone — manual installs download the same three files the community installer fetches (see the README).
  • The builtin-modules dev dependency was replaced with Node's own module.builtinModules in the build config.

Manual install: download main.js, manifest.json, and styles.css below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Put them in <your-vault>/.obsidian/plugins/uru/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

0.1.11

Choose a tag to compare

@github-actions github-actions released this 14 Jul 20:44

Changed

  • Ready for Obsidian's community plugin directory. The Python sidecar now travels inside main.js (embedded at build time) instead of shipping as a separate sidecar/ folder — so an install that receives only main.js, manifest.json, and styles.css (exactly what Obsidian's community-directory installer downloads) bootstraps correctly. First-run setup writes the embedded source into Uru's app-data folder and installs it from there; nothing changes for already-set-up vaults.
  • Release mechanics match Obsidian's requirements. Releases are now tagged with the bare version (0.1.11, not v0.1.11) to match manifest.json exactly, and main.js, manifest.json, and styles.css are attached to each release as individual assets (the community installer fetches those files directly). The manual-install zip remains, renamed to uru-<version>.zip and no longer containing a sidecar/ folder.
  • Manifest polish for review. minAppVersion raised from the sample-plugin template's 0.15.0 to 1.5.0, the description now leads with what Uru does ("Search and chat with your vault…"), and authorUrl points at the author's GitHub profile.

Added

  • LICENSE file (MIT) at the repo root — the README and package metadata already said MIT; now GitHub and Obsidian's review tooling can see it too.
  • "Network use" section in the README — a table of exactly what the first-run setup downloads, from which hosts, and why; every item version- or revision-pinned. After setup, the plugin only talks to its own sidecar on 127.0.0.1.
  • Submission notes for Obsidian reviewers (docs/obsidian-submission.md) — why Uru exists, the technical decisions behind the first-run backend bootstrap, and a policy-compliance checklist.

Fixed

  • versions.json no longer overpromises compatibility. Every row claimed minAppVersion 0.15.0 (the sample-plugin template default); all rows now say 1.5.0, matching the manifest.

Manual install: download the uru-0.1.11.zip asset below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Extract the uru/ folder into <your-vault>/.obsidian/plugins/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

v0.1.10

Choose a tag to compare

@github-actions github-actions released this 14 Jul 13:28
f26e81b

Changed

  • One consistent voice across every label, notice, and error. The search feature is now called Search everywhere (ribbon, command, and panel — previously "Recall"); user-facing messages say "the local AI service" instead of the internal word "backend"; and status-bar tooltips show plain words ("Ready", "Starting…") instead of raw internal state. Notices drop the inconsistent "Uru:" prefix, use consistent punctuation, and no longer duplicate the same message two ways. "Remove Uru completely" is now "Uninstall Uru", the indexing button reads "Index new & edited", and the underlying library is capitalized as Khora. Developer-only details (raw relevance scores, all-caps ERROR:, "(no answer)") no longer leak into the UI. No behavior changed — only wording.
  • A clearer, better-organized Settings page. The Status row is now labelled "Uru setup" and its button reads "Repair Uru" (was "Re-run setup"). "Index on startup" moved up next to the indexing controls it affects, out of the Advanced section. The Models section now links each model to a short "Why this model?" explainer in the README, and the "Uninstall Uru" description leads with what to do and reads more plainly.

Removed

  • Deep indexing (entity extraction) is gone. Uru no longer runs a local model over every note to map people, places, and ideas — indexing is now always the fast embeddings-only path (what used to be called "Quick"). The Deep/Quick choice disappears from the chat first-run prompt and Settings, the "People & topics" chips disappear from Search, and indexing a large vault drops from hours to minutes. Search, chat, and citations are unchanged. Notes indexed under Deep mode keep working as-is; no re-index is needed.
  • "Link notes in the graph" is gone. The Settings section that wrote a "uru-links" property into your notes' frontmatter (so connections showed in Obsidian's Graph view) has been removed. On the first launch after updating, Uru automatically strips the "uru-links" property from any notes that still carry it — the same clean undo the "Remove Uru links" button performed — and tells you how many notes were cleaned. Your note text and other properties are untouched.
  • "Reset this vault's Uru data" is gone. The Danger-zone button that cleared just this vault's index while keeping the shared AI service has been removed — it overlapped confusingly with "Uninstall Uru". To rebuild a vault's index, use "Re-index everything"; to remove everything, use "Uninstall Uru".

Fixed

  • No more stray console windows on Windows. Each local AI server (chat + embedding, and a fresh one on every crash-restart) used to pop up its own cmd window because it inherited no console from the backend. The servers now launch with CREATE_NO_WINDOW, and first-run setup steps (uv, Python, GPU detection) no longer flash a console either. Windows only — macOS and Linux were never affected.
  • A crashing backend no longer piles up llama.cpp processes on Windows either. The Windows backend now runs its llama.cpp servers inside a kill-on-close Job Object, so they shut down with the backend no matter how it dies (matching the Linux behavior added in 0.1.9). Previously a hard crash could leave llama.cpp servers resident and stack more on each restart.
  • Settings no longer gets stuck on "Setting up…". While the local AI service was booting, the Settings status row could stay on "Setting up…" until you closed and reopened Settings — even though Uru was already ready. It now updates live to "Ready" the moment the service is up.

Manual install: download the uru-v0.1.10.zip asset below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Extract the uru/ folder into <your-vault>/.obsidian/plugins/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

v0.1.9

Choose a tag to compare

@github-actions github-actions released this 09 Jul 18:18
2176443

Added

  • Automatic GPU acceleration on Windows and Linux. On first run Uru now detects a supported GPU (AMD, Nvidia, or Intel) and downloads a Vulkan build of llama.cpp instead of the CPU-only build, so chat and indexing run on the GPU — a large speedup, especially for Deep mode. It falls back to the CPU build automatically if no usable GPU is found (and remembers that so it doesn't re-download each launch). Existing installs are upgraded to the GPU build on the next launch when a GPU is present. macOS is unchanged (it already uses the Metal GPU).

Fixed

  • Linux setup no longer downloads ~6 GB of unused NVIDIA CUDA libraries. The backend install now always picks the CPU build of PyTorch — Uru only carries PyTorch as an indirect dependency and never runs it (all AI inference happens in llama.cpp), but on Linux the default download was the CUDA build plus 21 NVIDIA packages. First-run setup on Linux is now several GB smaller and minutes faster.
  • A crashing backend no longer piles up llama.cpp processes. If the backend process died unexpectedly (e.g. killed by the OS when memory ran out), its two llama.cpp servers were left running, and every automatic restart added two more — eating memory until startup could no longer succeed. On Linux the llama.cpp servers now shut down with the backend no matter how it dies.
  • The backend was reinstalled on every launch due to a version-pin mismatch (the plugin expected sidecar 0.2.10 while the bundled code reported 0.2.9). The versions are back in sync, so a healthy install is reused.
  • Crash diagnostics now record how the backend exited (exit code and signal), so a silent native crash or out-of-memory kill shows up in the diagnostics log instead of the log just stopping mid-startup.

Manual install: download the uru-v0.1.9.zip asset below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Extract the uru/ folder into <your-vault>/.obsidian/plugins/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

v0.1.8

Choose a tag to compare

@github-actions github-actions released this 03 Jul 13:06
36be446

Added

  • Loading state while Uru starts. Opening Chat or Recall before the local backend is ready now shows a clear "Starting Uru…" state (with a live progress indicator) instead of a dead or misleading input box, and switches to the real chat/search view automatically once the backend is up. If startup fails, both panels show a plain error with a Retry button.

Changed

  • Simpler first-run setup. The setup dialog leads with a shorter, privacy-focused intro and no longer asks you to choose Quick vs Deep up front — it defaults to Deep, still changeable anytime in Settings. The install button now spells out that it "can take a few minutes," and the final log line reads "Setup complete — backend ready."

Manual install: download the uru-v0.1.8.zip asset below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Extract the uru/ folder into <your-vault>/.obsidian/plugins/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 03 Jul 12:00
ac8d53e

Added

  • "Danger zone" in Settings with two scoped cleanup actions — "Reset this vault's Uru data" and "Remove Uru completely" — backed by a small vaults.json registry, so cleanup never deletes another vault's index or a shared backend it still needs. This makes it easy to fully clean up (models, Python environment, index) before removing the plugin, since Obsidian's own uninstall only removes the in-vault plugin folder.

Changed

  • Consistent plain-language copy across every surface. Removed the remaining "knowledge graph" / "Lite" / "Full" wording (which clashed with Obsidian's graph view) in favor of the Quick / Deep vocabulary and a "maps how your notes connect" framing — in the Recall command, the manifest description, and the README. Softened "backend" out of user-facing error notices (power-user command names stay as-is). Renamed the Recall panel's "Entities" heading to "People & topics".

Removed

  • The command-palette-only "Delete all Uru data" command, which wiped every vault's data unconditionally — replaced by the scoped Danger zone actions above.

Fixed

  • A failed first-run setup (e.g. the local AI service didn't start, so no note was indexed) no longer shows a misleading "Indexing didn't finish — Resume" prompt; it now offers a clean retry.

Manual install: download the uru-v0.1.7.zip asset below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Extract the uru/ folder into <your-vault>/.obsidian/plugins/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 01 Jul 12:19
81da853

Added

  • CHANGELOG.md — a dedicated, backfilled release history (0.1.0–0.1.5), replacing the inline README section.

Changed

  • GitHub release notes are now generated from this changelog. The release workflow reads the matching version section from CHANGELOG.md (falling back to the manual-install instructions), so each release documents what actually changed instead of repeating boilerplate.

Manual install: download the uru-v0.1.6.zip asset below — ⚠️ not "Source code (zip)", which has no built main.js and will fail to load. Extract the uru/ folder into <your-vault>/.obsidian/plugins/, then enable Uru in Settings → Community plugins. First run downloads the local backend (~3 GB) — see the setup dialog.