Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

The package version is derived from the git tag via `hatch-vcs`; each release
below corresponds to a tag of the same name.

## [0.6.0] - 2026-06-16

### Changed

- **auth:** OAuth2 login now uses a remote copy-paste flow instead of a
localhost callback server. The CLI prints an authorization URL with
`redirect_uri=https://sdk.cloud.google.com/applicationdefaultauthcode.html`
and `token_usage=remote`, then reads the pasted code from stdin. This works
in headless/remote environments where a browser cannot reach a local
callback port. (#54)

### Added

- **display output:** Rich rendering for `display_data` output via a shared
`render_display_data()` helper. HTML is converted with `html2text` and
rendered as Markdown, following a `text/markdown > text/html > text/plain`
priority; `text/plain` is wrapped with `Text.from_ansi` to preserve embedded
ANSI escapes. Applied consistently across `exec`, `console`/`repl`, and
automation call sites. (#58)

### Fixed

- **keep-alive:** Replace the `RuntimeService/KeepAliveAssignment` RPC on
`colab.pa.googleapis.com` with a Tunnel Frontend (TFE) HTTP ping
(`GET /tun/m/<endpoint>/keep-alive/` with `X-Colab-Tunnel: Google`) on
`colab.research.google.com`, authenticated by the user's own bearer token.
The old RPC required `serviceusage` consumer access to Colab's internal
project and returned HTTP 403 `USER_PROJECT_DENIED` for every external user,
causing their sessions to be idle-pruned within minutes. The TFE ping needs
no project entitlement; because the VM often does not answer on this path, a
`ReadTimeout` is treated as success while genuine HTTP errors propagate.
(#14, #61)

### Removed

- Dead grpc-web client-registry / API-key code path and the now-irrelevant
`colaboratory`-scope / `pa.googleapis.com` pre-flight remediation messaging,
superseded by the TFE keep-alive ping. (#61)

[0.6.0]: https://github.com/googlecolab/google-colab-cli/compare/v0.5.11...v0.6.0