v1.2.1
Changelog
Features
- 66c94b0: feat: add Google Shared Drive support (#87) (Rian Stockbower rstockbower@gmail.com)
- 0baa278: feat: add caching infrastructure for Drive metadata (#83) (Rian Stockbower rstockbower@gmail.com)
- 4387265: feat: add mail restore command to un-trash messages (piekstra piekstra@users.noreply.github.com)
- af2c461: feat: add repository structure and build infrastructure (#9) (Rian Stockbower rstockbower@gmail.com)
- 372a90d: feat: add structured logging with configurable verbosity (Rian Stockbower rstockbower@gmail.com)
- e68b022: feat: implement init and config commands (#12) (Rian Stockbower rstockbower@gmail.com)
- 92b68ac: feat: implement mail commands (#13) (Rian Stockbower rstockbower@gmail.com)
- aa1c873: feat: initial google-cli-common shared library (piekstra piekstra@users.noreply.github.com)
- e8699d2: feat: migrate OAuth token to cli-common/credstore (Phase B B2a, §2.3) (#128) (Rian Stockbower rstockbower@gmail.com)
- cd95e80: feat: package gro and grw from one release stream (#15) (Rian Stockbower rstockbower@gmail.com)
- 0032fc7: feat: port gmail client package from gmail-ro (#11) (Rian Stockbower rstockbower@gmail.com)
- 7ec8956: feat: port keychain and zip packages from gmail-ro (#10) (Rian Stockbower rstockbower@gmail.com)
- d1b5404: feat: profiles list/use, attributed auth errors, init target naming, mail list (#175) (piekstra piekstra@users.noreply.github.com)
- d61bbc2: feat: sign gro darwin binaries with a stable code-signing identity (#155) (Rian Stockbower rstockbower@gmail.com)
- 8619cfa: feat: single-run init wizard and gro me (#107) (#108) (Rian Stockbower rstockbower@gmail.com)
Bug Fixes
- 1b8b6d8: fix: add mutex protection to Gmail client label cache (Rian Stockbower rstockbower@gmail.com)
- 7592bbc: fix: clear golangci-lint failures (#116) (Rian Stockbower rstockbower@gmail.com)
- 90106a8: fix: consume collision-safe attachment downloads (#180) (Rian Stockbower rstockbower@gmail.com)
- 3f82e5a: fix: init re-auths instead of hard-failing on an expired stored token (#1) (piekstra piekstra@users.noreply.github.com)
- 18dffe8: fix: init re-auths instead of hard-failing on an expired stored token (#169) (piekstra piekstra@users.noreply.github.com)
- 0f478e0: fix: inject snap package version from git tag (#95) (Rian Stockbower rstockbower@gmail.com)
- 67384c8: fix: report skipped messages in SearchMessages instead of silent failure (Rian Stockbower rstockbower@gmail.com)
- eb72af9: fix: restore static linux release builds (#150) (Rian Stockbower rstockbower@gmail.com)
- b9a1d1a: fix: stamp release versions via google-cli-common/version (#177) (piekstra piekstra@users.noreply.github.com)
- d34bdb2: fix: wrap all errors with context for debuggability (Rian Stockbower rstockbower@gmail.com)
Other
- a318f4a: Initial commit (Rian Stockbower rstockbower@gmail.com)
- 2c0db8d: Refactor: align codebase with engineering standards (#96) (Rian Stockbower rstockbower@gmail.com)
- eb7293b: chore(deps): bump cli-common to v0.1.0 [MON-5375] (#135) (Rian Stockbower rstockbower@gmail.com)
- 0ff73ec: chore(deps): bump cli-common to v0.2.1 (pass backend recognized) (#141) (Rian Stockbower rstockbower@gmail.com)
- 9f65992: chore(deps): bump google.golang.org/grpc to v1.82.1 (#174) (piekstra piekstra@users.noreply.github.com)
- 2781db8: docs(drive): add Drive command documentation and integration tests (Rian Stockbower rstockbower@gmail.com)
- 1103d84: feat(cache): add top-level refresh subcommand (#146) (Rian Stockbower rstockbower@gmail.com)
- 916dc87: feat(calendar): add Google Calendar readonly commands (#24) (Rian Stockbower rstockbower@gmail.com)
- 9940165: feat(calendar): add RSVP and color-coding operations (#103) (Rian Stockbower rstockbower@gmail.com)
- 3ed9c2b: feat(chocolatey): simplify packaging per reviewer feedback (#93) (Rian Stockbower rstockbower@gmail.com)
- b294bec: feat(ci): auto-trigger chocolatey and winget publish on release (#118) (Rian Stockbower rstockbower@gmail.com)
- 9783053: feat(contacts): add Google Contacts readonly commands (#25) (Rian Stockbower rstockbower@gmail.com)
- 5708db9: feat(contacts): add group management and starring operations (#105) (Rian Stockbower rstockbower@gmail.com)
- 651f1ac: feat(cred): select credential ref per invocation (--ref flag + env) (#167) (piekstra piekstra@users.noreply.github.com)
- 5620ea4: feat(drive): add Drive client foundation and parent command (#67) (Rian Stockbower rstockbower@gmail.com)
- 638fdd3: feat(drive): add download command (#71) (Rian Stockbower rstockbower@gmail.com)
- 6c9aa3f: feat(drive): add get command (#70) (Rian Stockbower rstockbower@gmail.com)
- 55ed967: feat(drive): add list command (#68) (Rian Stockbower rstockbower@gmail.com)
- 1f70fe6: feat(drive): add search command (#69) (Rian Stockbower rstockbower@gmail.com)
- d759be7: feat(drive): add star/unstar operations and --ids flag (#104) (Rian Stockbower rstockbower@gmail.com)
- fa5d8eb: feat(drive): add tree command (#72) (Rian Stockbower rstockbower@gmail.com)
- e906613: feat(init): add audience prompt for admin-provided vs DIY OAuth setup (#124) (Rian Stockbower rstockbower@gmail.com)
- 06447ef: feat(init): name the target profile, add --profile for new accounts (#7) (piekstra piekstra@users.noreply.github.com)
- 8c4ba9e: feat(keyring): wire --backend flag and keyring.backend config key (#140) (Rian Stockbower rstockbower@gmail.com)
- 3d8f74b: feat(mail): add 'mail list' for sibling symmetry (#5) (piekstra piekstra@users.noreply.github.com)
- 4aebff7: feat(mail): add draft composition command (#113) (Rian Stockbower rstockbower@gmail.com)
- d42a96b: feat(mail): add non-destructive organizational operations for Gmail (#102) (Rian Stockbower rstockbower@gmail.com)
- 4bafc7d: feat(mail): consume quoted reply elision (#172) (Rian Stockbower rstockbower@gmail.com)
- 33d4c4c: feat(mail): elide quoted reply history (#3) (Rian Stockbower rstockbower@gmail.com)
- eac6eec: feat(mail): quote source message in reply drafts (#126) (Rian Stockbower rstockbower@gmail.com)
- 9a4131c: feat(mail): reply-to-thread drafts (#115) (Rian Stockbower rstockbower@gmail.com)
- be4f4b3: feat(profiles): add 'profiles list' and 'profiles use' (#6) (piekstra piekstra@users.noreply.github.com)
- 5ddb1b7: feat(root): add --no-color persistent flag (#145) (Rian Stockbower rstockbower@gmail.com)
- 1f472eb: feat(state): port gro to cli-common state components [MON-5371] (#134) (Rian Stockbower rstockbower@gmail.com)
- a39aaa2: fix(auth): add missing profile scope for people/me verification (#120) (Rian Stockbower rstockbower@gmail.com)
- d54e8ae: fix(auth): attribute token failures to the credential ref and its source (#4) (piekstra piekstra@users.noreply.github.com)
- 93df86f: fix(config): clear --all removes legacy config file, not just legacy cache (#138) (Rian Stockbower rstockbower@gmail.com)
- ced1224: fix(init): offer to re-authenticate when existing token is invalid (#20) (Rian Stockbower rstockbower@gmail.com)
- 7020a50: fix(init): re-auth instead of hard-failing when the stored token is expired (#1) (piekstra piekstra@users.noreply.github.com)
- b2450b3: fix(mail): preserve duplicate attachment filenames (#10) (Rian Stockbower rstockbower@gmail.com)
- 8369642: fix(me): fall back to the Gmail profile when People returns no email (#173) (piekstra piekstra@users.noreply.github.com)
- 520596a: gro: remove per-command --json (BREAKING) [#144] (#147) (Rian Stockbower rstockbower@gmail.com)
- 5eb3f2d: refactor(auth): create internal/auth package for centralized OAuth handling (#56) (Rian Stockbower rstockbower@gmail.com)
- a7180e8: refactor(config): extract internal/config package for configuration management (#57) (Rian Stockbower rstockbower@gmail.com)
- 5018613: refactor: Phase 4 quality improvements (#76) (Rian Stockbower rstockbower@gmail.com)
- e57d8b0: refactor: Phase 5 code cleanliness improvements (#77) (Rian Stockbower rstockbower@gmail.com)
- bd7a8e4: refactor: build gro on the shared google-cli-common module (#168) (piekstra piekstra@users.noreply.github.com)
- b9de397: refactor: define interfaces for Google API clients (#58) (Rian Stockbower rstockbower@gmail.com)
- 079ca17: refactor: inject client factories into command handlers (#59) (Rian Stockbower rstockbower@gmail.com)
- d34b7e0: refactor: re-layout into cmd/ and internal/ (#11) (Rian Stockbower rstockbower@gmail.com)
- 17cbaf7: refactor: relocate Drive metadata cache to the OS cache dir (B2b) (#130) (Rian Stockbower rstockbower@gmail.com)
- 20bac3f: refactor: replace package-level flag variables with command-local state (Rian Stockbower rstockbower@gmail.com)
- cef1615: refactor: standardize branding to google-readonly across all platforms (#80) (Rian Stockbower rstockbower@gmail.com)
- cf737de: security(auth): reduce path disclosure in error messages (#55) (Rian Stockbower rstockbower@gmail.com)
- c4d8ba4: security(mail): sanitize email output to prevent terminal injection (#54) (Rian Stockbower rstockbower@gmail.com)
- 8125ed9: security: add path traversal validation for attachment downloads (#53) (Rian Stockbower rstockbower@gmail.com)
- 17e925b: security: fix token exposure in macOS keychain command arguments (#52) (Rian Stockbower rstockbower@gmail.com)
- d08de9a: security: securely delete backup token files after keychain migration (#60) (Rian Stockbower rstockbower@gmail.com)