fix: everything AICodeKing reported (#320)

* Guard non-git projects and improve send and diff UX

- Skip checkpoint capture/revert and turn diff ingestion for non-git workspaces
- Normalize project workspace roots and return clearer request/error messages
- Show "No Git" state in chat/diff UI and enrich work log with commands/files
- Track send start time so working status shows elapsed duration consistently

* Format active working timer in concise h/m/s units

- add `formatWorkingTimer` for human-friendly durations in ChatView
- show active "Working for" time as `0s`, `1m 5s`, or `2h 3m` instead of ms

* more cleanup

* Fix active work timing and use temp git workspaces in tests

- derive active work start from unsettled turn state instead of always latest turn
- update chat view to use shared deriveActiveWorkStartedAt helper
- make server/ws tests create temporary workspace roots with .git for project creation
0837c8b639Theo Browne committed on 3/7/2026, 10:06:55 AM· committed by GitHubparent5a90b6b
16 files changedLine totals unavailable