Skip to content

release: v0.3.3#189

Merged
ajianaz merged 6 commits into
mainfrom
develop
Jul 21, 2026
Merged

release: v0.3.3#189
ajianaz merged 6 commits into
mainfrom
develop

Conversation

@ajianaz

@ajianaz ajianaz commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Sync develop → main for v0.3.3 release.

Contents: auto-update manifest fix (#187), unified search memories+documents (#184/#185), HTTP-only version gate (#183), uteke server version in Settings + clickable codecora.dev + bun tooling (#186). See CHANGELOG.md.

ajianaz added 6 commits July 21, 2026 09:43
Version detection no longer shells `uteke --version` on the data/version
path. The effective uteke version is resolved purely from the connected
server's /health `version` field (uteke ≥ 0.7.2) in resolve_uteke_version
— same path for local and remote servers.

Changes:
- Remove the AppState.uteke_version cache field + its startup CLI probe.
- resolve_uteke_version: merge the local/remote branches into one
  HTTP-only path (no cached fallback). Returns None when the server is
  unreachable or older than the /health version field.
- uteke_self_update: drop the now-dead cache write (keeps `uteke upgrade`
  + detect_uteke_version to read the freshly-upgraded CLI version — the
  one remaining CLI touch, which is binary maintenance, not data).

Net effect: CorIn ↔ uteke-serve is HTTP-only for all data + version
gating. The `uteke` CLI binary is invoked only by the explicit "Update
uteke" action (and by bootstrap, which spawns the uteke-serve daemon).
This completes the HTTP-first direction started in #180 and fully removes
the CLI-discovery fragility that caused #171 on Windows.

Docs: compat comments updated to uteke 0.7.x–0.9.x; module doc notes
/room/summary-document is canonical since uteke 0.9.0.

Verified: cargo fmt/clippy(-D warnings)/test (17), svelte-check (0 err),
vitest (61), npm build.
#184)

Add a unified semantic-search path that finds BOTH memories and documents
in one query, via uteke 0.9.0's `search_type` parameter on POST /recall.

Backend:
- uteke_client.rs: `UnifiedSearchResult` struct (mirrors uteke 0.9.0's
  UnifiedSearchResult — result_type discriminator + memory/doc fields, all
  optional fields serde-defaulted for forward-compat) + `recall_unified()`
  method (POST /recall with search_type).
- commands.rs: `recall_unified` Tauri command, gated on uteke ≥ 0.9.0.
- lib.rs: register command + a deserialization unit test covering both a
  memory hit and a document chunk hit.

Frontend (TS layer — UI wiring is a follow-up):
- types.ts: `UnifiedSearchResult` interface.
- ipc.ts: `utekeServer.recallUnified(query, {searchType, namespace, limit})`.

Verified empirically against uteke 0.9.0: POST /recall search_type=all
returns a mixed [{result_type:"memory"}, {result_type:"document"}] list
that deserializes cleanly. cargo fmt/clippy(-D warnings)/test (18),
svelte-check (0 err), vitest (61), npm build.

The MemoryList search UI still uses memory-only `recall`; a follow-up PR
will add a "Memories | All (memories + documents)" toggle and render
unified results with type badges (memory → detail, document → open doc).
…oks (#186)

- ConnectionManager: the per-connection health line now shows the uteke
  server version (from /health, already fetched into HealthInfo.version)
  e.g. "✓ Healthy · uteke v0.9.0 — 12ms". Previously only latency showed.
- tauri.conf.json: beforeDevCommand/beforeBuildCommand switched from
  `npm run` to `bun run`, matching the project's bun tooling preference.

Verified: svelte-check (0 err), vitest (61), bun build.
…1098) (#187)

tauri-action@v1 fails to collect the `.sig` artifacts ("Signature not
found for the updater JSON. Skipping upload..."), so the auto-update
manifest `latest.json` is never uploaded — every release since v0.2.0 is
missing it, and clients error with "Could not fetch a valid release JSON
from the remote".

Workaround (deterministic, doesn't depend on tauri-action's flaky manifest
logic):
- Each platform build uploads its signed updater bundle + `.sig` as a
  workflow artifact (the `.sig` exists on disk; tauri-action just doesn't
  collect it).
- A new `publish-updater-json` job downloads those artifacts and runs
  scripts/build-updater-manifest.ts, which reads each `.sig` + maps it to
  the matching release-asset URL (via `gh`) and writes a Tauri v2
  `latest.json` (version/notes/pub_date/platforms), then uploads it to the
  release with `gh release upload --clobber`.

Also:
- Switch the release runner to bun (oven-sh/setup-bun@v2 + bun install +
  tauriScript: "bunx tauri"), matching the project tooling preference.
- Remove the invalid `updaterKeepSingleGroup` input (not a valid
  tauri-action@v1 input — it was warned + ignored).

NOTE: end-to-end verification requires a release cut (tag push) — the
manifest job only runs there. Suggest cutting v0.3.3-beta.1 to confirm
latest.json appears + the in-app updater resolves.

Linux (deb/rpm) has no auto-update bundle (no AppImage target); it's
omitted from the manifest by design (updater_key: "").
…ion (#185)

Wires the unified-recall backend (#184) into the MemoryList UI:

- Add a "Memories | All" scope toggle next to the search bar. "All" runs
  `utekeServer.recallUnified` (search_type=all) and renders a mixed list of
  memory + document hits, each badged (💾 Memory / 📄 Doc). "Memories" keeps
  the existing memory-only recall path.
- Memory hits → `onmemoryclick(id)` (opens detail, unchanged).
- Document hits → new `ondocumentclick(slug)` prop → App.openDocument →
  stashes the slug in a `pendingDocSlug` store + navigates to Documents.
- DocumentsView consumes `pendingDocSlug` on mount via a `$effect` and opens
  the doc by slug (`navigateToSlug`), then clears it.

New: src/lib/stores/nav.ts (pendingDocSlug store).

Verified: svelte-check (0 err), vitest (61), npm build. (Recall/TS layer
from #184 already empirically validated against uteke 0.9.0.)
* chore(release): v0.3.3

Patch release — auto-update now works, unified search, HTTP-only version
gate, server version in Settings, bun tooling.

- bump version 0.3.2 → 0.3.3 (package.json, Cargo.toml, Cargo.lock,
  tauri.conf.json)
- CHANGELOG entry

Contents (since v0.3.2):
- Added: unified search across memories + documents — "Memories | All"
  toggle (#184, #185)
- Fixed: auto-update — generates latest.json manifest (workaround
  tauri-action#1098 that left every release since v0.2.0 without it) (#187)
- Changed: version detection fully HTTP-only (#183); uteke server version
  in Settings → Connections (#186); tooling switched to bun (#186, #187)

Verified: cargo fmt/clippy(-D warnings)/test (18), svelte-check (0 err),
vitest (61), npm build.

* feat(settings): make codecora.dev clickable (opens in browser)

The "codecora.dev" line under CorIn vX.Y.Z in the Settings sidebar is now
a link — clicking opens https://codecora.dev in the system browser via
@tauri-apps/plugin-shell (preventDefault + shellOpen), matching how
DocumentsView handles external links. Accessible (real href) + hover style.
@github-actions

Copy link
Copy Markdown

🔍 Cora AI Code Review

⚠️ Review could not complete. Cora produced an empty result. Check the workflow logs for errors.


Review powered by cora-cli · BYOK · MIT

@ajianaz
ajianaz merged commit f1c92ca into main Jul 21, 2026
15 checks passed
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