mirror of
https://github.com/firstsun-dev/git-files-sync.git
synced 2026-07-22 17:20:30 +00:00
Records feat-014 (GitHub GraphQL batch push/delete, commit114a575) and feat-015 (avoid stale remote-tree read after push, commit7676325) as done. Also archived feat-011/012/013 and other completed narratives out of progress.md (had grown past its own 80-line cleanup threshold) into archive/2026-07.md, and trimmed feature_list.json evidence strings under 300 chars — harness self-audit was 96/100, now 100/100.
4.1 KiB
4.1 KiB
Session Progress Log
Completed work is archived in archive/, one file per calendar month — this file only tracks what's still open.
Current State
Last Updated: 2026-07-14 12:05 Session ID: current Active Feature: None — feat-014 and feat-015 both committed. Ready for the next issue.
Status
What's Done
- feat-001..013 — see archive/2026-07.md
- feat-014: GitHub's
pushBatch/deleteBatchnow use GraphQLcreateCommitOnBranchinstead of the REST blob-per-file loop (commit114a575). - feat-015: fixed a false "modified" status right after batch push, caused by GitHub's tree-by-branch-name read lagging a just-completed write.
pushAllFilesnow returnssyncedPaths;SyncStatusViewmarks those files synced directly instead of re-fetching the remote tree (commit7676325).- Both committed onto
claude/fix-directory-symlink-pull-260713, not yet pushed to remote. - Evidence:
npx eslint .→ 0 errors;npm run build→ clean;npx vitest run→ 344/344 passed.
- Both committed onto
What's In Progress
- Nothing actively in progress.
What's Next
- Push
claude/fix-directory-symlink-pull-260713to update PR #51 — confirm with the user first. - Manually verify feat-014/feat-015 inside the actual Obsidian plugin UI (this session's verification used a live GitHub API smoke test driving
GitHubServicedirectly, not the full plugin). - Filed issue #57 (repo
git-files-sync, Project #6, P2, 4h estimate): build a repeatable live-credential smoke test process across GitHub/GitLab/Gitea, not just GitHub — https://github.com/firstsun-dev/git-files-sync/issues/57 - Re-sync against
gh issue list --repo firstsun-dev/git-files-sync --state open—feature_list.json's backlog is a snapshot from an earlier session. - Issue #37 (Bitbucket provider support, feat-010): unblocked, still not started.
- PR #51 is large (10+ issues' worth of changes now). Flag to the user before piling on more commits.
Blockers / Risks
- None currently.
Decisions Made
- All work goes into one PR (#51): user explicitly said "不要那麼多pr merge" (don't want so many PRs). Commit new work directly onto
claude/fix-directory-symlink-pull-260713. - Optimistic local status update over a post-push re-fetch (feat-015): rather than delaying the refresh or retrying, mark just-pushed files synced from data already in hand. Correct by construction (it's the exact content just written) and sidesteps GitHub's eventual-consistency window entirely instead of just narrowing it.
- Credential handling for live smoke tests: write PATs to a local scratchpad file the agent reads directly — never as a
!-prefixed command (still lands in the transcript) or a Bash argument (blocked by the permission classifier). Filed as issue #57 to build a proper reusable process across all three providers.
Files Modified This Session
src/services/github-service.ts,src/services/git-service-base.ts,tests/services/github-service.test.ts(feat-014)src/logic/sync-manager.ts,src/ui/SyncStatusView.ts,tests/logic/sync-manager-batch.test.ts,tests/ui/SyncStatusView.test.ts(feat-015)
Evidence of Completion
- Tests pass:
npx vitest run→ 344/344 passed - Type check clean:
npm run build→ clean - Lint clean:
npx eslint .→ 0 errors - Live smoke tests against a real GitHub repo (feat-014 push/delete, feat-015 empty-file diagnosis)
- Manual verification inside the actual Obsidian plugin UI — not yet done
- Pushed to remote — not yet done, needs confirmation
Notes for Next Session
- Working branch:
claude/fix-directory-symlink-pull-260713(PR #51). Commits114a575and7676325are local only — push before starting new work, or confirm with the user.