Repository navigation
Releases: Arsenije/Uru
Release list
0.1.15
Changed
- Settings appear in Obsidian's settings search. The settings tab now uses Obsidian 1.13's declarative settings API (
getSettingDefinitions()) instead of the deprecateddisplay(): 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. minAppVersionraised from1.7.2to1.13.0— the declarative settings API and thesetDestructive()button style only exist on 1.13+.
Fixed
- Deprecated
setWarning()replaced. The Uninstall button and the confirmation dialog's confirm button now usesetDestructive()(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 — 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
Fixed
- Obsidian plugin-review lint warnings cleared. The community reviewer runs
eslint-plugin-obsidianmdwith typescript-eslint'srecommendedTypeChecked, 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/node18) via a flateslint.config.mjs, andtsconfigaddstypes: ["node"],skipLibCheck, and a widerlibso builtins always resolve — clearing all ~396 unsafe warnings.npm run lintnow runs exactly what the reviewer runs.
Changed
- Network calls use Obsidian's
requestUrl(). The sidecar client now callsrequestUrl()instead offetch(), per the plugin guidelines. BecauserequestUrlbuffers the response, chat NDJSON events now arrive together rather than token-by-token; the event-driven consumer andchatSyncfallback are otherwise unchanged.
Manual install: download main.js, manifest.json, and styles.css below — 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
Manual install: download main.js, manifest.json, and styles.css below — 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
Fixed
- Obsidian plugin-review error resolved.
workspace.revealLeaf()(available since Obsidian 1.7.2) is now awaited, andminAppVersionis raised from1.5.0to1.7.2to match the APIs the plugin actually uses. - Review warnings addressed.
onunloadis synchronous again (shutdown runs fire-and-forget in the same order); timers usewindow.setTimeout/setIntervalso they behave in popout windows; the default ignore list derives the config folder fromvault.configDirinstead of hardcoding.obsidian; a settings status callback no longer leaks a return value; a child-process failure now rejects with a properError.
Changed
- Releases are attested and minimal. The release workflow now publishes GitHub artifact attestations for
main.js,manifest.json, andstyles.css(verify withgh attestation verify main.js -R Arsenije/Uru), and the extrauru-<version>.zipasset is gone — manual installs download the same three files the community installer fetches (see the README). - The
builtin-modulesdev dependency was replaced with Node's ownmodule.builtinModulesin the build config.
Manual install: download main.js, manifest.json, and styles.css below — 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
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 separatesidecar/folder — so an install that receives onlymain.js,manifest.json, andstyles.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, notv0.1.11) to matchmanifest.jsonexactly, andmain.js,manifest.json, andstyles.cssare attached to each release as individual assets (the community installer fetches those files directly). The manual-install zip remains, renamed touru-<version>.zipand no longer containing asidecar/folder. - Manifest polish for review.
minAppVersionraised from the sample-plugin template's0.15.0to1.5.0, the description now leads with what Uru does ("Search and chat with your vault…"), andauthorUrlpoints 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.jsonno longer overpromises compatibility. Every row claimedminAppVersion0.15.0(the sample-plugin template default); all rows now say1.5.0, matching the manifest.
Manual install: download the uru-0.1.11.zip asset below — 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
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
cmdwindow because it inherited no console from the backend. The servers now launch withCREATE_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 — 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
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 — 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
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 — 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
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.jsonregistry, 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 — 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
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 — 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.