All 17 playbook findings (P0-P3) resolved. v0.2.0 includes enterprise hardening, workflow expansion, multi-tenant profiles, Forms pipeline, and systemd support. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.6 KiB
6.6 KiB
GARC Changelog
All notable changes to this project are documented here. Format follows Keep a Changelog.
[0.1.0] — 2026-04-15 — Initial Release
This is the first public release of GARC. Core operations for Gmail, Calendar, Drive, Sheets, Tasks, and People are functional end-to-end. Several enterprise features are deferred to v0.2 (see Known Limitations in README).
Added
CLI entrypoint
bin/garc— Main CLI with full command dispatch (gmail / calendar / drive / sheets / task / people / memory / ingress / daemon / agent / approve / auth / bootstrap / setup / status / heartbeat)
Google Workspace operations
lib/gmail.sh+scripts/garc-gmail-helper.py— send / reply / search / read / inbox / draft / labels / profilelib/calendar.sh+scripts/garc-calendar-helper.py— today / week / list / create / delete / freebusylib/drive.sh+scripts/garc-drive-helper.py— list / search / upload / download / create-doc / share / infolib/sheets.sh+scripts/garc-sheets-helper.py— info / read / append / update / search / clearlib/task.sh+scripts/garc-tasks-helper.py— list / create / done / show / update / delete / clear-completed / tasklistslib/people.sh+scripts/garc-people-helper.py— lookup / directory / list / contacts
Agent runtime
lib/bootstrap.sh— Disclosure chain loading from Google Drive (SOUL.md → USER.md → MEMORY.md → RULES.md → HEARTBEAT.md)lib/memory.sh— Google Sheets memory sync (pull / push / search)lib/agent.sh— Agent registry via Google Sheets (list / register / show)lib/approve.sh— Execution gate and approval flow (gate / list / act / create)lib/heartbeat.sh— System state logging to Google Sheetslib/ingress.sh— Queue/ingress system with JSONL local cache (enqueue / list / run-once / done / fail / stats)lib/daemon.sh— Gmail polling daemon with macOS launchd support (start / stop / status / poll-once / install)lib/kg.sh— Knowledge graph via Google Drive Docs
Auth & config
scripts/garc-auth-helper.py— OAuth2 scope inference + token managementscripts/garc-core.py— Shared auth, retry, and utilitiesscripts/garc-setup.py— One-shot workspace provisioner (garc setup all)config/scope-map.json— 42 task types × Google OAuth scopes × keyword patternsconfig/gate-policy.json— Execution gate policies (none / preview / approval)config/config.env.example— Configuration templateagents.yaml— Default agent declarations (main / crm-agent / doc-agent / expense-processor)
Claude Code bridge
scripts/garc-ingress-helper.py— Task type inference + Claude Code execution prompt builder.claude/skills/garc-runtime/SKILL.md— Claude Code skill definition
Documentation
README.md— Quickstart, usage, prerequisites, known limitations, roadmapREADME.ja.md— Japanese translationdocs/quickstart.md— 15-minute setup guidedocs/google-cloud-setup.md— Google Cloud Console step-by-stepdocs/garc-architecture.md— Full architecture referencedocs/garc-vs-larc.md— GARC vs LARC comparisondocs/gws-api-alignment.md— GWS API command mappings
Known Limitations (v0.1.0)
- Google Chat integration not implemented — Gmail used as fallback for notifications
- Service Account / Domain-wide Delegation not supported — user OAuth only
- No audit log
garc auth revokenot implemented- Editing existing Google Docs body not implemented
- Google Forms → auto-enqueue pipeline not implemented
- macOS only for daemon install (launchd); Linux systemd not yet supported
- Single Google Workspace organization only
[0.2.0] — 2026-04-15 — Enterprise Hardening + Workflow Expansion
All 17 findings from the v0.1.0 operational readiness audit have been resolved.
Fixed (P0 — Blockers)
- agent register: upsert by
agent_id— re-running no longer creates duplicate rows - daemon poll-once: extracted
_gmail_poll_cyclefor synchronous single-cycle execution;sleep 5 / killtimeout removed - requests warnings: suppressed
urllib3/googleapiclientDeprecationWarningon Python 3.12+;requestsadded torequirements.txt
Fixed (P1 — Operational risks)
- OAuth refresh:
RefreshError(revoked token) now deletes the stale token file and falls through to a new OAuth flow; scope coverage verified before returning cached credentials - ingress stale-reset: new
garc ingress stale-reset [--timeout N]resetsin_progressitems stuck longer than N minutes back topending - Sheets empty rows:
garc sheets trim-sheetandgarc sheets clean-allusebatchUpdate deleteDimensionto remove trailing empty rows - Approval notification:
garc ingress run-onceon approval-gated items sends a Gmail notification toGARC_APPROVAL_EMAIL;GARC_AUTO_CONFIRMenv var added
Added (P2 — Enterprise features)
- Google Chat:
scripts/garc-chat-helper.py+garc send chat send/list-spaces/list-messages - Service Account / DWD:
garc auth service-account verify,GARC_IMPERSONATE_EMAIL,--type service-accountflag ongarc auth login - Audit log:
audittab in Sheets;garc audit list [--agent] [--since]; async audit hook inbin/garc garc auth revoke: POST to Google revoke endpoint + deletes local token file- Google Docs editing:
_doc_insert_text+append_docproperly callsbatchUpdate insertText;garc drive append-doc <doc_id> --contentadded - KG improvements: Drive file listing pagination fixed; shell injection in
kg.sheliminated;garc-kg-query.pyextracted as a proper CLI tool
Added (P3 — Roadmap)
- Multi-tenant profiles:
lib/profile.sh—garc profile list/use/add/show/remove/current;bin/garcauto-loads~/.garc/profiles/<name>/config.envand token whenGARC_PROFILEis set - Google Forms pipeline:
garc-forms-helper.py+lib/forms.sh—garc forms list/responses/watch; polls Forms for new responses and enqueues them viagarc ingress - Linux systemd support:
_daemon_install_servicedetects OS (Darwin → launchd plist, Linux →.service+.timerunits);--systemflag for system-wide install - Python version gate:
pyproject.toml(python_requires = ">=3.10,<3.13"); startup check inbin/garc;garc doctordiagnostics command
Unreleased
v0.3 — Stability (planned)
- GCP Secret Manager integration for credential management
- Agent-to-agent approval chains
garc kg— Sheets-backed persistent index (vs local JSON cache)- GitHub Actions CI matrix (Python 3.10 / 3.11 / 3.12)