Skip to content

feat(source-control): add push-selection and operation-state foundation - #129

Open
ClaudiaFang wants to merge 1 commit into
mainfrom
claude/source-control-foundation
Open

feat(source-control): add push-selection and operation-state foundation#129
ClaudiaFang wants to merge 1 commit into
mainfrom
claude/source-control-foundation

Conversation

@ClaudiaFang

Copy link
Copy Markdown
Member

Summary

  • Adds src/logic/source-control/PushSelectionStore.ts — tracks which pending sync changes are "Ready to Push" (includeForPush()/excludeFromPush()), independent of the SyncPlanner/SyncExecutor change model. Deliberately avoids VCS stage/unstage terminology.
  • Adds src/logic/source-control/OperationState.ts — tracks per-path in-flight operation status (idle/running/success/failed), independent of selection.
  • Both are pure, UI-independent modules — no DOM/provider dependencies, no changes to existing SyncManager/SyncPlanner/SyncExecutor behavior.
  • No new UI — this is data-layer prep for a future Source Control panel (separate follow-up PR).

Closes #128.

Test plan

  • npx eslint . — 0 errors
  • npm run build — clean, including Obsidian 1.11.0 compat typecheck
  • npx vitest run — 58 files / 623 tests passed (10 new: PushSelectionStore.test.ts, OperationState.test.ts)

🤖 Generated with Claude Code

@sonarqubecloud

Copy link
Copy Markdown

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.

feat(source-control): add push-selection and operation-state foundation

1 participant