mirror of
https://github.com/firstsun-dev/git-files-sync.git
synced 2026-07-22 06:54:27 +00:00
Adds the missing harness subsystems so future agent sessions can start, stay in scope, verify work, and resume reliably: - feature_list.json: local mirror of active/next-up work (GitHub Issues on Project #6 remains the source of truth for the full backlog) - progress.md / session-handoff.md / archive/2026-07.md: session state, restart point, and monthly archive of finished work - init.sh: install + lint + test + build verification entrypoint - AGENTS.md: added Startup Workflow, Definition of Done, Stay in Scope, and End of Session sections (existing agent-tier content kept as-is) - CLAUDE.md: added a short Agent Workflow section routing to the above Validated with the firstsun-harness audit script: 100/100 across all five subsystems (instructions, state, verification, scope, lifecycle). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YYCTyZw7gUmJ7oh1VTmAqh
3.4 KiB
3.4 KiB
Session Handoff
Current Objective
- Goal: Implement issues #40 (local ignore patterns), #41 (settings connection status badge), #42 (resize conflict modal)
- Current status: Implemented, tested, linted, built clean; committed and pushed. PR not yet opened (pending user confirmation).
- Branch / commit:
claude/settings-ux-improvements-260713@28f4f8e
Completed This Session
- #42 - Resized conflict modal (
min(1100px,92vw) x min(85vh,800px), flex layout, removed 280px content cap, added Diff/Local/Remote tab switcher on narrow screens) - #41 - Persistent connection status badge in settings tab (Checking/Connected/Not connected), 800ms debounce on token/branch/URL/owner/repo edits, updates in place (no focus-stealing re-render)
- #40 - "Ignore patterns" setting (multi-line, .gitignore-style), applied in
GitignoreManager.isIgnored()additively alongside remote/local.gitignore - Filed issue #48 (folder picker for root path / vault folder settings) at user's request mid-session
- Rebased local
mainontoorigin/mainto adopt the already-shipped Obsidian 1.12.x compat work (PR #46), discarding a stale duplicate local WIP, then re-applied the above three features cleanly on top
Verification Evidence
| Check | Command | Result | Notes |
|---|---|---|---|
| Lint | npx eslint . |
0 errors | Repo-wide, no exceptions |
| Type check + compat | npm run build |
Pass | Includes typecheck-compat.mjs against Obsidian 1.11.0 |
| Tests | npx vitest run |
254/254 passed | 17 test files |
| Manual (in Obsidian) | — | Not done | No Obsidian instance available in this environment |
Files Changed
src/settings.ts,src/ui/SyncConflictModal.ts,src/logic/gitignore-manager.ts,src/main.ts,styles.csstests/setup.ts,tests/ui/setup-dom.ts(expanded Obsidian test mocks)tests/logic/gitignore-manager.test.ts,tests/logic/sync-manager.test.ts,tests/logic/sync-manager-mapping.test.tstests/ui/SyncConflictModal.test.ts,tests/ui/SettingsConnectionStatus.test.ts(new)
Decisions Made
- Bundled #40/#41/#42 into a single commit rather than three, since they touch overlapping files closely enough that atomic per-issue commits risked an intermediate broken build.
- Discarded the local uncommitted 1.12.x-compat WIP (user confirmed it was superseded by origin/main's PR #46) rather than trying to merge two different compat mechanisms.
Blockers / Risks
- None blocking. Open item: PR for the pushed branch hasn't been created — user was asked "要接著幫你開 PR 嗎?" and the session moved to harness setup before they answered.
Next Session Startup
- Read
CLAUDE.md. - Read
feature_list.jsonandprogress.md. - Review this handoff.
- Run
./init.shbefore editing. - Check whether the user wants a PR opened for
claude/settings-ux-improvements-260713before starting new work.
Recommended Next Step
- Ask the user whether to open the PR for the pushed branch; if yes, use
gh pr createper the repo's PR conventions (seeCLAUDE.md/ firstsun-pm workflow) and reference issues #40/#41/#42 so they auto-close on merge.