mirror of
https://github.com/firstsun-dev/git-files-sync.git
synced 2026-07-22 17:20:30 +00:00
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011BNWwPd5zudtW2JQr6ZAUm
4 KiB
4 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-13 14:20 Session ID: (this session) Active Feature: feat-006 - i18n (multi-language) support (issue #38)
Status
What's Done
- feat-001 - Project Setup verified (see archive/2026-07.md)
- feat-002 - Settings UX bundle (see archive/2026-07.md); this branch's history already contains it (merged upstream of
claude/fix-directory-symlink-pull-260713) - feat-006 implementation - i18n core (
src/i18n/index.ts,locales/en.ts,locales/zh-tw.ts), ~130 strings extracted across settings.ts, main.ts, and 7ui/files, tests added, lint/build/test all clean
What's In Progress
- feat-006 - push branch
claude/i18n-support-260713and open a PR (or fold it back intoclaude/fix-directory-symlink-pull-260713per the user's stated intent)- Details: worked in a separate branch/worktree because
claude/fix-directory-symlink-pull-260713was already checked out elsewhere in this repo's other worktree (main checkout at/home/tianyao/git-files-sync), so git wouldn't allow checking out the same branch twice - Blockers: none technically; needs the user's go-ahead on push/merge direction
- Details: worked in a separate branch/worktree because
What's Next
- Confirm with user whether to push
claude/i18n-support-260713and open a PR, or merge it locally intoclaude/fix-directory-symlink-pull-260713 - Re-sync this file's backlog (feat-003..005) against
gh issue list --repo firstsun-dev/git-files-sync --state open
Blockers / Risks
- None currently.
Decisions Made
- Worked on a new branch instead of the pre-existing
claude/fix-directory-symlink-pull-260713: that branch was already checked out in another worktree (the main repo checkout), and git disallows the same branch in two worktrees. Createdclaude/i18n-support-260713offorigin/claude/fix-directory-symlink-pull-260713instead, per the user's choice. - Flat key-value i18n dict, not nested namespaces: matches this plugin's small scale; simpler
t(key, vars)lookup, no external i18n library dependency. - Locale detection via
window.moment.locale(): per issue #38's suggested approach; unknown/unmapped locales fall back to English. A barezhlocale code is mapped tozh-twsince that's the only Chinese variant shipped. - Diff-format markers, changelog release-note text, and proper nouns (GitHub/GitLab/Gitea) were left untranslated — out of scope for UI-chrome i18n.
Files Modified This Session
src/i18n/index.ts(new) -t(key, vars?)helper, locale detection/resolutionsrc/i18n/locales/en.ts,src/i18n/locales/zh-tw.ts(new) - 159 keys each, full paritysrc/settings.ts,src/main.ts- all hardcoded UI strings replaced witht()callssrc/ui/SyncStatusView.ts,src/ui/SyncConflictModal.ts,src/ui/WhatsNewModal.ts,src/ui/ConfirmModal.ts- samesrc/ui/components/ActionBar.ts,FileListItem.ts,DiffPanel.ts- sametests/i18n/index.test.ts(new) - 6 test cases covering fallback, locale resolution, interpolation
Evidence of Completion
- Tests pass:
npx vitest run→ 308/308 passed (302 pre-existing + 6 new i18n tests) - Type check clean:
npm run build(tsc + Obsidian 1.11.0 compat typecheck + esbuild) → clean - Lint clean:
npx eslint .→ 0 errors - Manual verification in Obsidian: not done (no Obsidian instance available in this environment)
Notes for Next Session
- Branch
claude/i18n-support-260713has uncommitted working-tree changes as of this session's end — not yet committed or pushed. feature_list.json's backlog (feat-003..005) is a snapshot from 2026-07-13; re-checkgh issue listbefore trusting it.