release history
Changelog
Generated from the commit history and the release tags, so it cannot drift from what actually shipped. 41 releases, 476 recorded changes.
-
Unreleased
in progress
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- deps bump seroval from 1.6.9 to 1.6.12 in /site
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
2.5.1
Fixed
- demo redact bare bearer scheme word so live-agent casts pass privacy gate
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- add glama.json for MCP listing ownership claim
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- release grr v2.5.1
- demo re-record the terminal demo from source
- discovery refresh index and generated skills
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
2.5.0
Internal
- discovery refresh Google Discovery index
- release grr v2.5.0
-
2.4.1
Added
- ci workflow\_dispatch for dependabot auto-merge re-drive
Fixed
- ci fall back to auto-merge when --admin races running checks
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- deps-dev bump fast-uri from 3.1.8 to 3.1.9 in /site
- deps bump vite from 8.3.1 to 8.3.4 in /site
- release grr v2.4.1
Other
- compare refresh daily benchmark snapshot
-
2.4.0
Added
- discovery distill request-body schemas and name them in descriptions
Internal
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.4.0
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
2.3.0
Added
- discovery distill response schemas and full parameter metadata
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.3.0
Other
- compare refresh daily benchmark snapshot
-
2.2.0
Added
- mcp enrich tool descriptions with returns, body flow, and siblings
Internal
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.2.0
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
2.1.5
Fixed
- mcp negotiate the client's requested revision in initialize
Internal
- deps-dev bump undici from 8.11.2 to 8.12.3 in /site
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.1.5
Other
- compare refresh daily benchmark snapshot
-
2.1.4
Fixed
- mcp answer the legacy initialize handshake so standard clients connect
Documentation
- winget update winget status and validation war story for v2.1.3
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- release grr v2.1.4
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
2.1.3
Fixed
- winget use generic ARMv8 baseline for windows-aarch64
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- release grr v2.1.3
Other
- compare refresh daily benchmark snapshot
-
2.1.2
Changed
- core remove unused transport wrappers, builder, and error variants
Fixed
- cli print help and exit 0 on bare invocation for winget validator
Internal
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.1.2
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
2.1.1
Fixed
- winget feed the komac checksum the real filename
- winget name the komac tarball what checksums.txt expects
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.1.1
- winget move the environment guard to job level
- release let workflow\_dispatch name the tag it serves
Other
- compare refresh daily benchmark snapshot
-
2.1.0
Added
- http route the data plane through the probed engine, publish winget manifests
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.1.0
- demo re-record the terminal demo from source
- site refresh stats values under the new shape
- winget scope the winget token to the winget-publishing environment
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
2.0.1
Fixed
- auth trim the login set, keep the stored grant on refresh
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- release grr v2.0.1
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
2.0.0
Breaking changes
- auth request a small default scope set, widened per service
Fixed
- tests satisfy clippy::panic and expect\_used in the scope tests
Documentation
- auth a scope declaration takes minutes to apply, and the consent needs ticking
- auth correct the multi-account claim, cover a fresh account first grant
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v2.0.0
Other
- compare refresh daily benchmark snapshot
-
1.0.1
Fixed
- auth name both consent-screen traps in the login timeout
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v1.0.1
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
1.0.0
Breaking changes
- mcp serve only the stateless 2026-07-28 revision
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- release grr v1.0.0
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.15.0
Added
- auth GRR\_TOKEN\_STORE=file - the keyring-free token store
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v0.15.0
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.14.0
Added
- mcp speak the stateless 2026-07-28 revision
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v0.14.0
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.13.5
Fixed
- auth store the granted scopes, not the requested ones
Internal
- site refresh download counts and archive sizes
- release grr v0.13.5
- demo re-record the terminal demo from source
- deps serde\_json 1.0.154, sha2 0.11.1
Other
- compare refresh daily benchmark snapshot
-
0.13.4
Fixed
- auth give the browser login five minutes, not two
Internal
- site refresh download counts and archive sizes
- release grr v0.13.4
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.13.3
Fixed
- build drop the trim-paths gate Cargo stabilized in 1.101
- auth make grr auth login --device actually work
Internal
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- release grr v0.13.3
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.13.2
Fixed
- auth drop Chat app-authentication scopes from the consent set
Internal
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- release grr v0.13.2
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
0.13.1
Fixed
- preserve search UI and correctly merge patch updates
- automation set owner identity for generated commits
- site update vulnerable transitive dependencies
- site use public registry URLs in lockfile
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- release grr v0.13.1
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
0.13.0
Added
- cli shell completions for bash, zsh, powershell and elvish
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- release grr v0.13.0
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.12.0
Added
- auth consent to every scope the embedded index names
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- release grr v0.12.0
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
0.11.3
Fixed
- verify keep --json stdout parseable, annotations go to stderr
Internal
- deps-dev bump sharp from 0.35.4 to 0.35.5 in /site
- site refresh download counts and archive sizes
- release grr v0.11.3
Other
- compare refresh daily benchmark snapshot
-
0.11.2
Fixed
- ci run the rustsec audit on a resolved lockfile, re-aim the release changelog check
- verify assert benchmarks.json drift and protocol instead of a calendar age
Internal
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- deps bump source-map-js from 1.2.1 to 1.2.2 in /site
- release grr v0.11.2
Other
- compare refresh daily benchmark snapshot
-
0.11.1
Fixed
- windows v2 CPU baseline and no UPX — portability over the last percent
- windows keep v3 and UPX — the label's cause is the invocation, not the artifact
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- release grr v0.11.1
Other
- compare refresh daily benchmark snapshot
- compare refresh daily benchmark snapshot
-
0.11.0
Added
- site the essay gets BlogPosting structured data
Internal
- release grr v0.11.0
- winget the v0.10.0 submission, generated from the release
-
0.10.0
Added
- brand the mascot generator gates itself — assets and banner parity
- packaging a container for MCP introspection hosts
Fixed
- windows the distribution binaries carry their runtime
Internal
- discovery refresh Google Discovery index
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- release grr v0.10.0
- winget the v0.9.1 submission, generated from the release
Other
- compare refresh daily benchmark snapshot
-
0.9.1
Fixed
- verify anchor the release grace window to the tag while the release builds
Internal
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- release grr v0.9.1
- demo re-record the terminal demo from source
Other
- compare refresh daily benchmark snapshot
-
0.9.0
Added
- site sitewide search — a Pagefind index and a keyboard dialog
- skills installs that migrate themselves
Changed
- site out with the deprecated, in with the dead weight cut
- auth one token\_request helper for the three token flows
Fixed
- demo prompt identities are scrubbed, and the validator fails closed
- auth the keychain is read at first credential use, never at startup
Documentation
- site the getting-started page tells the winget story straight
- the audit's drift sweep
- site the live-site audit's fixes + the System One section
- README, CONTRIBUTING and the GCP walkthrough, reviewed and trimmed
- the self-migrating installs are a headline, so say so
Internal
- site refresh download counts and archive sizes
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- release grr v0.9.0
- winget the v0.8.1 submission, generated from the release
- build never lock — every build resolves the latest
- winget the locale description counts nine more services, not ten
- rust trim the toolchain and cargo config to what ships
- scripts the font subsetter is Node, and so is everything else
- delivery verification, metadata sync, and the release-chain fixes
Other
- compare refresh daily benchmark snapshot
-
0.8.1
Fixed
- release archives ship the binary as grr, not the target name
- docs-rs inject the cfg gates through cargo-args; render the demo GIF per release
- release tag-release finally accepts the dispatch it has always been sent
Internal
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- release grr v0.8.1
Other
- compare refresh daily benchmark snapshot
-
0.8.0
Added
- cli grr skills install — the packaged agent skills, globally
- bench as-shipped sizes and the peak-memory metric
Changed
- scripts delete dead weight, share the flag contract
- delete dead code across the CLI
- scripts Node 26's import.meta.dirname/filename, stat over read
- site native CSS for what the shell hand-rolled
Performance
- ci PR creators wake the merge poller — kill the 5-7 min approval wait
- async the last blocking paths, trim hot-path allocations, drop dead deps
Fixed
- ci merges with GITHUB\_TOKEN fire no downstream workflows
- ci token-authored pushes and releases start nothing — dispatch the chain
- site the live audit's twelve content corrections
- ci poller retry, changelog in the release dispatch, dead input
- crate the published manifest parses without this repo's config gates
Documentation
- packaging status told the truth (0.7.0; winget unpublished)
- grr skills install across every surface
Internal
- demo re-record the terminal demo from source
- site refresh download counts and archive sizes
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- release grr v0.8.0
- poller a push to main sweeps for pending bot PRs too
- ci Node 26 everywhere, and gws's size stops being its shim
- deps TypeScript 7 + types 26, tokio 1.53.2, tsconfig types
- demo re-record the terminal demo from source
- release ship on every push — the Friday cron is a backstop
- release a push mid-bump must not restart the bump PR's clock
- release never open a bump PR for the version main is already at
Other
- compare refresh daily benchmark snapshot
-
0.7.0
Added
- unattended releases + the stale-count sweep
- site draw the service illustrations and glyphs as real pixel art
- cli draw the grr crab in the version banner
Performance
- site 100 in every Lighthouse category
- release pack with UPX --lzma — measured 20% smaller
Fixed
- site the last stale counts - 401/14 everywhere
- automation release correctness, dependency freshness and workflow cost
- site stop deriving the site's numbers by hand
- changelog restore the PR body swallowed by add-paths
- site a real gutter between the docs sidenav and the content
- assets the repo-root logos are the current pixel art
- strip UTF-8 BOMs from twelve tracked files
- bench the arm runner measured the wrong gog binary
- ci \`gh pr view --json state\` returns OPEN, not open
- ci merging needs contents:write, not contents:read
- ci --admin has no bypass for the app token; fall back on any rejection
- changelog the file cannot list the commit that writes it
- site the gutter rule was losing to Tailwind's core .container
- site stale metadata and doc counts, now derived
- site the homepage stops advertising commands that do not exist
- site honest data displays on compare and the stats strip
- site the live demo plays the cast on main, not a rotted copy
- release the bump PR title said vv0.7.0
Documentation
- 0.6.0 release stats - 5-platform binary sizes
- demo the README matches the self-maintaining reality
- bring the prose back in line with the tree
- 22 corrections against the current tree
- the Homebrew tap is debanjanbasu/tap
Internal
- demo re-record the terminal demo from source
- discovery refresh the index and everything derived from it
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- demo re-record the terminal demo from source
- discovery refresh Google Discovery index
- unattended merging for the automation PRs (approve + merge)
- release grr vv0.7.0
- crate link the homepage and docs from the crate metadata
- the unblocker polls, because target events are gated too
Other
- compare refresh daily benchmark snapshot
-
0.6.0
Added
- cover the full consumer Workspace family - 14 APIs, 401 methods
- grr mcp server + safety profiles (--readonly, --deny-service, --deny-verb)
- grr ask - natural language to a typed method + params via System One
- terminal demo - asciinema cast with a real opencode agent segment
- linux-aarch64 release target (5th platform) + ARM runners everywhere GA
- demo embed + docs for mcp/ask/safety/account
- the API reference - all 401 methods documented, baked from the index
- the site maintains itself - CI demo recording + auto release
- the whole tree works offline - --dry-run needs no credential
- demo carry-forward for transport and agent segments everywhere
Fixed
- the demo player renders correctly - three stacked fixes
- demo the scattered rendering was bare \\\\n in the cast frames
- ci the generated-artifact gates and the demo recording are cross-platform
- api list/describe/refresh work with zero configuration
- release update Cargo.lock for v0.6.0
Documentation
- 0.5.0 release stats - 4-platform binary sizes
Internal
- discovery refresh Google Discovery index
- release grr v0.6.0
- rename release.yml -\> release-binaries.yml (fresh workflow registration)
- release parse probe (minimal skeleton)
- bisect stage 1 - build job only
- bisect stage 2 - archive job
- fix the release job's files block scalar
Other
- compare refresh daily benchmark snapshot
-
0.5.0
Breaking changes
- the command tree is generated from Google's Discovery Service
Added
- site round four - modern CSS/SVG cool pass + Rust Rewrite app-name signals
Fixed
- restore the linux io\_uring deps the transport probe still needs
- release UPX windows step - drop disabled add-path, fix GITHUB\_ENV format
- release GITHUB\_PATH takes effect for later steps, not the install step itself
- release pack a copy and verify before replacing - UPX segfaults on the ARM64 PE
Documentation
- 0.4.0 is live - release stats + packaging status
- 0.5.0 changelog + refreshed stats
-
0.4.0
Breaking changes
- http3 is now the default feature of every crate
- 0.4.0 - one crate, full API coverage, pixel-art site
Added
- 0.4.0 hardening - http3 always-on, nightly-only, pixel 3D site
Fixed
- packaging crates.io category slug is date-and-time
- ci rewrite publish.yml byte-clean (BOM broke workflow parsing)
- pages checkout the repo root, not a nested site path
- packaging crates.io allows at most 5 keywords
- packaging crates.io allows at most 5 categories
Documentation
- crates.io is live — 0.3.0 published, trusted-publishing-only
Internal
- packaging winget manifests for 0.3.0 (PR #439697 updated to 0.3.0)
- publish real trusted-publishing workflow (crates-io-auth-action, OIDC)
- publish declare crates-io environment (matches trusted-publishing config)
- site Google Search Console ownership file for grr-cli.pages.dev
- site verify grr-cli.pages.dev via Search Console meta tag
-
0.3.0
Added
- v0.3.0 — one CLI, six services (Gmail, Calendar, Drive, Contacts, Chat, Forms)
-
0.2.0
Added
- config add TOML config file support with env var overrides
- error remove client-side throttling, improve 429 handling with Retry-After
- models add EmailMessage, ThreadMessage, AttachmentInfo, DraftInfo, LabelInfo, HistoryRecord, SendAsInfo
- client add all 30+ missing API methods (messages, drafts, labels, threads, history, send-as, watch, import)
- core fix h3/h2 prior-knowledge exclusion, add verified TransportInfo with h3 fallback
- core add fs\_io abstraction — io\_uring-backed file I/O on Linux, tokio elsewhere
- core single-allocation attachment decode + streamed disk writes
- core true streaming send/import via media-upload endpoints; incremental base64 MIME assembly
- cli add transport introspection command
- rename to gmail-cli; auth rework, gzip decode, model fixes, release CI
- grr v0.2.0 — zero-config rework, keyring auth, agent surface
Changed
- cleanup and optimize workspace
Fixed
- core force per-request HTTP\_3 version on probe and all data-plane requests when h3 effective
- rejected refresh token returns Auth error instead of implicit OAuth flow
- auth add token\_path override hook so tests never touch real credentials
- auth preserve stored refresh token when grant response omits one
- client fail fast with Auth error on 401 instead of futile stale-token retry
- cli route send-with-attachments through legacy JSON path when --thread\_id given
- io report io\_uring only when the io\_uring feature is compiled in
- config accept snake\_case OAuth keys for TypeScript-era config migration
- ci drop stray aarch64 linker from x86\_64-linux table; pass -D warnings after --
- ci clippy is\_multiple\_of + -p grr-cli package refs for release
Documentation
- add cleanup & optimization design spec
- clarify zstd/brotli removal - payload compression stays via reqwest features
- add performance-claims design spec (HTTP/3, streaming, io\_uring file I/O)
- add performance-claims implementation plan
- commit spec media-upload amendment and config path fix
Internal
- truthful descriptions, drop simd vapor, track Cargo.lock
- live e2e pipeline behind LIVE\_E2E=1
- rustfmt defaults repo-wide; drop stale rkyv/zero-copy doc comment
- cleanup SDD planning artifacts; add root-level docs and CI workflows
- cargo fmt
Other
- Initial commit: gmail-opencode-rust - High-performance Gmail API client with HTTP/3, QUIC, zero-copy streaming
- small fix wave partial