Skip to content

Add notes folder with iCloud Drive and two-way GitHub sync to the dem… - #202

Closed
abinesan wants to merge 1 commit into
nodes-app:mainfrom
abinesan:feature/notes-sync
Closed

abinesan wants to merge 1 commit into
nodes-app:mainfrom
abinesan:feature/notes-sync

Conversation

@abinesan

Copy link
Copy Markdown

…o app

The demo now keeps notes as .md files in a folder, shown in a sidebar next to the editor. The folder can live on this Mac or in the app's iCloud Drive container, and can sync both ways with a folder in a GitHub repository.

  • NoteStore: list/open/save/create/rename/trash notes with NSFileCoordinator; watches the iCloud container with NSMetadataQuery and reloads changed notes
  • GitHubSync: three-way compare (local, GitHub, last-synced) by git blob SHA over the REST API; one commit per sync, fast-forward only with retry, conflict copies instead of overwrites; token kept in the keychain
  • NotesView / SyncSettingsView: sidebar, sync button and status, Settings
  • ContentView takes the open note's text and documentId from the store
  • Sync/README.md: iCloud and GitHub setup steps and sync rules

Claude-Session: https://claude.ai/code/session_01QXMzNmasFWnrrqUxgSR6AZ

…o app

The demo now keeps notes as .md files in a folder, shown in a sidebar next
to the editor. The folder can live on this Mac or in the app's iCloud Drive
container, and can sync both ways with a folder in a GitHub repository.

- NoteStore: list/open/save/create/rename/trash notes with NSFileCoordinator;
  watches the iCloud container with NSMetadataQuery and reloads changed notes
- GitHubSync: three-way compare (local, GitHub, last-synced) by git blob SHA
  over the REST API; one commit per sync, fast-forward only with retry,
  conflict copies instead of overwrites; token kept in the keychain
- NotesView / SyncSettingsView: sidebar, sync button and status, Settings
- ContentView takes the open note's text and documentId from the store
- Sync/README.md: iCloud and GitHub setup steps and sync rules

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXMzNmasFWnrrqUxgSR6AZ
@abinesan abinesan closed this Oct 12, 2026
@abinesan abinesan reopened this Oct 12, 2026
@abinesan abinesan closed this Oct 12, 2026
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.

2 participants