Releases: SawyerHan-AI/TideMind
Release list
v0.2.88
What's new
Use your signed-in Claude Code or Codex subscription
TideMind can now run text-model tasks through the Claude Code and Codex CLIs already signed in on your Mac. This gives you another option alongside API connections and Ollama, without configuring a separate API key for these providers.
- Add Claude Code or Codex under Settings → Models → New Connection → Local Subscriptions.
- Test Connection validates every supported model before it becomes selectable.
- Model selection now separates Connection and Model, while preserving existing task-depth controls.
- Light, standard, and deep tasks are supported. Embeddings continue to use an API or local-model connection.
- AI Service Status shows the resolved CLI path, version, login state, latest test result, and actionable error details.
- Usage statistics now break calls down by connection and source. Subscription calls use API-equivalent token pricing for cost estimates only.
Safer background execution
Local subscription calls run with tools disabled, a restricted environment, isolated runtime directories, bounded concurrency, and explicit shutdown draining. Ambiguous interrupted calls are never automatically replayed, avoiding duplicate remote work.
Reliability and security
- Improved shutdown coordination across model calls, background memory work, and note-source synchronization.
- Updated the desktop, cloud, website, and build dependency chains for newly disclosed security advisories.
v0.2.87
What's fixed
Logseq sync: no more duplicate version nodes
Repeatedly editing the same Logseq note used to leave many stale old-version nodes "active" in your brain, cluttering the browse list. This release makes old versions correctly retire (heat decays to the floor) so only the current version stays prominent.
Root causes addressed:
- Old versions that fell out of the current note state are now reliably retired (set-difference reconciliation instead of brittle positional matching).
- Emptying or trimming a note now retires its old nodes instead of orphaning them — while files that are merely offline (iCloud "optimize storage") are left untouched.
- Concurrent saves of the same file are serialized, so a slow digest can't lose the newer save.
- Pure-separator / empty-bullet blocks no longer create zero-information nodes.
- Date-named pages outside
journals/are now treated consistently as journals (correct created date + age-based heat). - Shutdown now waits for in-flight note processing to finish before closing the database, preventing orphaned nodes when you quit.
No action needed — old duplicate versions decay on their own after upgrading.
v0.2.86
What's new in 0.2.86
This release fixes older note versions lingering at high prominence, plus a dependency security update.
Fixes
- Older note versions now fade correctly — when you repeatedly rewrite a note, its earlier versions are meant to cool down and recede into the background, leaving only the latest version prominent. A cloud-sync round-trip was dropping that cool-down, so retired versions stayed "hot" and appeared large and bright in the graph. They now correctly settle to a minimal, dim state and stay that way across devices.
Security
- Upgraded undici to patch high-severity advisories.
v0.2.85
What's new in 0.2.85
This release rebuilds multi-device sync and restores full memory context for connected agents, alongside a broad round of stability and security fixes.
Cross-device sync, rebuilt
- Faster, more reliable sync — local changes now reach the cloud within seconds instead of waiting for the next cycle.
- Deletes and restores propagate correctly — deleting or restoring a memory on one device now reliably reflects on your others, with no more "deleted note coming back to life."
- Your edits win over stale updates — a causal version stamp keeps a manual edit from being overwritten by an in-flight background update.
- Recall stays consistent across devices — memories synced from another device get their embeddings backfilled, closing gaps in semantic recall.
Memory context for connected agents
- Full profile restored in Claude Code and other external agents — the session-start context had grown past the host's injection limit, so agents were seeing a truncated or missing profile. It now fits within budget again, so agents see your complete profile, memory index, and guidance.
- Fixed an issue where a malformed profile could be stored as raw data; affected profiles now self-heal on read.
Fixes & security
- A wide range of stability fixes across recall filters, memory metabolism, search, and the app UI, from a full cross-system audit.
- Upgraded several dependencies to patch known security advisories.
v0.2.83
What's new in 0.2.83
A bug-fix and stability release.
Fixes
- Memory recall filters — Tag, type, and source-agent filters were being ignored on some recall/browse paths. They now apply consistently, so filtered recalls return the results you actually asked for.
- Subscription status — Fixed the client not refreshing your plan right after an upgrade (it could keep showing Free until restart).
Security
- Patched a path-traversal vulnerability in a transitive dependency (
tmp, GHSA-ph9p-34f9-6g65).
v0.2.82
What's new in v0.2.82
Two server-only bug fixes found while exercising brain_recall after the
v0.2.77 → v0.2.81 redesign series. Both are contract violations rather than
crashes — agents could call brain_recall and get answers, but the answers
diverged from the design spec in subtle ways.
Fixed: sort=recent default ignored on the browse path
When brain_recall is called with no query (e.g. "list my recent
notes", or "give me anything tagged project:alpha"), the design spec says
the default sort should be recent — order by created DESC. The browse
path in src/tools/recall.ts and pro/cloud-server/src/tools/recall.ts
instead hardcoded orderBy: 'heat DESC'. Result: "show me the latest" was
silently returning the hottest nodes regardless of recency.
The fix reads input.sort and respects the design contract:
- No
query+ no explicitsort, orsort='recent'→created DESC - No
query+sort='relevance'→heat DESC(nothing to compute
relevance against, heat is the closest proxy)
If you were getting "stale" results when asking your agent to list recent
activity, this is why.
Fixed: only-context calls were silently running an empty pipeline
The handler precheck used hasSearchDim = query !== undefined || context !== undefined to decide whether to reject empty-input calls. But per design
§5.2, context alone is not a search dimension — it's metadata that
tells the recall pipeline why a query was issued, not what to embed.
So a call like brain_recall({ context: "..." }) with no query, no
filters, and no override would pass the precheck, fall through to the
browse path, and return random recent nodes — confusingly attributed to the
context string the agent provided.
The fix:
contextremoved fromhasSearchDim.- Error message updated to explicitly say "context 单独传无效,需要配合
query". - Symmetric change in both local and cloud handlers.
What you need to do
- Update TideMind to v0.2.82 (automatic).
- Restart any external agents (Claude Desktop / Claude Code / Cursor /
Codex CLI) once so their MCP server subprocess picks up the new
build. - No Skill regeneration needed — the agent prompt is unchanged. Only the
server's interpretation of two existing behaviors moved closer to the
design contract.
Apology
That's six releases in 36 hours covering the same redesign (v0.2.77 → 78 →
79 → 80 → 81 → 82). The pattern is real: server-only contract drift slips
past the existing release verifier because it only exercises the cloud
endpoint and the update API, not the local recall pipeline against the
design spec. Adding a "run brain_recall through a fixture of design-spec
calls and diff against expected output shape" gate is now in the backlog.
v0.2.81
What's new in v0.2.81
A follow-up to v0.2.77 / v0.2.80 fixing a Skill sync gap.
Fixed: per-agent Skill files were not updated to the v0.2.77 schema
When v0.2.77 redesigned brain_recall, I updated data/skill/base-skill.md
to describe the new parameters (multi-dimensional stacking, match: any/all,
exact_matches / related_matches, etc.) — but forgot to mirror the
change into the 7 agent-specific Skill files that agents actually load:
claude-code-skill.mdcodex-skill.mdcowork-skill.mdcursor-skill.mdwindsurf-skill.mdopenclaw-skill.mdgemini-skill.md
So even after users regenerated their Skill in TideMind, the agent prompt
still taught the old intent / include_surprise parameters. Every recall
call then triggered the deprecation hint, leaving agents confused and users
seeing repeated upgrade prompts.
This release:
- Synchronizes the parameter reference section across all 7 agent Skill
files to the v0.2.77 schema (search dimensions + filter dimensions +
return controls + override entries + canonical examples). - Also updates
gemini-commands/brain-recall.tomlto teach the new idiom
(multi-dimensional stacking + never-empty results) instead of the older
"first list with mode=index" workflow.
What you need to do
- Update TideMind to v0.2.81 (automatic).
- Open Settings → External Integration.
- Click "Regenerate Skill" for each configured agent so the new prompt
text lands in the agent's plugin directory. - Restart the external agent (Claude Desktop / Claude Code / Cursor / etc.)
so it picks up the regenerated Skill.
If you skipped this step before, recall calls were silently triggering the
deprecation hint instead of doing real work. After updating you'll see
agents using match, time, tags, etc. naturally.
Apology
This is the fifth release in a 24-hour window covering the same redesign
(v0.2.77 → 78 → 79 → 80 → 81). Each one fixed a gap revealed only after
real-world testing:
- v0.2.78: heat clamp shouldn't be a manual runbook
- v0.2.79: Codex agent card UI still asked to copy AGENTS.md
- v0.2.80: schema version constant not bumped, migration silently never ran
- v0.2.81: per-agent Skill files not synced
Each of these should have been caught at design time. Backlog: tighten the
release verification to actually exercise the full client → skill → MCP
agent loop in CI before stamping a version.
v0.2.80
What's new in v0.2.80
A critical hotfix for users running v0.2.78 or v0.2.79.
Fixed: brain_recall could fail with "no such column" SQL error
v0.2.78 added 4 new diagnostic columns to the operation_log table
(exact_count, related_count, fallback_chain, vector_unavailable) via
migration v28. However, I forgot to bump the CURRENT_SCHEMA_VERSION
constant from 27 to 28 at the same time.
The migration trigger condition currentVersion < CURRENT_SCHEMA_VERSION
evaluates to 27 < 27 = false, so the migration silently never runs.
Meanwhile, logOperation was upgraded to write 12 columns including the new
4 — against a database that still only has the old 8 columns. Every recall
call hits SQLite error: no such column: exact_count.
If you were on v0.2.78 or v0.2.79 and brain_recall was failing for you,
that's what was happening.
This release:
- Bumps
CURRENT_SCHEMA_VERSIONto 28 so the migration runs on startup. - No other code changes.
Impact
- Fresh installs on v0.2.80: clean (the schema baseline already includes the
4 columns). - Upgrades from v0.2.77 → v0.2.80: migration runs once, columns get added.
- Upgrades from v0.2.78 or v0.2.79 → v0.2.80: migration runs once (it was
blocked before), columns get added.
After updating, restart any external agents (Claude Desktop / Claude Code /
Cursor / etc.) once more to make their MCP server subprocess reconnect to
the now-migrated database.
Apology
Sorry for the noise across three back-to-back releases (v0.2.77 / v0.2.78 /
v0.2.79). The release verifier checks that the cloud reports the new version
and the update API returns it, but it does not exercise the local database
migration path. That gap is now in the backlog.
v0.2.79
What's new in v0.2.79
A tiny UI cleanup on top of v0.2.78.
Codex agent card no longer asks you to copy AGENTS.md
The Settings → External Integration page used to tell Codex users:
AGENTS.md guide needs to be copied to project root or ~/.codex/AGENTS.md.
That instruction was a leftover from the v1 Codex integration. v2 (Codex CLI
0.121+) auto-installs the Skill to ~/.codex/skills/tidemind-<agentId>/SKILL.md
and Codex loads it on startup — no manual copying needed.
This release:
- Updates the hint text across all 12 supported languages to reflect the v2
behavior. - Hides the legacy
~/Downloads/tidemind-codex-<id>.mdpath from the agent
card when the v2 native install is present, so users no longer see two
paths and wonder which one to copy.
If you're on Codex CLI < 0.121, the wizard still surfaces an upgrade hint as
before — that path is unchanged.
No other changes
No code behavior changes from v0.2.78. MCP server, cloud server, and database
schema are identical to v0.2.78.
v0.2.78
What's new in v0.2.78
A small hotfix on top of v0.2.77.
Cloud upgrade is now fully automatic for Pro users
v0.2.77 introduced a one-time heat-counter clamp that Pro users were asked
to run manually by opening the Railway dashboard and pasting a SQL
runbook. That was a mistake — the operation is idempotent, the data volume
is small, and Pre-Deploy has no concurrent users, so it should have been
shipped as a migration from day one.
v0.2.78 moves the clamp into migrations/023-heat-cap-clamp.sql. Railway
runs it automatically as part of Pre-Deploy when this version is pushed.
Pro users don't need to touch the dashboard.
If you already ran the v0.2.77 runbook by hand: re-running is harmless
(the migration is idempotent — zero rows changed on the second run).
No other changes
This release is a pure migration relocation. No code behavior changes from
v0.2.77.