github dongdongbh/Mindwtr v0.6.13

10 hours ago

Mindwtr 0.6.13

Highlights

  • Major sync reliability hardening across core, desktop, and mobile (revision persistence, local-change aborts, queued-error surfacing, and safer merge behavior).
  • Cloud attachment security and stability improvements (path traversal hardening, endpoint rate limits, and upload timeout/retry).
  • Better desktop/mobile UX and accessibility (delete confirmation + undo, improved labels, localized placeholders, loading skeletons, and larger mobile touch targets).
  • Large refactor and testability push (sync orchestration coverage, cloud API integration tests, shared sync runtime helpers, and component splitting).
  • Linux desktop polish: native top menu is now macOS-only, and Linux app metadata/icon handling was improved.

Core Sync & Data

  • Persisted rev/revBy in SQLite so conflict resolution metadata survives local saves.
  • Ignore invalid deletedAt values for operation-time tie breaking.
  • Preserve winner updatedAt during timestamp normalization.
  • Detect content divergence when revisions tie.
  • Merge settings per-field inside sync groups.
  • Keep pending snapshot after save failures to reduce data-loss risk.

Desktop

  • Cleared orphaned external sync debounce timer on watcher stop.
  • Captured local snapshot timestamp after pending flush to avoid false stale aborts.
  • Added timeout/retry for cloud attachment uploads.
  • Added task delete confirmation and undo toast recovery.
  • Improved metadata/attachment accessibility labels.
  • Added global search loading skeleton.
  • Kept project/section/area selectors within viewport.
  • Refactored task/project editor internals and split oversized modules.

Mobile

  • Added local-change sync abort protection and in-flight sync abort handling.
  • Added offline/network-drop abort behavior for sync HTTP requests.
  • Default sync backend now off for first launch parity.
  • Localized hardcoded tag placeholders.
  • Sanitized sync failure alerts to avoid exposing raw internal errors.
  • Increased task edit touch target sizes.
  • Cached sync config reads between cycles.
  • Capped attachment cleanup work per sync cycle.

Cloud / MCP / FOSS

  • Hardened cloud attachment path resolution.
  • Added attachment endpoint-specific rate limiting.
  • Added enforceable cloud bearer-token allowlist option.
  • Strengthened cloud app-data payload validation.
  • Reused SQLite connection in MCP server to reduce overhead.
  • Kept FOSS APK prep stable and CI signing flow aligned.

Testing / Refactor

  • Added desktop and mobile sync orchestration tests.
  • Added cloud API integration tests.
  • Added desktop sync service reset hooks for test isolation.
  • Lazy-loaded mobile logger Expo FS dependency for Node test compatibility.
  • Extracted shared sync runtime helpers into @mindwtr/core.
  • Unified attachment map/loop handling across desktop sync backends.

Full Change List (since 0.6.12)

  • 6866e5c fix(desktop): limit native menu to macOS and improve Linux app metadata
  • aeed2ba fix(desktop): resolve task refactor TypeScript regressions
  • c659c9f refactor(desktop): use resolveText for discard confirmation
  • d793597 refactor(desktop): split project section dnd and actions
  • 0551160 refactor(desktop): extract task layout and project attachment hooks
  • 50fbd36 refactor(desktop): split task item field editors and context hook
  • 2168c83 refactor(sync): share cloud/file attachment sync loop
  • f0e9357 feat(desktop): add loading skeleton for global search
  • e484224 fix(mobile): increase task edit touch target sizes
  • af73b84 fix(desktop): keep selectors within viewport bounds
  • f129ac6 test(sync): add desktop and mobile orchestration coverage
  • 5fc3dfe test(cloud): add api integration coverage
  • 27fc07a fix(mobile): lazy-load expo fs in logger for node tests
  • 32a2883 refactor(sync): extract shared runtime helpers to core
  • cd89027 test(sync): add desktop sync service reset hooks
  • 72cc9a8 refactor(sync): share attachment map collection across backends
  • 7086a94 feat(mobile): abort in-flight sync HTTP requests on offline
  • ef08938 fix(desktop): improve accessibility labels for metadata and attachments
  • fce0bd0 perf(mobile): cap attachment cleanup work per sync cycle
  • 29425d3 perf(mobile): cache sync config reads between cycles
  • 92b42a1 fix(mobile): avoid exposing raw sync errors in alerts
  • 41d74c2 refactor(desktop): centralize translation fallbacks in components
  • 6ba87a7 fix(mobile): localize tag input placeholders
  • be6553b feat(desktop): add undo toast action for task delete
  • a3c16aa fix(desktop): confirm task deletion before soft delete
  • 44357b7 fix(desktop): stage attachment sync mutations on a working copy
  • 2dc050e fix(mcp): reuse sqlite connection across tool calls
  • 53effad fix(cloud): strengthen app data payload validation
  • 5dbd482 fix(cloud): support enforceable bearer token allowlist
  • 336eb7b fix(mobile): default sync backend to off
  • 224795c fix(mobile): abort in-flight sync when network drops
  • 369632d fix(sync): merge settings groups per field
  • 4dc0f46 fix(sync): flag content divergence when revisions tie
  • a3cf58d fix(sync): preserve updatedAt during timestamp normalization
  • 900de83 fix(sync): surface queued sync failures
  • de12e63 fix(cloud): apply dedicated rate limits to attachment endpoints
  • 7a37a94 fix(desktop): capture sync snapshot after pending flush
  • 22887ba fix(desktop): add retry and timeout for cloud attachment uploads
  • 581ecdc fix(core): retain pending snapshot after save failures
  • e4e5acc fix(core): ignore invalid deletedAt operation times
  • 3f31112 fix(desktop): clear external sync timer on watcher stop
  • 7a1f047 fix(cloud): harden attachment path resolution
  • 294114f fix(mobile): abort sync when local data changes
  • 83c29c0 fix(core): persist rev metadata in sqlite
  • ca3a64a fix(mobile): suppress sync errors when offline or in airplane mode
  • 9e253ea fix(macos): use help menu id without extra reference
  • a687faf fix(desktop): add actionable macOS Help menu items
  • 7794f7e fix(foss): keep unsigned apk prep stable
  • cb30cb8 fix(ci): sign foss apk with release keystore
  • f04569a fix(mobile): parse Play Store version from AF_initData payload
  • 4f73106 fix(mobile): align Metro doctor config
  • 5ed78a8 fix(mobile): harden update checks for Play and FOSS builds
  • 53dbc4f fix(desktop): harden Windows notifications and weekly review reminders
  • 841e3d1 fix(mobile): remove bottom tab active underline

Don't miss a new Mindwtr release

NewReleases is sending notifications on new releases.