Repository navigation
v1.3.93
v1.3.93
New Features
switch_mode Tool
The LLM can now switch permission mode autonomously via the switch_mode tool.
This enables agents to escalate autonomy (e.g., from plan to auto) when needed,
and de-escalate when done. Mode changes are reflected immediately in the TUI badge
and Desktop UI.
Session-Scoped Permission Mode
Permission mode is now persisted per-session instead of globally:
- New sessions use the global
default_modefrom config (orsupervisedif unset) - Switching mode mid-session saves to session metadata, not global config
- Resuming a session restores the mode that was active when it was last used
- Multiple instances each track their own mode independently
This means switching to bypass in one session won't affect other sessions or
future new sessions. The daemon also persists mode changes to its session via
daemonModeSwitcher.
ggcode status Subcommand
New CLI subcommand to inspect all running ggcode instances:
ggcode status # List all running instances
ggcode status list --agent # Show only agent busy/idle status
ggcode status list --im # Show only IM adapter status
ggcode status list --mobile # Show only mobile tunnel connections
ggcode status list --json # JSON output for scripting
ggcode status get [workspace] # Detailed status for a specific workspaceEach running instance (TUI, daemon, desktop) writes a port file keyed by session ID.
Stale port files from crashed processes are automatically cleaned up.
WebUI /api/status Endpoint
Bearer-auth-protected JSON endpoint returning runtime status including PID,
workspace, agent busy state, permission mode, vendor/endpoint/model, IM adapters,
and mobile tunnel connection info.
Improvements
Port File Refactor — Session-Scoped
Port files are now keyed by session ID (~/.ggcode/run/<sessionID>.json) instead
of workspace hash. This prevents multiple instances in the same workspace from
overwriting each other's files. Cleanup covers all exit paths: SIGTERM/Ctrl-C
(defer), restart/tmux-enter (preExecCleanup hook), and crash (auto-detection via
stale PID check). Legacy format files are auto-deleted on read.
Autopilot Goal-Directed Execution
Autopilot mode now starts each session by defining a Goal via ask_user. The agent
works autonomously until the Goal is achieved, anchoring to the original task to
prevent scope drift. Ends with GOAL_COMPLETE when done.
Documentation Sync
Synced documentation across all recent features (v1.3.83–v1.3.92):
- modes.md: autopilot goals, session-scoped persistence
- cli-reference.md:
ggcode statussubcommand - configuration.md: session-scoped mode, cron
queue_if_busy - lan-chat.md: agent busy status, anti-noise guidelines
- GGCODE.md: safego convention, port files, microcompact, edit_file fuzzy matching,
MCP version negotiation, cron queue_if_busy
Fixes
- switch_mode badge sync: Mode changes via the
switch_modetool now immediately
update the TUI status bar badge and Desktop UI. - Windows cross-compile: Fixed undefined
PROCESS_QUERY_LIMITED_INFORMATIONin
runfile package.
Compare
- Full diff: v1.3.92...v1.3.93