Releases: codecoradev/corin
Release list
Corin v0.4.0
What's New in v0.4.0
Major release: 72 commits since v0.3.4, led by a full visual redesign and the first Corin version that treats namespaces as something you manage instead of something you filter by. Recommended pairing: uteke v0.17.0, which ships the namespace APIs this UI uses.
Redesigned interface
- Editor-grade dark theme (default) in the Linear and Raycast school, plus a calm light theme. Theme switching changes the palette only: typography, spacing, and radius stay identical across themes.
- Navigation collapsed to three destinations (Home, Memories, Documents) in a 56px collapsible rail. Maintenance moved into Settings.
- Command palette (Ctrl/Cmd+K) for unified search, navigation, and actions from anywhere.
- Platform-aware shortcuts: ⌘ on macOS, Ctrl elsewhere. Fixes ⌘B / ⌘N not working on macOS; every shortcut label renders per platform.
- Committed visual QA journey and codified UI standards; the svelte-check baseline is now 0 errors.
Documents
- Milkdown (Crepe) WYSIWYG editing, theme-aware, for daily writing. CodeMirror remains for source mode and now follows live dark/light switches.
[[memory-link]]autocomplete for cross-referencing memories inside documents.- Tree improvements: numbered titles sort 1, 2, 3..., a searchable Parent picker when creating, and scroll-into-view on select.
Namespace management
- Inline rename and merge, delete with an explicit strategy for the memories inside (refuse, merge into a target, or deprecate), explicit creation, and active/deprecated counts.
- Actions are gated by uteke server version (>= 0.16.1): on older servers they render disabled with a tooltip instead of failing silently.
Memory provenance and trust
- Memories are classified Human or Agent. Anything created through a Corin or uteke UI surface is stamped human; agent-written and legacy rows read as Agent. Badges on cards and the detail panel; editing keeps the original author.
- Pin memories so they float to the top of the browsed list.
- Memory timeline, cross-entity linking (memory ↔ document refs), and trust feedback.
- Maintenance tab: type backfill, duplicate review, and JSONL import/export. A global activity heatmap lives on Home.
Graph
- 300-node seed with Load more up to 800, rebuilt in place from the fetched pool.
- Readable content labels instead of raw memory UUIDs, hidden by default; hovered and selected nodes always show their label. Legend and fit-view included.
Fixed
- Memory editor double-insert: the duplicate pre-check ran through a call that inserts, so every save created a second copy and every edit left a stray copy of the edited content. The pre-check is a read-only recall now, and the insert happens exactly once.
- Desktop clients no longer drop
metadata,pinned, andmemory_typebetween the uteke HTTP client and the UI; the web handler no longer serializes absent fields as explicit nulls, whichPUT /memorytreats as delete-this-field. - The command palette can no longer open underneath the memory editor (z 220, global); the detail panel layers above settings correctly and Esc closes one layer at a time.
- Updater signatures re-enabled (
createUpdaterArtifacts):tauri buildsigns the updater artifacts again andlatest.jsonships populated, so in-app auto-updates work from this release on.
Full Changelog: v0.3.4...v0.4.0
CorIn v0.3.4
What's Changed
Hotfix. Fixes the auto-update manifest that v0.3.3's release pipeline shipped broken.
Fixed
- Auto-update manifest — v0.3.3's release pipeline shipped
latest.jsonwith an emptyplatformsobject, so every "Check for Updates" errored with "None of the fallback platforms were found." The artifact glob (target*/release/...) did not cross directory separators and missed the macOS cross-compile path. Switched totarget/**/bundle/...with recursive lookup, so the manifest now ships with populated entries for darwin-aarch64, darwin-x86_64, and windows-x86_64. The manifest job also fails loud if no platforms assemble (#190, #192).
No app code changed from v0.3.3. This release exists to ship a working auto-update manifest. All v0.3.3 features are included: unified search across memories and documents, HTTP-only version gate, uteke server version in Settings, bun tooling.
Full Changelog: v0.3.3...v0.3.4
CorIn v0.3.3
What's Changed
Patch release. Auto-update now works, search unifies memories with documents, and the version gate is fully HTTP-only.
Added
- Unified search across memories and documents — a new "Memories | All" scope toggle in the search bar. "All" runs unified recall (
search_type=all, requires uteke 0.9.0+) and returns a mixed list of memory and document hits, each badged. Document hits open in the Documents view (#184, #185).
Fixed
- Auto-update works again — every release since v0.2.0 was missing the
latest.jsonmanifest (tauri-action#1098), so the in-app updater errored out. The release pipeline now generates and uploads the manifest directly. Each platform build exports its.sigsignature, and a final job assembles the Tauri v2 manifest (#187).
Changed
- Version detection is fully HTTP-only — the gate no longer probes the
utekeCLI. It reads the connected server's/healthversion field for both local and remote servers, completing the HTTP-first direction that fixed the Windows #171 bug in v0.3.2 (#183). - Uteke server version shown in Settings — the health line in Connections now displays the server version, e.g.
Healthy · uteke v0.9.0 · 12ms(#186). - Tooling switched to bun —
tauri.conf.jsonbuild hooks and the release runner use bun instead of npm (#186, #187).
Full Changelog: v0.3.2...v0.3.3
CorIn v0.3.2
What's Changed
🔧 Fixed
- Windows: Documents tab always showed "uteke CLI not found" — the version gate probed
uteke --versionvia the CLI, and binary discovery did not handle the.exeextension orPATHEXT. The gate is now HTTP-first: it reads the connected server'sGET /healthversion field (works on every platform, no CLI lookup needed). The CLI fallback path is also fixed —find_in_path/find_uteke_cli/find_uteke_servenow try everyPATHEXTextension on Windows (#171, #180). - Uteke 0.8.x room-document compat —
room_document()now prefersPOST /room/summary-document(canonical since uteke #735) and falls back to the legacyPOST /room/documenton HTTP 404, so CorIn works against both released uteke 0.8.0 and newer (#178).
🔄 Changed
- Version gate is now HTTP-first —
resolve_uteke_versionreads the connected uteke-serve's self-reported version via/healthfor local servers too (previously remote-only), aligning the gate with CorIn's HTTP-only architecture (#180).
📦 Dependencies
- vite 6.4.3 → 8.1.5 and @sveltejs/vite-plugin-svelte 5.1.1 → 7.2.0 (#179)
- tokio 1.52.3 → 1.53.0, serde 1.0.228 → 1.0.229, thiserror 2.0.18 → 2.0.19, toml 1.1.2 → 1.1.3, tauri-plugin-dialog 2.7.1 → 2.7.2
- @codemirror/language 6.12.3 → 6.12.4, dompurify 3.4.11 → 3.4.12, marked 18.0.5 → 18.0.6
- actions/setup-node 6 → 7
Full Changelog: v0.3.1...v0.3.2
CorIn v0.3.1
CorIn v0.3.1
Stable patch release — document-tree fixes and UX improvements.
Requires uteke ≥ 0.7.1 (run
uteke upgrade). The app now prompts to upgrade if an older server is detected.
Added
- Document tree UX overhaul — full hierarchy view with folder/file icons, recursive tree, slide transitions (#157)
- Clickable breadcrumbs — every ancestor crumb navigates to its parent/sub-doc; resolves the materialized path client-side with no extra requests (#161)
Fixed
- Document tree only showed ~5 docs —
doc_listnow defaultslimitto 1000 (#159) - Folders couldn't be expanded/collapsed — Svelte 5 reactivity bug fixed via immutable state updates (#160)
- Delete failed with
400 Bad Request— require uteke ≥ 0.7.1; version gate rejects 0.7.0 with an upgrade prompt (#159) - False "uteke upgrade required" for remote users — version gate now probes the remote server via
GET /healthinstead of the local CLI (#159) - View scroll reset + document namespace/version gate (#154)
Changed
- Removed the Participants tab from Rooms (#158)
Install
Download the asset for your platform below. Available via auto-update from v0.3.0.
Full changelog: see CHANGELOG.md.
CorIn v0.3.0
What's New in v0.3.0
📄 Documents Page Overhaul
- 3-mode toggle: Edit / Split / Preview with live markdown rendering (marked + DOMPurify)
- Tree sidebar with auto-expand, Lucide icons, and slide transitions
- Internal document links navigate in-app; external links open in system browser
- Save flow with
/doc/update+ fallback to/doc/create(upsert) for older uteke servers - Word count, reading time, Ctrl+S save shortcut, delete confirmation
- Export
.mdvia native OS save dialog - Success/error notification bars
🎨 Design System — Shared Component Library
- 11 reusable components in
src/lib/ui/(Button, IconButton, Card, Badge, Input, Modal, ConfirmDialog, Spinner, EmptyState, Notification) - Toast notification system with reactive
toastStore - 31 unit tests (Button, Badge, Spinner, EmptyState, toastStore)
✨ Animation System
- 8 shared transition presets: fadeQuick, fadeUp, slideDown, modalScale, dialogPop, backdropFade, expandSlide, slideInRight
- View cross-fades, tree slide-expand, chevron rotate, card hover lift, skeleton shimmer
🎯 Tailwind CSS v4
- CSS-first config (no
tailwind.config.js) - Catppuccin Mocha palette mapped to
@theme→ Tailwind utilities - Backward compatible with existing CSS variables
🔧 Component Refactoring
- Shared utils:
format.ts(29 tests) +markdown.ts - SettingsModal split: 828 → 233 lines (AgentsSection + UpdatesSection extracted)
- RoomsView, GraphView, DocumentsView refactored to use shared utils
🔄 Dynamic Version + Auto-Update
- App version display reads from
@tauri-apps/api/app(no more hardcoded strings) - Auto-check for updates on Settings open (silent, 3s delay)
- One-click download + install via Tauri updater plugin
✅ Testing Infrastructure
- Vitest + @testing-library/svelte + jest-dom
- 60 tests passing — auto-cleanup DOM after each test
Fixed
UtekeDoc.titledeserialization failure on/doc/create- Layout collapse (
height: 100%insideoverflow-y: auto→ 0px) - Nested
<button>in document tree (invalid HTML, clicks swallowed) - External links not opening browser in Tauri webview
- Namespaces page not filling full viewport height
📦 Downloads
| Platform | File |
|---|---|
| 🪟 Windows | CorIn-0.3.0_x64-setup.exe |
| 🍎 macOS (Intel) | CorIn-0.3.0_x64.dmg |
| 🍎 macOS (Apple Silicon) | CorIn-0.3.0_aarch64.dmg |
| 🐧 Linux (deb) | CorIn-0.3.0_amd64.deb |
| 🐧 Linux (rpm) | CorIn-0.3.0-1.x86_64.rpm |
🚀 Quick Start
# Download the latest installer for your platform from the assets above.
# CorIn auto-updates — future versions will be delivered silently.
# Requires uteke-serve running for semantic search & documents
uteke-serve --port 8767Full changelog: https://github.com/codecoradev/corin/blob/main/CHANGELOG.md
CorIn v0.2.0
What's Changed
Major release. Remote connection manager, performance overhaul, and room management UI.
Added
- Connection manager — connect to multiple Uteke instances with trait-based adapter architecture. Config resolution priority: DB primary, then env var, then TOML, then default. Local-vs-remote detection skips local auto-start for remote URLs. Settings UI with cards, add form, test, set primary, delete (#37, #77-#82).
- Runtime reconnect + status polling —
reconnect_connectionrebuilds the live client without restarting the app.disconnect_connectiondrops the client but preserves the row.set_primary_connectionlive-swaps the active backend. Health polling keeps status badges fresh (primary every 15s, all every 60s) (#83). - Connection edit form — pencil edit button per card. Token field intentionally blank since the backend never returns stored tokens; leaving blank keeps the existing token, typing replaces it. Editing the primary connection live-rebuilds the client immediately.
- Namespace filter — multi-select dropdown with 3-state checkbox (all / none / partial). Reusable
NamespaceFiltercomponent shared by Graph and Memories views. Per-namespace fan-out:null= all,[]= none, explicit list for selection (#93). - Room management UI — create room form with keyboard shortcuts, 3-tab detail panel (Timeline, Summary, Participants), chronological timeline with relative timestamps, participant grouping by namespace, delete with confirmation dialog (#74).
- Security hardening — db file perms set to 0600 on startup, auth token wiped to NULL before row deletion, tokens masked in logs.
Changed
- Performance overhaul — killed 21-way namespace fan-out: dashboard recent now uses a single cross-namespace
/recallseed. Added short-TTL in-process cache (namespaces 30s, stats 60s) with no external infra. Generic offset pager replaces fixed-page navigation. NamespacesView loads counts on demand instead of sequential 500-item fetches. - uteke-core v0.6.4 — pinned to crates.io with
default-features = false(ONNX gate). Resolves CI build failures on all platforms. No longer uses git branch pin.
Full Changelog: v0.1.1...v0.2.0