v0.6.0 April 11, 2026 Latest
Account switching, auth reliability, and diagnostics privacy. You can now switch GitHub accounts without restarting, and the login flow handles wrong-account scenarios gracefully instead of hanging forever.

🔄 Account Switcher

  • New Switch Account option in the header — change GitHub accounts without restarting the server.
  • Clears all cached tokens (GitHub, Copilot, disk) and starts a fresh device code flow immediately.

🔐 Auth Race Condition Fix

  • Fixed: signing in with a non-Copilot account then switching to the correct account left the UI stuck on "Waiting for authorization..." forever.
  • Root cause: background poll thread and client poll raced to call poll_device_code(). Now uses a single-writer pattern — the bg thread is the sole caller, the client reads a shared result.
  • NO_COPILOT_ACCESS errors now surface in the UI with the username and links to Switch Account or Sign up for Copilot.
  • Client-side poll now times out after 15 minutes (matching GitHub's device code expiry) instead of polling forever.
  • Stale Copilot session cache is cleared when starting a new login flow.

🏷️ Version in Header

  • The brainstem version now displays in the chat UI header — no more guessing which version you're running.

🔒 Diagnostics Privacy

  • The Get Help report now scrubs user_code, device_code, and session_id from diagnostics before publishing to GitHub issues.

🔧 Other Fixes

  • Friendly error message when GitHub API quota is exceeded.
  • Installer handles force-push divergence and kills existing server on port 7071 before starting.
  • 400 error fallback and gh CLI issue creation when API token lacks repo scope.
  • Better error telemetry throughout the auth and diagnostics pipeline.
v0.1.0 March 5, 2026
First versioned release. Focuses the brainstem on local-first, stateless agent execution and adds auto-upgrade support to the one-liner installers.

🎯 Local-Only Agents

  • Removed the remote agent system — no more hot-loading agents from GitHub repos at runtime.
  • Only *_agent.py files directly in the agents/ folder are discovered and loaded.
  • Subdirectories like agents/experimental/ are intentionally excluded from auto-discovery.
  • Removed the ⚡ Sources sidebar panel, all /repos/* API endpoints, and associated JS/CSS from the chat UI.

🔄 Stateless Agent Loading

  • Agents now load fresh on every request — no in-memory cache between calls.
  • Removed _agents_cache and reload_agents() — the brainstem is fully stateless per invocation.
  • Makes local development and debugging faster: edit an agent file, hit the endpoint, see the change immediately.

📦 Version Tracking & Auto-Upgrade

  • Added rapp_brainstem/VERSION file as the single source of truth for the current version.
  • New GET /version endpoint returns {"version": "0.1.0"}.
  • Version now included in GET /health response and server startup banner.
  • The install.sh and install.ps1 one-liner scripts now compare the local VERSION against the remote one hosted on GitHub.
  • If the local version matches the remote, the installer exits with "Already up to date" — no unnecessary re-cloning.
  • If the remote version is newer, the installer proceeds with a full upgrade (git pull + pip install).

🔧 Other Improvements

  • Improved /health endpoint: returns 200 with "status": "unauthenticated" when the Copilot token is missing, instead of a 500 error. The chat UI shows the login overlay instead of failing silently.
  • GitHub token refresh and caching improvements (from upstream).
  • Copilot Studio converter agent moved to agents/experimental/ (excluded from auto-discovery).