Releases: datasciencemonkey/coding-agents-databricks-apps
v0.18.1
What's Changed
Bug Fixes
- fix: prevent settings.json race that drops MLflow env vars (#153) β read-merge-write instead of overwrite. MLflow tracing env vars no longer clobbered.
- fix: add retry logic to npm CLI installs β setup_codex/gemini/opencode retry 3x with 5s delay, full error output on failure.
- fix: remove duplicate skills copy in setup_gemini.py β eliminates Skill conflict detected warnings on Gemini startup.
- fix: test isolation for session limit and detach tests
- fix(ui): enable paste on initial PAT token prompt (#152)
Model Updates
- Default Claude Opus model updated to
databricks-claude-opus-4-7(#150) - Default Codex model updated to
databricks-gpt-5-5
Testing
- 216/216 tests passing
- Deployed and verified on multiple workspaces
Contributors
Thanks to all the contributors who made this release possible!
- @datasciencemonkey (Sathish Gangichetty) β settings.json race fix, npm retry logic, Gemini skill dedup, test isolation
- @KabeerThockchom (Kabeer Singh Thockchom) β PAT paste fix on initial prompt (#152)
- @mpkrass7 (Marshall Krassenstein) β Opus 4-7 model name update (#150)
- @dgokeeffe (David O'Keeffe) β prior performance improvements that landed in this cycle
v0.18.0
What's Changed
- chore(deps): bump 20 packages to latest compatible versions by @datasciencemonkey in #151
- Update default model versions and make it possible to switch models in codex by @mpkrass7 in #150
Full Changelog: v0.17.3...v0.18.0
v0.17.4
What's Changed since v0.18.0
Full Changelog: https://github.com/datasciencemonkey/coding-agents-databricks-apps/commits/v0.17.4
v0.17.3
What's Changed since v0.17.2
Features
- add control plane event tracking following DQX pattern (3059f5b)
- integrate Hermes Agent + fix Gemini auth + model updates (#136) (cdb5f40)
- add BDD testing skills (bdd-features, bdd-run, bdd-scaffold, bdd-steps) (4c5fd2c)
Full Changelog: https://github.com/datasciencemonkey/coding-agents-databricks-apps/commits/v0.17.3
v0.17.2
What's Changed since v0.17.1
Bug Fixes
Full Changelog: https://github.com/datasciencemonkey/coding-agents-databricks-apps/commits/v0.17.2
v0.17.1
v0.17.1 β Case-Insensitive Auth & AI Gateway Fallback
Authors
- David O'Keeffe (@dgokeeffe) β original author, PR #114
- Sathish Gangichetty (@datasciencemonkey) β cherry-pick, rebase onto v0.17.0, PR #123
Bug Fixes
Case-insensitive email authorization (fixes #115)
- All email comparisons normalized to
.lower()at ingestion points:get_token_owner(),get_request_user(), and WebSocket auth - Fixes access denied when SSO
X-Forwarded-Emailheader casing differs from stored owner email (e.g.RC.Guan@vsrc.guan@)
AI Gateway fallback for workspaces without Gateway (fixes #116)
- Auto-discovered gateway URLs are now probed for reachability (2s timeout GET)
- Workspaces without AI Gateway gracefully fall back to
{DATABRICKS_HOST}/serving-endpoints - Probe result cached in
_GATEWAY_RESOLVEDenv var so setup subprocesses skip re-probing - This was a deployment blocker β CoDA could not start on workspaces that didn't have AI Gateway enabled
Files Changed
| File | Change |
|---|---|
app.py |
.lower() on all email ingestion points; resolve_and_cache_gateway() calls in setup and auth config |
utils.py |
New _probe_gateway(), resolve_and_cache_gateway(), Tier 0 _GATEWAY_RESOLVED cache in get_gateway_host() |
tests/test_gateway_discovery.py |
3 new Tier 0 cache tests, probe mocks, updated integration tests |
pyproject.toml |
Version bump to 0.17.1 |
Full Changelog: v0.17.0...v0.17.1
v0.17.0
CoDA v0.17.0
Highlights
Session Management
- Session reuse prompt β When you open the app with existing sessions, you'll now see a list of active sessions to reattach to instead of always creating a new one. This prevents runaway session accumulation that could crash the app on smaller instances.
- Session limit β A configurable cap (
MAX_CONCURRENT_SESSIONS, default 5) prevents creating more sessions than your container can handle. Set it inapp.yamlbased on your instance size. - Active session count β The tab bar now shows "N active sessions" so you always know how many are running.
Copy-Paste in Claude Code no flicker mode
- OSC 52 clipboard support β Copy and paste now works inside Claude Code (no flicker) sessions. Previously, Claude Code's clipboard operations were silently dropped.
Rendering Improvements
- No-flicker mode compatibility β Claude Code's
CLAUDE_CODE_NO_FLICKER=1fullscreen mode now renders correctly. Fixed escape sequence fragmentation caused by fixed-size PTY read chunks. - Clean reattach β Switching back to a session (via session picker or page reload) now forces a clean redraw instead of replaying garbled raw escape sequences.
- Clean exit from alternate-screen apps β Exiting Claude Code no-flicker mode, vim, or htop now auto-clears the screen instead of leaving overlapping artifacts.
Dependencies
- Replaced
mlflow-tracingwithmlflow-skinny(3.10.1) β lighter footprint, no unused opentelemetry packages.
Configuration
New environment variable in app.yaml:
- name: MAX_CONCURRENT_SESSIONS
value: "5"Adjust based on instance size β 3 for Medium (6GB), 5-6 for Large (12GB).
Bug Fixes
- Fixed TOCTOU race condition in session limit enforcement
- Fixed session count not decrementing on session exit
- Fixed repo name in deployment docs
- Added escape/cancel key support in session prompt (q/Esc)
v0.16.7
What's Changed since v0.16.6
Bug Fixes
-
Fix Databricks CLI auth in shell sessions (#107) β The Databricks SDK skips
~/.databrickscfgwhenDATABRICKS_HOSTis set in env, even without credentials. After PAT rotation stripped the token, the CLI saw host + workspace_id but no token and failed. NowDATABRICKS_HOSTis also stripped from the shell env, forcing the SDK to fall through to~/.databrickscfg(kept fresh by PAT rotator). Mirrors the pattern already used insync_to_workspace.py. -
Inject fresh token in content-filter proxy (#107, credit @dgokeeffe) β The content-filter proxy (used by OpenCode) now reads the current PAT from
~/.databrickscfgon every request (with 30s cache), instead of relying on the stale env snapshot. This ensures OpenCode AI requests survive PAT rotation without interruption. -
Suppress cryptography CVE (GHSA-p423-j2cm-9vmq) β Buffer overflow in non-contiguous buffer handling. Fix version 46.0.7 not yet available on PyPI; ignored in audit until released.
Features
-
Auto-discover AI Gateway host from
DATABRICKS_WORKSPACE_ID(#104) β Newget_gateway_host()helper with 3-tier priority: explicitDATABRICKS_GATEWAY_HOSTenv var > auto-constructed fromDATABRICKS_WORKSPACE_ID(https://{id}.ai-gateway.cloud.databricks.com) > empty fallback toDATABRICKS_HOST/serving-endpoints. RemovedDATABRICKS_GATEWAY_HOSTfromapp.yamlβ one less env var to configure at deploy time. -
Update default Codex model to
databricks-gpt-5-3-codex(#108) β Updated acrossapp.yaml,setup_codex.py,setup_opencode.py, and docs. -
Add model tier mappings for Claude β Configure
ANTHROPIC_DEFAULT_OPUS_MODEL,ANTHROPIC_DEFAULT_SONNET_MODEL, andANTHROPIC_DEFAULT_HAIKU_MODELin Claude settings. Disable experimental betas.
Maintenance
- Sync
requirements.txtand lockfile β Recompiled frompyproject.toml;claude-agent-sdk0.1.50 β 0.1.53, full dependency tree with hashes. - Add PR template β Standardized pull request format.
Auth Coverage Summary
All CLI auth paths now survive PAT rotation:
| CLI | Auth Source | Rotation Mechanism |
|---|---|---|
databricks |
~/.databrickscfg |
PAT rotator writes on each rotation |
claude |
~/.claude/settings.json |
cli_auth._update_claude() |
codex |
~/.codex/.env |
cli_auth._update_codex() |
opencode |
auth.json + proxy |
cli_auth._update_opencode() + proxy fresh token |
gemini |
~/.gemini/.env |
cli_auth._update_gemini() |
Contributors
- @datasciencemonkey (Sathish Gangichetty) β Gateway auto-discovery, shell env auth fix, codex model update
- @dgokeeffe (David O'Keeffe) β Proxy fresh token injection (#105), Claude model tier mappings (#100)
- @mpkrass7 (Marshall Krassenstein) β PR template (#101), merge reviews
Full Changelog: https://github.com/datasciencemonkey/coding-agents-databricks-apps/commits/v0.16.7
v0.16.6
What's Changed since v0.16.5
Bug Fixes
- add workflow_dispatch to audit + revoke bootstrap PAT (#99) (bdb838d)
- switch cryptography from git source to PyPI 46.0.6 (dc54f9a)
- use astral-sh/setup-uv action instead of pinned pip install (30997c0)
- handle macOS zip format and correct asset naming (5809622)
- detect OS and arch when downloading gh binary (407fbdd)
- replay scrollback buffer on session picker cancel (#89) (eb6a87c)
- always create fresh session on page load, disable MLflow tracing by default (b8a06c9)
Documentation
Other
- Update makefile to remove all of the secret scope stuff (aa2b749)
Full Changelog: https://github.com/datasciencemonkey/coding-agents-databricks-apps/commits/v0.16.6
v0.16.5
What's Changed since v0.16.4
Features
- show session hints and exit notice in splash screen (206b3f5)
- session detach & reconnect β tabs detach, only exit kills (#84) (23a5e23)
- zero-config auth β interactive PAT setup, auto-rotation, all CLIs (#81, #83) (#82) (cd545a2)
- bundle TDD subagents for Claude Code in app (0db41a6)
Bug Fixes
- read creds from .databrickscfg instead of env vars (#88) (4c2918e)
- cancel picker restores screen via resize instead of buffer replay (f8beeed)
- add q/Esc to cancel session picker and restore previous session (a94ef9d)
- remove DATABRICKS_TOKEN from shell env β use databrickscfg instead (540e7f6)
- update all CLI tokens on PAT rotation (#86) (000adfd)
- Windows copy-paste, resize debounce, CLI upgrades (#72) (e7e7e77)
- extend session linger to 24 hours (#77) (f819d5d)
Documentation
- session detach & reconnect design (228c58f)
Other
- Makefile for standing up and tearing down an app quickly without git workflow (8d4e0b2)
- Update title in CONTRIBUTING.md (0865265)
- Update contribution guidelines for clarity (055c2e7)
- Add a contributing guide (b7e496f)
- Contributing guide (eb9de0a)
- Revert "feat: add CoDA landing page for GitHub Pages" (cf2e339)
- Revert "chore: move landing page to docs/site/index.html" (be3b9ed)
Full Changelog: https://github.com/datasciencemonkey/coding-agents-databricks-apps/commits/v0.16.5