github dongdongbh/Mindwtr v0.6.17

latest release: v0.6.18
6 hours ago

Mindwtr 0.6.17

Highlights

  • Addressed high-priority reliability issues identified in the comprehensive review across cloud, core sync, MCP server, and mobile task editing.
  • Improved mobile sync UX with a global sync status indicator, sync connection checks, dedicated empty states, and better accessibility labels.
  • Strengthened sync correctness for attachments and store persistence (empty URI preservation, remote cleanup retry behavior, queue-flush robustness, and safer restore semantics).
  • Hardened security and configuration paths with explicit cloud any-token opt-in and stricter MCP write-mode CLI handling.
  • Stabilized CI and tooling by fixing watch-mode hangs in desktop tests, restoring mobile/core CI compatibility, and aligning lint/TypeScript versions.

Core / Sync / Data Integrity

  • Preserved empty attachment URIs during sqlite deserialization so pending-upload metadata is not dropped.
  • Added retry tracking for failed remote attachment cleanup attempts.
  • Fixed store flush behavior to continue draining newer queued saves after failures.
  • Preserved task status when restoring deleted tasks.
  • Improved merge edge-case handling for invalid deletedAt, explicit empty attachment arrays, and deep-cloned settings merges.

Cloud / MCP / Security

  • Enforced task title length validation on cloud PATCH updates.
  • Required explicit opt-in for cloud any-token auth mode when auth token list is unset.
  • Wrapped MCP tool failures in MCP-compatible { content, isError } responses.
  • Standardized MCP server write mode to --write.

Mobile / Desktop UX

  • Added mobile fail-safe boundary handling for task edit modal audio lifecycle errors.
  • Added mobile sync status indicator, sync connection checks, and empty-state UI coverage.
  • Improved mobile accessibility labels and removed hardcoded status fallback labels.
  • Fixed stale sync error banners showing after switching sync backend to Off.
  • Continued desktop quality improvements (archived status support, tray/dock behavior fixes, UI polish).

Tooling / Docs / Tests

  • Enabled sqlite-adapter test execution in core vitest runs.
  • Aligned ESLint and TypeScript workspace versions.
  • Fixed desktop CI hangs by ensuring CI test scripts run in non-watch mode.
  • Updated docs and wiki references (roadmap links, developer guide table fixes, contribution docs cleanup).

Full Change List (since 0.6.16)

  • 3282ad7 fix(mobile): hide stale sync errors when backend is off
  • bb0fca5 fix(ci): avoid watch-mode hangs and timer-stalled store test
  • d6808c0 fix(ci): restore mobile typecheck and core bun test compatibility
  • 9dbcf79 refactor(mobile): extract task edit modal helpers
  • 9eab82e feat(mobile): improve quick capture accessibility labels
  • 70dc68b refactor(mobile): extract quick capture context helpers
  • ba49b6d refactor(desktop): extract sync attachment helpers
  • fb9d29c test(core): run sqlite adapter tests in vitest
  • 005248b feat(mobile): add sync connection checks and empty state component
  • 55e62ea fix(mobile): remove hardcoded status fallback labels
  • bfe3371 feat(mobile): show global sync status indicator
  • 14d18fd chore(tooling): align lint and TypeScript versions
  • 38b43c7 docs: add roadmap issue links and fix developer guide table
  • 8297da7 refactor(core): share recurrence constants across apps
  • d9678ca fix(cloud): require explicit opt-in for any-token mode
  • 386d3b8 fix(mcp-server): accept only --write for write mode
  • 824e2b7 fix(sync): deep-clone merged settings values
  • 74afee8 fix(sync): preserve explicit empty attachment arrays
  • 6d47c48 fix(sync): make invalid deletedAt fallback explicit
  • e95c470 fix(core): preserve task status on restore
  • a413209 fix(core): continue flush when newer save is queued
  • a312962 fix(sync): persist and retry failed remote attachment cleanup
  • f630e6f fix(core): preserve empty attachment URIs in sqlite load
  • 6271f89 fix(mobile): add fail-safe boundary for task edit modal
  • 2ea632f fix(mcp-server): wrap tool failures in MCP error responses
  • a305d15 fix(cloud): validate task title length on patch
  • 81cc023 fix(analytics): keep heartbeat failures fully silent
  • 32f8a45 fix(desktop): coerce legacy ymd date format for settings UI
  • bb9274c docs: polish contributing links and translation references
  • 025bff6 docs: unify contributing guidance and remove wiki duplicate
  • 6062f8e docs: update star-and-share messaging in readmes
  • 9eabdd5 feat(settings): add locale-aware date format preference
  • 3d38b85 fix(desktop): persist tray close preference reliably
  • 866befb fix(desktop): hide dock icon in macOS tray mode
  • 0c1ba2e feat(task-edit): auto-detect text direction
  • 1910699 chore(ci): stop updating homebrew tap cask
  • 4ff3da7 feat(analytics): add device and locale heartbeat fields
  • b736503 feat(analytics): add daily heartbeat integration
  • c2c5bbb fix(sync): block remote writes when attachment uploads are pending
  • 546279f feat(desktop): hide empty Today's Focus panel
  • a881465 fix(mobile): add fullscreen preview for image attachments
  • 08f85ba refactor(core): move i18n modules under src/i18n
  • b4667ad docs(readme): fix CONTRIBUTING links in en and zh
  • 90e5c55 docs(readme): add translation contribution link in support section
  • 5e2d598 fix(desktop): default list details to off
  • 0dfb6b8 refactor(core): split i18n into per-language locale files
  • 1701eda fix(mobile): speed up app startup on slow Android devices
  • c4c2714 docs(readme): use IzzyOnDroid shield badge in Android section
  • 25ca426 docs(readme): add IzzyOnDroid badges and install steps
  • 54933ce refactor(mobile): unify notifications on local OSS backend
  • b03b842 fix(mobile): enable local notifications in FOSS builds
  • a13d118 fix(foss): strip install-referrer permission and format metadata
  • 75c2144 test(mobile): include isAIKeyRequired in ai-config mock
  • 7b89069 fix(mobile): remove GPT-5 copy in FOSS reasoning hint
  • 02c522d feat(calendar): add quick mark-done actions
  • 56ed978 feat(desktop): add archived status option for tasks
  • 4025e7a feat(core): default notifications off on first install
  • cda1a40 fix(desktop): prevent board column border clipping
  • a969089 fix(desktop): prevent clipped task selection border
  • 5eb53bb fix(mobile): remove notification settings in FOSS build
  • 06905a2 fix(mobile): allow keyless local OpenAI-compatible AI
  • b9c4107 fix(mobile): smooth task edit/view swipe transition
  • c4c6e6d fix(ai): allow keyless OpenAI-compatible endpoints
  • 7de504e fix(desktop): split AUR update checks by package type
  • b0fcb94 fix(ci): preserve pkgrel for AUR checksum updates
  • 6966eaa fix(release): require WebView2 in winget manifest
  • 0f5d251 fix(ci): update AUR source checksum generation
  • 724db07 fix(linux): add appstream metainfo to appimage
  • 995022d fix(ci): inject missing diricon into linux appimage
  • f474b4c fix(ci): harden winget silent installer manifest
  • 9bc789d chore(ci): default release dispatch toggles to off
  • 7b616a2 fix(ci): checkout source before aur-source tag resolution
  • 873cac4 fix(ci): allow post-release manual jobs when release is skipped
  • 4552aff feat(ci): allow manual rerun of post-release jobs
  • 5deade8 fix(ci): preserve aur repo ownership in srcinfo step

Don't miss a new Mindwtr release

NewReleases is sending notifications on new releases.