_ingress_update_status returns 1 when queue file not found, but
_ingress_done and _ingress_fail were ignoring the return code and
printing success messages anyway. Now both commands propagate the
error with a clear message: "Queue item not found: <id>"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add garc_core.py (underscore) alongside garc-core.py (hyphen);
Python cannot import a hyphenated filename as a module, causing
ModuleNotFoundError on every garc command
- Replace invalid scope people.readonly with directory.readonly
in garc-core.py and scope-map.json; people.readonly does not
exist in Google OAuth, causing error 400 invalid_scope on login
Verified working: garc gmail profile, garc calendar today,
garc gmail inbox, garc auth suggest
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ingress.sh: pass status-update note via argv instead of triple-quoted
heredoc to prevent Python syntax error when note contains quotes
- ingress.sh: warn clearly when AGENT_CONTEXT.md missing (bootstrap
not run) instead of silent failure in garc ingress context
- daemon.sh: replace export$(xargs) with set -a/source/set +a so
config.env values containing spaces are loaded correctly
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Added explicit prerequisites section to README and quickstart,
known limitations table with planned versions, and v0.2/v0.3/v0.4
roadmap. CHANGELOG restructured with Keep a Changelog format.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Permission-first AI agent runtime for Google Workspace.
Ports the LARC/OpenClaw governance model (disclosure chain,
execution gates, queue/ingress) to Gmail, Calendar, Drive,
Sheets, Tasks, and People APIs with Claude Code as the
execution engine.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>