Skip to content

Devboxes v0.2.0: browser login and terminal compatibility#14

Merged
vicotrbb merged 3 commits into
mainfrom
codex/terminal-compat-browser-login
Jul 14, 2026
Merged

Devboxes v0.2.0: browser login and terminal compatibility#14
vicotrbb merged 3 commits into
mainfrom
codex/terminal-compat-browser-login

Conversation

@vicotrbb

Copy link
Copy Markdown
Owner

Summary

  • add external-browser Authorization Code + PKCE login with strict numeric loopback callbacks, CSRF-protected approval, one-time hash-only codes, and scoped expiring CLI tokens
  • vendor pinned Ghostty terminfo with attribution, validate incoming TERM values, and provide deterministic unknown-terminal fallback before tmux
  • add unit, image, security, responsive UI, and clean-cluster lifecycle coverage; bump all release surfaces to v0.2.0

Security design

  • fixed native client and response_type=code; PKCE S256 only
  • high-entropy state/verifier, exact callback binding, and 10–900 second CLI timeout
  • bounded/expiring authorization-code store with atomic single use and no plaintext code retention
  • signed JWTs restricted by issuer, audience, type, scope, time, and maximum lifetime
  • generic exchange errors and no-store/referrer protections; bearer values are never written to normal or JSON output
  • master bearer compatibility remains available for existing automation

Validation

  • make bootstrap
  • make lint
  • make test (58 controller tests, 14 CLI tests; 90.53% controller coverage)
  • make helm
  • make images
  • npm, pip-audit, cargo-audit, gitleaks, and kubeconform clean
  • responsive browser QA at desktop, 390x844, and 320x568
  • DEVBOXES_E2E_CLI=cli/target/debug/devbox scripts/kind-e2e.sh: browser PKCE login, 0600 config, CLI lifecycle, Ghostty/unknown TERM, tmux reconnect, PVC/host-key reuse, and purge

@vicotrbb
vicotrbb merged commit 256f4f9 into main Jul 14, 2026
9 checks passed
@vicotrbb
vicotrbb deleted the codex/terminal-compat-browser-login branch July 14, 2026 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant