Skip to content

v1.0.0: offline UI, conflict guard, backlinks, shortcuts, doctor#12

Merged
CryptoJones merged 1 commit into
mainfrom
feat/v1-release
Jun 4, 2026
Merged

v1.0.0: offline UI, conflict guard, backlinks, shortcuts, doctor#12
CryptoJones merged 1 commit into
mainfrom
feat/v1-release

Conversation

@CryptoJones
Copy link
Copy Markdown
Owner

Closes #11.

Summary

Bundles the remaining pre-v1 items and bumps the version to 1.0.0:

  • Offline vendoring — compiled Tailwind CSS, local woff2 fonts, bundled marked.min.js; the web UI loads with zero CDN/network dependencies.
  • Conflict guard — optimistic-concurrency version token (mtime+size); a stale write returns HTTP 409 and the UI prompts before clobbering external edits.
  • Backlinks — view pane lists notes that [[wikilink]] the open note via GET /api/notes/{name}/backlinks.
  • Live refresh — the note list polls and refreshes as obsidian-mcp / Hermes cron write the folder; paused while editing or when the tab is hidden.
  • Keyboard shortcuts/ search, n new, j/k move, Ctrl/Cmd+S save, Esc cancel; guarded against firing while typing.
  • omind doctor — one-shot wiring diagnostics (Node/npx/Claude on PATH, MCP registered at user scope and pointed at the right folder, OMI folder + Obsidian config readable).
  • CHANGELOG.md added, README updated.

Test plan

  • ruff check . — clean
  • mypy src — clean (--strict)
  • pytest -v — 60 passed (conflict 409, backlinks, doctor, store round-trip + traversal, web CRUD)
  • Wheel build verified — omind-1.0.0-py3-none-any.whl, 18 vendor files bundled, 0 tailwind build inputs
  • Playwright e2e — offline (no external requests), backlinks render, / focuses search, conflict-overwrite path persists
  • omind doctor verified live — unprovisioned vault → exit 1; real vault → exit 0 (all ✓)

Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/

Bundles the work that takes omind to its first stable release:

- Offline asset vendoring: the web UI no longer reaches a CDN. Tailwind is
  compiled to a committed stylesheet, fonts are local woff2, and marked is
  bundled. Tailwind build inputs live under web/tailwind/ and are excluded
  from the wheel.
- External-change guard: each note carries an mtime+size version token. Saves
  send the token they last read; if the file changed underneath them the API
  answers 409 and the UI offers to overwrite. Protects against the OMI folder
  being written concurrently by Claude Code's MCP and Hermes' cron.
- Live list refresh: the sidebar polls for changes and updates without a
  reload, pausing while an editor is open or the tab is hidden.
- Keyboard shortcuts: / search, n new, j/k navigate, Ctrl/Cmd+S save, Esc
  cancel.
- Backlinks panel: the note view lists other notes that [[wikilink]] to it.
- omind doctor: diagnoses Node/npx/Claude CLI, MCP registration at user scope,
  and OMI folder + Obsidian config readability.
- CHANGELOG.md (Keep a Changelog) and README updates; version bumped to 1.0.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@CryptoJones CryptoJones merged commit 44cf88c into main Jun 4, 2026
3 checks passed
@CryptoJones CryptoJones deleted the feat/v1-release branch June 4, 2026 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v1.0.0: bundle offline UI, conflict guard, backlinks, shortcuts, and omind doctor

1 participant