docs: add CHANGELOG.md for v0.6.0 release (#64)

Tyler committed Jun 16, 2026 at 13:48 UTC 8083d0b57406e3e9fb69a7f9186e5674cdfc0cbb
1 file changed +50
CHANGELOG.md new
+50
@@ -0,0 +1,50 @@
1 +# Changelog
2 +
3 +All notable changes to this project will be documented in this file.
4 +
5 +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6 +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 +
8 +The package version is derived from the git tag via `hatch-vcs`; each release
9 +below corresponds to a tag of the same name.
10 +
11 +## [0.6.0] - 2026-06-16
12 +
13 +### Changed
14 +
15 +- **auth:** OAuth2 login now uses a remote copy-paste flow instead of a
16 + localhost callback server. The CLI prints an authorization URL with
17 + `redirect_uri=https://sdk.cloud.google.com/applicationdefaultauthcode.html`
18 + and `token_usage=remote`, then reads the pasted code from stdin. This works
19 + in headless/remote environments where a browser cannot reach a local
20 + callback port. (#54)
21 +
22 +### Added
23 +
24 +- **display output:** Rich rendering for `display_data` output via a shared
25 + `render_display_data()` helper. HTML is converted with `html2text` and
26 + rendered as Markdown, following a `text/markdown > text/html > text/plain`
27 + priority; `text/plain` is wrapped with `Text.from_ansi` to preserve embedded
28 + ANSI escapes. Applied consistently across `exec`, `console`/`repl`, and
29 + automation call sites. (#58)
30 +
31 +### Fixed
32 +
33 +- **keep-alive:** Replace the `RuntimeService/KeepAliveAssignment` RPC on
34 + `colab.pa.googleapis.com` with a Tunnel Frontend (TFE) HTTP ping
35 + (`GET /tun/m/<endpoint>/keep-alive/` with `X-Colab-Tunnel: Google`) on
36 + `colab.research.google.com`, authenticated by the user's own bearer token.
37 + The old RPC required `serviceusage` consumer access to Colab's internal
38 + project and returned HTTP 403 `USER_PROJECT_DENIED` for every external user,
39 + causing their sessions to be idle-pruned within minutes. The TFE ping needs
40 + no project entitlement; because the VM often does not answer on this path, a
41 + `ReadTimeout` is treated as success while genuine HTTP errors propagate.
42 + (#14, #61)
43 +
44 +### Removed
45 +
46 +- Dead grpc-web client-registry / API-key code path and the now-irrelevant
47 + `colaboratory`-scope / `pa.googleapis.com` pre-flight remediation messaging,
48 + superseded by the TFE keep-alive ping. (#61)
49 +
50 +[0.6.0]: https://github.com/googlecolab/google-colab-cli/compare/v0.5.11...v0.6.0