- Notifications
You must be signed in to change notification settings - Fork1k
v2.27.0
Compare
Changelog
Note
This is a mainline Coder release. We advise enterprise customers without a staging environment to install ourlatest stable release while we refine this version. Learn more about ourRelease Schedule.
BREAKING CHANGES
- Use client IP when creating connection logs for workspace proxied app accesses (#19788,6a9b896) (@ethanndickson)
The presence of the
ip
field oncodersdk.ConnectionLog
cannot be guaranteed, and so the field has been made optional. It may be omitted on API responses. - Server: Only show task status for current build (#19966,eb55f0a) (@johnstcn)
Renames the
TaskStateCompleted
constant toTaskStateComplete
to align with the tense used inWorkspaceAppStatusStateComplete
, requiring any code referencing the constant to be updated. - Rename prompt field to input for task creation (#19982,eb74732) (@DanielleMaywood)
Renames the
CreateTaskRequest.Prompt
toCreateTaskRequest.Input
to align with language used in our CLI and elsewhere in the codebase.
Features
AI Bridge
AI Bridge, the self-hosted LLM proxy for auditing LLM tools and adoption is now in Early access, get started with oursetup guide.
- Add
aibridgedserver
pkg (#19902,615585d) (@dannykopping) - Add aibridged package (#19797,fc9bff7) (@dannykopping)
- Initialize
aibridged
& mount API handler (#19798,0a79817) (@dannykopping) - Add endpoint to list aibridge interceptions (#19929,0a6ba5d) (@pawbana)
MCP Server
New tools added to theCoder MCP Server in Beta.
- Add
coder_workspace_read_file
MCP tool (#19562,4bf63b4) (@code-asher) - Add tooltip field to workspace app that renders as markdown (#19651,e53bc24) (@rafrdz)
- Add
coder_workspace_write_file
MCP tool (#19591,d5a02d5) (@code-asher) - Add configs for external auth MCP usage + tool allow/denylist (#19794,348a2e0) (@dannykopping)
- Add
coder_workspace_edit_file
MCP tool (#19629,30330ab) (@code-asher) - Add
coder_workspace_ls
MCP tool (#19652,be7aa58) (@code-asher) - Add coder_workspace_port_forward MCP tool (#19863,7f56212) (@code-asher)
- Aibridged mcp handling (#19911,6971f61) (@dannykopping)
Tasks
v2.27.0 introduces the Tasks API (in beta) for integrating background agents into your ecosystem. Read more in ourdocumentation andblog posts.
- Don't redirect to task page when it is created (#19919,6d0943a) (@BrunoQuaresma)
- Add sidebar to task page (#19944,2df9c5b) (@BrunoQuaresma)
- Redesign tasks page to match AI tools (#19962,89339f6) (@BrunoQuaresma)
- Add notification for task status (#19965,fdb0267) (@ssncferreira)
- Delete task from sidebar (#20023,e96d69b) (@BrunoQuaresma)
- Minor prompt redesign (#20045,f009ebd) (@BrunoQuaresma)
- CLI: Add coder exp task delete (#19644,3470632) (@mafredri)
- CLI: Add quiet flag to task create (#19701,f94abfc) (@DanielleMaywood)
- CLI: Add optional --name arg to 'exp task create' (#19939,78b1ec9) (@johnstcn)
- CLI: Add exp task send (#19922,252f430) (@DanielleMaywood)
- CLI: Add formatting options to coder whoami (#19970,930bbaf) (@johnstcn)
- CLI: Improve exp task status --watch (#19969,82bebc7) (@johnstcn)
- CLI: Add exp task logs (#19915,b7e0b2a) (@DanielleMaywood)
- CLI: Add more information to
coder whoami
(#19971,0a840e4) (@johnstcn) - CLI: Add ability to create tasks for other users (#20012,abdea72) (@johnstcn)
- CLI: Add
workspace-updates
scaletest command (#19905,0be9221) (@ethanndickson)
Workspace sharing
Shared workspaces are in the early stages of development and not ready for public testing; we're looking forward to sharing the work when it's available. If you have requests for shared workspaces, please leave feedback in ourGithub Discussions.
- Add
sharing add
command to the CLI (#19576,909acbc) (@brettkolodny) - Add
sharing show
command to the CLI (#19707,065c7c3) (@brettkolodny) - Add
sharing remove
command to the CLI (#19767,8d5c566) (@brettkolodny) - Add
--shared-with-me
flag tocoder list
command (#19948,647101b) (@brettkolodny)
Core
- Add user filter to templates page to filter by template author (#19561,95dccf3) (@rafrdz)
- Add default workspace name to Template Embed form (#19688,5c1a708) (@mtojek)
- Add workspaces/acl [delete] endpoint (#19772,854f3c0) (@brettkolodny)
- Add helm var to support RBAC for deploying workspaces in extra namespaces (#19517,6238937) (@rowansmithau)
- Add
shared_with_group:
andshared_with_user:
filters to /workspaces endpoint (#19875,38ca987) (@brettkolodny) - Show warning in AppLink if hostname is long enough to break port forwarding (#19506,6c01a77) (@aqandrew)
- Add prebuild timing metrics to Prometheus (#19503,0ab345c) (@ssncferreira)
- Replace the jetbrains-gateway module with the jetbrains toolbox (#19583,b61a5d7) (@app/blink-so)
- Supportcustom notifications (#19751,eec6c8c) (@ssncferreira)
- Ensure OAuth2 refresh tokens outlive access tokens (#19769,088d149) (@ThomasK33)
- Scope
allow_list
to includeresource_type
(#19748,679179f) (@Emyrk) - Add best effort attempt to revoke oauth access token in external auth provider (#19775,439b041) (@pawbana)
- Implement API key scopes database migration (#19861,fb0ce38) (@ThomasK33)
- Add lint check for API key scope enum completeness (#19862,acc0890) (@ThomasK33)
- Generate RBAC scope name constants (#19896,adb7521) (@ThomasK33)
- Add scaletest Runner for dynamicparameters load gen (#19890,289f021) (@spikecurtis)
- Add public RBAC scope catalog for user-requestable permissions (#19913,47c92ad) (@ThomasK33)
- Add external API key scopes (#19916,4bda395) (@ThomasK33)
- Add multi-scope support to API keys (#19917,d0db9ec) (@ThomasK33)
- Publish RBAC scopes in OAuth2 metadata endpoints (#19942,05537c1) (@ThomasK33)
- Remove agent name from app URLs (#19750,d29a524) (@rafrdz)
- Implement composite API key scopes for workspaces and templates (#19945,79126ab) (@ThomasK33)
- Server: Add tasks delete endpoint (#19638,e5ac640) (@mafredri)
- Server: Allow specifying a name for a task (#19745,f3b152b) (@DanielleMaywood)
- Server: Add experimental tasks send endpoint (#19941,5317d30) (@mafredri)
- Server: Add experimental tasks logs endpoint (#19958,0bac5a4) (@mafredri)
- Server: Add ability to search org members by user_id, is_system, github_user_id (#20048,ff930ad) (@johnstcn)
- Dashboard: Display warning messages when wildcard is not configured (#19660,7c8f8f4) (@kacpersaw)
- Dashboard: Display warnings in tasks page when wildcard is not configured (#19780,0601cc8) (@kacpersaw)
- Dashboard: Allow starting task workspace from task page (#19790,b71d671) (@DanielleMaywood)
- Dashboard: Add custom notification settings (#19938,da467ba) (@ssncferreira)
- Dashboard: Add task notifications to user settings (#20006,7bddd80) (@ssncferreira)
- Enterprise: Allow system users to be added to groups (#19518,4e9ee80) (@SasSwart)
Bug fixes
- Don't show prebuild workspaces as tasks (#19572,abc946c) (@BrunoQuaresma)
- Suppress license expiry warning if a new license covers the gap (#19601,605dad8) (@deansheather)
- Limit the scope of the template average build time query to the last 100 (#19648,4fab14b) (@cstyan)
- Expire token for prebuilds user when regenerating session token (#19667,06cbb28) (@johnstcn)
- Show popup on successful template build (#19674,d415964) (@mtojek)
- Change enqueue error to debug log level (#19686,04dfda8) (@spikecurtis)
- Pin pg_dump version when generating schema (#19696,1b4ce09) (@ethanndickson)
- Prevent new workspace page from scrolling past the bottom of the screen (#19705,a78d65c) (@brettkolodny)
- Support path parameters in OAuth2 metadata endpoints (#19729,2701d55) (@ThomasK33)
- Add xmlns attribute to amazon-q.svg for proper rendering (#19738,d7d69d1) (@app/blink-so)
- Add support for spaces in search & enable searching by display name in templates (#19552,1677a30) (@rafrdz)
- Prevent unruly stacking contexts from breaking scrolling (#19785,8e79dbb) (@aslilac)
- Trim whitespace from API tokens (#19814,d238480) (@ThomasK33)
- Scroll item list into view when opening
MultiSelectCombobox
(#19806,8ff4ba0) (@aslilac) - Correct MCP tools' input schemas (#19825,18b0aca) (@dannykopping)
- Use filepath to construct mcp test write path (#19808,c31768d) (@code-asher)
- Fix TestCloserStack_Timeout to wait for all asyncClosers (#19837,4fc0093) (@spikecurtis)
- Update bitnami to use legacy image (#19891,738dbc6) (@david-fraley)
- Update bitnami image (#19892,40ffb79) (@david-fraley)
- Add retry logic to OAuth2 metadata tests to avoid race conditions (#19813,6fb4cc6) (@ThomasK33)
- Make app tabs scrollable (#19881,e7d648f) (@BrunoQuaresma)
- Use unique cookies for workspace proxies (#19930,42dd544) (@deansheather)
- Force task to be created with latest version (#19923,5ff503b) (@BrunoQuaresma)
- Handle chat app not found for Tasks (#19947,c2d5143) (@BrunoQuaresma)
- Fix for template dormancy hour/day toggle (#19884,aaa5071) (@rowansmithau)
- Add tasks link to sidebar logo (#20038,b8370c2) (@BrunoQuaresma)
- CLI: Enhance error handling for multiple agents in SSH command (#19943,c8742ba) (@kacpersaw)
- CLI: Only implicitly read from stdin if the directory flag is unset (#19681,f867a9d) (@ethanndickson)
- Server: Filter out non-task workspaces in api.tasksList (#19559,dbc6c98) (@johnstcn)
- Server: Ignore sub agents when converting a task to workspace (#19624,75b38f1) (@DanielleMaywood)
- Server: Fix logic for reporting prebuilt workspace duration metric (#19641,353f5de) (@ssncferreira)
- Server: Ensure a newly created task can be fetched (#19670,12bce12) (@DanielleMaywood)
- Server: Add audit log on creating a new session key (#19672,bd6e91e) (@johnstcn)
- Server: Ensure agent WebSocket conn is cleaned up (#19711,e12b621) (@DanielleMaywood)
- Server: Add blocking GetProvisionerJobByIDWithLock for workspace build cancellation (#19737,776231d) (@kacpersaw)
- Server: Fix parsing of response format in tasks send (#19960,653101e) (@mafredri)
- Server: Increase task notification dedupe bypass timestamp to 1 minute (#20043,6e4d903) (@johnstcn)
- Server: Workaround lack of coder_ai_task resource on stop transition (#19560,bd139f3) (@johnstcn)
- Server: Ensure generated name is within 32 byte limit (#19612,347ab5b) (@DanielleMaywood)
- Documentation: Add missing div to fix formatting (#20047,fe189b9) (@david-fraley)
- Dashboard: Show available logs consistently on template creation page (#19832,f5fac29) (@aslilac)
- Dashboard: Update
useAgentLogs
to make it more testable and add more tests (#19126,759746c) (@Parkreiner) - Dashboard: Revamp UI for batch-updating workspaces (#18895,8a6852f) (@Parkreiner)
- Dashboard: Resolve circular dependency between WorkspacesPage components (#19895,d464360) (@BrunoQuaresma)
Documentation
- Replace offline deployments terminology toair-gapped (#19625,02ecf32) (@app/blink-so)
- UpdateTailscale DERP fleet usage phrasing (#19653,2030907) (@hugodutka)
- ReorganizeCoder Desktop docs (#18871,8f72538) (@matifali)
- Addguidelines about PR size (#19700,d25ff6c) (@spikecurtis)
- Fix typo inCoder Desktop Guide (#19742,f402ec9) (@david-fraley)
- UpdateGet Started Page to Include Tasks (#19752,1e2b66f) (@david-fraley)
- Remove beta references fromdynamic parameters (#19714,c9a877a) (@app/blink-so)
- Fixformatting issues (#19831,cda8593) (@david-fraley)
- UpdateTasks Template Code (#19770,ea71808) (@david-fraley)
- Clarifyoffline CLI installation instructions (#19914,d2da835) (@matifali)
- Add next steps tocoder desktop guide (#19975,659f237) (@ethanndickson)
- AddTasks Core Principles Page (#19878,95aa16d) (@david-fraley)
- Orientinstall page towards enterprise and community members (#20041,7481ada) (@david-fraley)
- update Claude Code version indocs (#20049,bf2cfdd) (@david-fraley)
- Documentautomatic task naming (#19614,8d6a322) (@johnstcn)
- Add docs forexternal workspaces (#19437,33509f2) (@kacpersaw)
- Addwildcard access url documentation page (#19713,f9f0ebb) (@kacpersaw)
Performance improvements
- Reduce impact of GetPrebuildMetrics on database (#19694,0ec9df3) (@cstyan)
- Database: Optimize GetAPIKeysLastUsedAfter (#19725,21402c7) (@mafredri)
- Enterprise: Remove expensive GetWorkspaces query from entitlements (#19747,3074547) (@kacpersaw)
Chores
- Pin dependencies in Dockerfiles (#19587,252f7d4) (@sreya)
- Pin devcontainer-cli for .devcontainer config (#19594,0f1fc88) (@sreya)
- Set more explicit guards for serving bin files (#19597,be40b8c) (@sreya)
- Upgrade our tailscale fork to address CVE (#19634,71ea919) (@spikecurtis)
- Update coder/preview to v1.0.4 (#19640,f571730) (@Emyrk)
- Refactor instance identity to be a SessionTokenProvider (#19566,1354d84) (@spikecurtis)
- Refactor CLI agent auth tests as unit tests (#19609,18945a7) (@spikecurtis)
- Update rego policy to respect user and organisation scopes (#19741,d527f91) (@Emyrk)
- Add backed reader, writer and pipe implementation (#19147,4c98dec) (@ibetitsmike)
- Add aibridge configs & experiment (#19793,8487216) (@dannykopping)
- Add aibridge database resources & define RBAC policies (#19796,422bba4) (@dannykopping)
- Upgrade to react 19 (#19829,8db82d2) (@aslilac)
- Upgrade Node.js from 20.19.4 to 22.19.0 and update dependencies (#19870,4d8dc22) (@ThomasK33)
- Add tasks sidebar component (#19926,7baaa16) (@BrunoQuaresma)
- Add CLI command to list aibridge interceptions (#19935,65f2895) (@pawbana)
- CLI: Re-order CLI create command (#19658,a2a758d) (@DanielleMaywood)
- Dashboard: Add rustdesk icon (#19888,f39cf30) (@BenraouaneSoufiane)
Compare:v2.26.1...v2.27.0
Container image
docker pull ghcr.io/coder/coder:v2.27.0
Install/upgrade
Refer to our docs toinstall orupgrade Coder, or use a release asset below.
Assets26
Uh oh!
There was an error while loading.Please reload this page.