Conversation
Memories/Dashboard scroll fix + drop document namespace entirely with a uteke 0.7.0 version gate (documents are global since #614). Adds version detection (uteke --version), cached in AppState, gated per-doc-command, with an update-required banner + Update button in DocumentsView. Non-doc features keep working on older uteke. Also syncs package-lock to 0.3.0. All gates green: fmt/clippy(--all-targets)/13 tests/svelte-check/build.
* refactor(rooms): remove Participants tab (#155) The Participants tab was unreliable: uteke-serve /room/stats returns a participant COUNT but not the participant_namespaces list, so the tab fell back to deriving agents from the 50 most-recent room memories and undercounted (sidebar showed N, tab showed 1). Rather than depend on an upstream uteke-serve change, drop the tab entirely — simpler UX. Removed: Participant interface, loadParticipants/getParticipants, the participants $effect, roomStatsData/participantsLoading state, the tab button + content, and the participant CSS. The sidebar room-card still shows the authoritative server participant_count ("N agents"). Closes #155 * refactor(rooms): also drop sidebar participant count (#155) With the Participants tab gone, the room-card "N agents" count had no drill-down behind it. Remove it (and the now-unused participant_count field on UtekeRoom) for consistency.
Load all docs once and build the parent→children tree client-side so the full hierarchy is visible upfront (Obsidian/Outline-like), instead of only roots with lazy-expanded children. Folders now render with Folder/FolderOpen icons distinct from leaf FileText, show a child-count badge, and use guide lines + deeper indent for clearer nesting. Expanded-by-default. Refs #156
…#159) * fix(docs): default doc_list limit to 1000 uteke-serve /doc/list defaults limit to 5 (shared memory pagination default). The doc tree fetches the full flat list client-side to build the hierarchy, so omitting limit silently capped it at 5 docs. Side effect: parent folders whose children fell outside the first 5 results had an empty childrenCache, so isFolder evaluated false and no expand/collapse chevron rendered — the tree could not be toggled. Default to 1000 in the Tauri command so the installed uteke 0.7.0 works without waiting for the upstream default fix (uteke #634). * fix(docs): require uteke >= 0.7.1 for documents Bump MIN_UTEKE_FOR_DOCS from 0.7.0 to 0.7.1. Symptom: deleting a document failed with "uteke error: server returned 400 Bad Request". Root cause: uteke 0.7.0 has no /doc/delete route — document delete/move landed in 0.7.1. The old gate (0.7.0) let Corin run against an incomplete server and surface a confusing 400. Raising the gate to 0.7.1 makes require_uteke_version reject 0.7.0 up front with a clear message, and the Documents view renders its upgrade banner so the user runs uteke upgrade (0.7.1 is released) and gets the full doc feature set. Comments referencing the old 0.7.0 floor updated across lib/commands/ uteke_client. Added a docs_gate_requires_0_7_1 test. * fix(docs): remote-aware uteke version gating The documents version gate read AppState::uteke_version, which is the LOCAL 'uteke --version' CLI output. When Corin connects to a remote uteke-serve (https/host URL), the local CLI version is irrelevant — the server may be older or newer — yet the gate compared against the CLI and falsely told remote users to 'run uteke upgrade'. Now: - Track AppState::uteke_remote (set from is_remote_url at startup). - resolve_uteke_version() probes the remote server's self-reported version via GET /health (uteke >= health-version patch) and falls back to the cached CLI version for local servers. - require_uteke_version / uteke_version_status treat a remote server with an UNKNOWN version leniently (allow through, no upgrade banner) — remote servers are user-managed and surface real errors directly. Local servers keep the strict gate. - uteke_self_update skips the local CLI upgrade for remote servers and just re-probes the server version. Depends on upstream /health version field (uteke #636) for precise remote detection; without it, remote-unknown is handled leniently so remote users are no longer blocked.
Parent folders in the document tree could not be expanded/collapsed.
Root cause: a Svelte 5 reactivity bug. expandedIds is a $state Set and
the tree snippet reads it via {@const expanded = expandedIds.has(id)}.
The toggle handlers mutated the Set in place (expandedIds.add/delete)
and then reassigned the SAME reference (expandedIds = expandedIds). In
Svelte 5 this does NOT re-run {@const} reads, so the {#if expanded}
block never updated — clicks changed the Set but the UI stayed put.
Fix: use immutable updates everywhere expandedIds/childrenCache change
— build a new Set/Map and reassign the new reference. This reliably
triggers Svelte 5 to re-render the snippet.
Sites updated:
- toggleNode, expandPathToDoc, selectDoc (expandedIds)
- loadChildren (childrenCache)
Added a regression test (TreeRepro.svelte + set-reactivity.test) that
fails with the old in-place pattern and passes with the immutable one.
Document breadcrumbs were display-only (truncated UUID segments). Now each ancestor crumb is clickable and navigates to that parent doc. - Build a flat id→DocEntry lookup (docById) in loadRootDocs from the already-loaded full doc list — no extra network requests. - getBreadcrumb() resolves selectedDoc.path (materialized ancestor UUID chain) to real DocEntry[] via docById. - Each crumb renders the ancestor title and calls selectDoc(ancestor) on click. 'Documents' root crumb still clears the selection.
Patch pre-release of the document-tree fixes and UX improvements. - bump package.json / tauri.conf.json / Cargo.toml → 0.3.1-beta.1 (also aligns Cargo.toml, which was stuck at 0.2.0) - CHANGELOG entry - release.yml: mark hyphenated tags as GitHub prereleases
🔍 Cora AI Code ReviewReview powered by cora-cli · BYOK · MIT |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge develop → main for the v0.3.1-beta.1 patch pre-release.
See CHANGELOG.md ([0.3.1-beta.1] section) and #162.
After merge, tag
v0.3.1-beta.1on main to trigger the release build (marked as prerelease).