Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 3.48 KB

File metadata and controls

43 lines (31 loc) · 3.48 KB

Session Progress Log

Completed work is archived in archive/, one file per calendar month.

Current State

Last Updated: 2026-07-31 Active Feature: feat-025 — Sync Status tree view with folder selection and a Show synced toggle (code complete, manual Obsidian verification pending). Parallel Work: PR #87 — 4x Dependabot security alerts being fixed via npm overrides.

Status

What's Done

  • feat-001..024 and core move-detection fixes — see archive/2026-07.md.
  • refactor(sync-status): centralize status classification (c610dde): introduced a pure SyncStatusService and routed full refresh, fallback content comparison, live edits, rename/move, remote-only discovery, and optimistic push completion through its one status policy.
  • refactor(sync-status): share status state with sync manager (9cefb25): the service owns the shared status map and publishes snapshots; SyncManager records confirmed syncs there, and SyncStatusView subscribes instead of holding its own map.
  • test(sync): guard never-pushed rename status (e586fc2): verifies trackRename leaves missing metadata absent and the view carries the renamed row as Local only, never as moved.
  • fix(sync): honor ignore patterns for direct push (61ca728): the Ribbon, context-menu, and command single-file Push paths now stop before a vault read or remote call when a user ignore pattern matches. Batch Push filters ignored paths too; saving relevant settings rebuilds the ignore matcher immediately.
  • fix(sync): reconcile moves from legacy metadata (ed04867): an out-of-band move after restart now treats a missing legacy lastKnownPath as the metadata record key, allowing the unique SHA-matched Local only + Remote only pair to become a safe Move.
  • feat(sync): auto-refresh status on startup: enabled by default with a settings toggle; Synced tab is last and Synced rows are bottom-most on All.
  • feat(ui): Sync Status tree view (feat-025): paths are grouped into collapsible folders, and folder checkboxes select all visible descendant files with an indeterminate state for partial selection. The option row below Refresh toggles tree view and, when enabled, Show synced. Folder disclosure uses unboxed + / signs. Code complete; all automated checks pass.
  • fix(ui): show diff for moved-and-edited files: moved rows retain the source path's remote SHA and current local content, so Diff compares the old remote file to the moved file even after further edits.
  • feat(changelog): add 1.5.0 What's New copy: added the six approved highlights in English, Traditional Chinese, and Simplified Chinese, plus a link to the GitHub repository from the What's New modal.

What's In Progress

  • feat-025: Manual verification in Obsidian — tree hierarchy, folder expand/collapse, individual and folder checkboxes, and Show synced toggle.

What's Next

  1. Manual Obsidian verification of feat-025 (tree view).
  2. PR #87 merging (4x Dependabot security patches via npm overrides).
  3. Issue #57 live-credential smoke test remains relevant before merging push/pull/delete work.

Evidence of Completion

  • npx eslint . — 0 errors
  • npm run build — passes, including Obsidian 1.11.0 compatibility typecheck
  • npx vitest run — 33 files, 490 tests passed
  • npx vitest run — 31 files, 478 tests passed
  • npx vitest run — 33 files, 494 tests passed
  • Manual verification inside Obsidian — outstanding