Skip to content

fix: view scroll + document namespace/version gate (uteke v0.7.0) - #154

Merged
ajianaz merged 5 commits into
developfrom
fix/scroll-and-doc-namespace-deprec
Jul 8, 2026
Merged

ajianaz merged 5 commits into
developfrom
fix/scroll-and-doc-namespace-deprec

Conversation

@ajianaz

@ajianaz ajianaz commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Three related fixes + one chore, all targeting the uteke v0.7.0 upgrade and a couple of UI bugs.

Changes

1. View scroll (fix/ui)

Memories and Dashboard views couldn't scroll — root containers used static layout (padding + max-width) with no height constraint, so content was clipped by the parent .main-content { overflow: hidden }. Now wrap post-toolbar content in a .scroll-area and make each root view position: absolute; inset: 0; flex column; overflow: hidden, matching the existing NamespacesView/RoomsView/GraphView pattern. Toolbar stays fixed, list scrolls.

2. Document namespace removal + version gate (feat/docs)

uteke v0.7.0 (#614) made documents global — unique slugs across all namespaces; the server ignores namespace on /doc/*. Replaces the earlier soft-deprecation with a hard requirement:

  • Removed namespace from all doc methods (client + commands + ipc + types + DocumentsView). DocEntry.namespace dropped; App.svelte no longer passes it.
  • Version gate: every doc command now requires uteke >= 0.7.0 via require_uteke_version, backed by a cached AppState::uteke_version probed once at startup from uteke --version (the HTTP server exposes no version endpoint). version_meets is conservative — unparseable/unknown versions fail the gate (3 unit tests).
  • New commands: uteke_version_status (frontend banner) and uteke_self_update (runs uteke upgrade, re-probes version).
  • UI: DocumentsView renders an "Uteke 0.7.0+ required" banner with an Update uteke button when the installed version is too old. Non-doc features (memories/graph/rooms) keep working on older uteke — gate is docs-only.

3. Lockfile sync (chore)

package-lock.json still recorded 0.2.0 after the v0.3.0 release bump; re-synced via npm install.

Verification (all green)

  • cargo fmt --all -- --check
  • cargo clippy -- -D warnings
  • cargo test — 13 passed (10 existing + 3 new version_meets) ✓
  • svelte-check — 0 errors ✓
  • npm run build

Notes

  • Older uteke installs (<0.7.0) can still use memories/graph/rooms; only Documents are gated with a clear upgrade path.
  • Commit 089b313 (soft-deprecate) is superseded by 9ca6a38 (hard remove) — kept for history; net diff is clean.

ajianaz added 4 commits July 9, 2026 00:46
Root view containers used static layout (padding + max-width) with no
height constraint, so content overflowed silently under the parent
`.main-content { overflow: hidden }` and never scrolled.

Wrap post-toolbar content in a `.scroll-area` and make each root view
`position: absolute; inset: 0; flex column; overflow: hidden`, matching
the pattern already used by NamespacesView/RoomsView/GraphView. Toolbar
and quick-search now stay fixed while the list scrolls.
uteke v0.7.0 (#614) made documents global — unique slugs across all
namespaces; the server ignores `namespace` on /doc/* endpoints.

Soft deprecation only (no behavior change): keep accepting and forwarding
the param for IPC stability and older-server (<0.7.0) compat, but document
it as deprecated at every layer (Rust client, Tauri commands, TS IPC,
DocEntry type, DocumentsView). Stop reading the deprecated
`selectedDoc.namespace` field in DocumentsView save flow.
Lockfile still recorded 0.2.0 after the v0.3.0 release bump in package.json
(commit ffd2a18). Re-sync via npm install.
uteke v0.7.0 (#614) made documents global (unique slugs across namespaces).
Replace the earlier soft-deprecation with a hard requirement:

- Remove `namespace` from all doc methods (client + commands + ipc + types +
  DocumentsView). DocEntry.namespace dropped; App.svelte no longer passes it.
- Gate every doc command on uteke >= 0.7.0 via require_uteke_version, backed by
  a cached AppState::uteke_version probed once at startup from `uteke --version`
  (the HTTP server exposes no version endpoint).
- Add uteke_version_status (frontend banner) and uteke_self_update (runs
  `uteke upgrade`, re-probes) Tauri commands + ipc bindings.
- DocumentsView renders an update-required banner with an Update button when
  the installed version is below 0.7.0; non-doc features stay usable.
- version_meets is conservative: unparseable/unknown versions fail the gate.
  Unit tests cover equal/higher/lower/unparseable cases.
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

🔍 Cora AI Code Review

No issues found. Code looks good!


Review powered by cora-cli · BYOK · MIT

CI runs clippy with --all-targets on rust 1.96, which lints
items_after_test_module. The version_meets tests were defined mid-file
with functions after them. Move the module to the end of lib.rs.

Verified locally with the exact CI invocation:
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
@ajianaz
ajianaz merged commit 713b9f3 into develop Jul 8, 2026
8 checks passed
@ajianaz
ajianaz deleted the fix/scroll-and-doc-namespace-deprec branch July 9, 2026 07:30
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.

1 participant