v1.3.123
v1.3.123
Released: 2026-07-04
Major Features
Multi-VCS Support (git, Mercurial, Subversion, Jujutsu)
ggcode now auto-detects the version control system in the working directory and
dispatches SCM operations accordingly. The 5 core tools (git_status,
git_diff, git_log, git_add, git_commit) now work in Mercurial (hg),
Subversion (svn), and Jujutsu (jj) repositories — not just git.
- Git fast path unchanged: existing git behavior is byte-for-byte identical
- Auto-detection: walks up the directory tree for
.git/.hg/.svn/.jj - Priority: git > hg > svn > jj (when multiple VCS metadata coexist)
- Tool names unchanged:
git_statusetc. remain the same for backward
compatibility — they work for all VCS types internally - System prompt: now reports the actual VCS type ("in a Mercurial repository")
New Cron Tools (update, pause, resume, get)
Expanded the cron tool set from 3 to 7 actions:
cron_update: modify cron expression, prompt, and/or queue_if_busy in-place
— no more delete-and-recreate, job ID stays the samecron_pause: suspend a job's timer without deleting its configurationcron_resume: reactivate a paused job (recomputes NextFire from now)cron_get: view full job details including the complete prompt text
Additional improvements:
cron_listnow shows paused statecron_getis allowed in plan mode (read-only)- Paused jobs persist across restarts
- Pause/resume are idempotent
Bug Fixes
- Data race in cron scheduler: timer callbacks read
job.Prompt/job.QueueIfBusy
without lock whileUpdate()writes them under lock. Fixed by snapshotting under lock. - hg/jj Add separator:
hg addandjj file trackmissing--argument separator
before file paths (git and svn already had it). - svn Log: use
-r 1:HEADso recently committed revisions are included - svn Commit: add
--non-interactiveto avoid hanging on auth prompts - jj Commit: fixed to
describe + newworkflow (jj's working-copy-is-commit model) - jj IsClean: correctly detect "The working copy has no changes" message
Test Coverage
49 integration tests across all 4 VCS backends, all passing against real repositories:
- Git: 11 tests (git 2.54)
- Mercurial: 10 tests (hg 7.2.3)
- Subversion: 10 tests (svn 1.14.5)
- Jujutsu: 9 tests (jj 0.43.0)
- Detection: 9 tests (all types, nesting, preference order, fallback)