507 Commits

Author SHA1 Message Date
DevCats
f14d174afc
Merge branch 'main' into 35C4n0r/feat-agentapi-architecture-improv 2026-02-25 12:24:35 -06:00
Michael Suchacz
94e41d3780
Add arbitrary mux server command argument parsing (#738)
## Summary
- add a new `additional_arguments` module variable to pass extra
arguments to `mux server`
- parse `additional_arguments` in `run.sh` with quoted-group support so
values like paths with spaces are preserved
- keep existing `add-project` behavior while allowing additional
arbitrary flags
- add Terraform and Bun tests covering `additional_arguments` behavior
- document the new option in the module README and bump example version
references to `1.2.0`

## Why
The module previously only supported the `add-project` flag. This change
lets users pass additional `mux server` arguments without waiting for
new module variables.

## Validation
- `shellcheck --severity=warning --format=gcc
registry/coder/modules/mux/run.sh`
- `terraform -chdir=registry/coder/modules/mux test -verbose`
- `bun test registry/coder/modules/mux/main.test.ts`

## Breaking changes
None.

---
Generated with Mux (exec agent) using GPT-5.
release/coder/mux/v1.2.0
2026-02-25 18:15:33 +00:00
Phorcys
480bf4b48c
chore: update vscode-desktop-core module dependencies (#751)
## Description

#750 follow-up

## Type of Change

- [ ] New module
- [ ] New template
- [ ] Bug fix
- [x] Feature/enhancement
- [ ] Documentation
- [ ] Other
release/cytoshahar/positron/v1.0.2 release/coder/windsurf/v1.3.1 release/coder/vscode-desktop/v1.2.1 release/coder/kiro/v1.2.1 release/coder/cursor/v1.4.1 release/coder/antigravity/v1.0.1
2026-02-24 05:20:27 +00:00
Phorcys
d8851492c0
fix: fix positron module slug and display name (#752)
## Description

In https://github.com/coder/registry/pull/279, I had accidentally made
the slug of the Positron Desktop app "cursor", and display name to be
"Cursor Desktop". This PR fixes that.

## Type of Change

- [ ] New module
- [ ] New template
- [x] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [ ] Other
release/cytoshahar/positron/v1.0.1
2026-02-24 09:43:49 +05:00
Phorcys
186a779659
chore(registry/coder/modules): rename vscode-desktop-core input params (#750)
## Description

Rename `web_app_*` suffix to `coder_app_*`

## Type of Change

- [ ] New module
- [ ] New template
- [ ] Bug fix
- [x] Feature/enhancement
- [ ] Documentation
- [ ] Other
release/coder/agentapi/v2.1.1 release/coder/kasmvnc/v1.3.0 release/coder/vscode-desktop-core/v1.0.2
2026-02-24 01:57:35 +01:00
Zach
8defcb2410
fix(agentapi): fix misleading attempt counter in wait-for-start script (#734)
The log message showed ($i/15) where $i ranged from 1-150, making it
look like the counter overshot its maximum. This change extracts the
iteration count into a max_attempts variable and uses it consistently.
2026-02-18 16:13:22 +00:00
Katorly
14c43d9f29
fix(coder/modules/jetbrains and coder-labs/modules/nextflow): fix typos in two documentations (#714) 2026-02-18 08:11:20 +00:00
blinkagent[bot]
ac92895c50
docs(azure-linux): clarify resource lifecycle on stop vs delete (#713)
The existing README for the Azure Linux template only mentioned that the
VM is ephemeral and the managed disk is persistent, but did not explain
that the resource group, virtual network, subnet, and network interface
also persist when a workspace is stopped.

This led to confusion where users expected all Azure resources to be
cleaned up on stop, when in reality only the VM is destroyed.

## Changes

- Added the persistent networking/infrastructure resources to the
resource list
- Added "What happens on stop" section explaining which resources
persist and why
- Added "What happens on delete" section confirming all resources are
cleaned up
- Moved the existing note about ephemeral tools/files into a "Workspace
restarts" subsection for clarity

Created on behalf of @DevelopmentCats

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: DevCats <christofer@coder.com>
2026-02-17 14:05:54 -06:00
Rowan Smith
563dbc4a71
feat: add post_clone_script to dotfiles in order to support startup dependencies/coordination (#679)
## Description

Adds post_clone_script variable to the dotfiles module, enabling startup
coordination with other scripts that depend on dotfiles.

An example of how to use this, which assumes the PR has been merged:

```
module "dotfiles" {
  count                = data.coder_workspace.me.start_count
  source               = "registry.coder.com/coder/dotfiles/coder"
  version              = "1.3.0"
  agent_id             = coder_agent.main.id
  default_dotfiles_uri = "https://github.com/someuser/somedotfiles"
  post_clone_script    = <<-EOF
    coder exp sync start dotfiles && coder exp sync complete dotfiles
  EOF
}

resource "coder_script" "personalize" {
  count        = data.coder_workspace.me.start_count
  agent_id     = coder_agent.main.id
  display_name = "Personalize"
  icon         = "/icon/personalize.svg"
  run_on_start = true
  script       = <<-EOF
    trap 'coder exp sync complete personalize' EXIT
    coder exp sync want personalize dotfiles
    coder exp sync start personalize
    SCRIPT="$HOME/.config/coderv2/dotfiles/personalize"
    if [ -f "$SCRIPT" ] && [ -x "$SCRIPT" ]; then
      $SCRIPT
    fi
  EOF
}
```

## Type of Change

- [ ] New module
- [ ] New template
- [ ] Bug fix
- [x] Feature/enhancement
- [ ] Documentation
- [ ] Other

## Module Information

**Path:** `registry/coder/modules/dotfiles`  
**New version:** `v1.3.0`  
**Breaking change:** [ ] Yes [x] No

## Testing & Validation

- [ ] Tests pass (`bun test`)
- [ ] Code formatted (`bun fmt`)
- [x] Changes tested locally

## Related Issues

#678
release/coder/dotfiles/v1.3.0
2026-02-16 09:14:50 +11:00
Michael Suchacz
39fec7ca82
🤖 feat: mux module — add per-workspace auth token for CSWSH protection (#728)
## Summary

Add per-workspace authentication token wiring to the Mux Coder module,
closing the last-mile deployment gap for cross-site WebSocket hijacking
(CSWSH) protection identified in coder/security#120.

## Background

When Mux runs as a Coder workspace app, it is accessible via Coder's
subdomain proxy (e.g., `mux--ws--user.apps.coder.com`). Without an auth
token, a malicious same-site origin (another user's workspace app on the
same `*.coder.com` domain) can hijack the WebSocket session and execute
arbitrary commands via the oRPC API.

The Mux application itself already implements:
- **Strict same-origin enforcement** for HTTP/CORS and WebSocket
upgrades (coder/mux#2418)
- **Auth token support** — the server reads `MUX_SERVER_AUTH_TOKEN` or
`--auth-token`, and the browser frontend extracts `?token=` from the URL
and persists it to localStorage

What was missing was module-level token generation and browser/backend
wiring.

## Implementation

- **`random_password.mux_auth_token`** generates a 64-character token
per module instance.
- **Backend wiring:** `run.sh` launches mux with a process-scoped
`MUX_SERVER_AUTH_TOKEN` environment variable.
- **Frontend wiring:** `coder_app.mux.url` includes `?token=<secret>` so
first launch from Coder passes the token to the browser for
bootstrap/persistence.

To avoid cross-instance breakage, this change intentionally does **not**
use a shared `coder_env` key. Multiple `coder/mux` module instances can
target the same `agent_id` (different `slug`/`port`), and a single
global env key would collide. Process-scoped env keeps each instance's
backend token aligned with its app URL token.

## Validation

- `terraform fmt -check -diff` in `registry/coder/modules/mux`
- `terraform test` in `registry/coder/modules/mux` (8 passed, 0 failed)
- Updated tests now verify the URL token value (not just prefix) and
verify the launch script sets `MUX_SERVER_AUTH_TOKEN` using the
generated token.

---

_Generated with `mux` • Model: `anthropic:claude-opus-4-6` • Thinking:
`xhigh`_

<!-- mux-attribution: model=anthropic:claude-opus-4-6 thinking=xhigh -->
release/coder/mux/v1.1.0
2026-02-14 23:08:12 +01:00
35C4n0r
96a069a6de
chore: fix readme version 2026-02-13 22:27:54 +05:30
35C4n0r
4c373ff208
chore: update variable name in README.md 2026-02-13 22:26:41 +05:30
35C4n0r
bb03aae627
feat: point source to registry 2026-02-13 22:18:18 +05:30
35C4n0r
d9fd6453dd
Merge branch 'main' into 35C4n0r/feat-agentapi-architecture-improv 2026-02-13 22:07:42 +05:30
35C4n0r
c5ff4de9ed
feat(coder/modules/agent-helper): add agent-helper module to help run scripts (#704)
## Description
The Agent Helper module is a building block for modules that need to run
multiple scripts in a specific order. It uses `coder exp sync` for
dependency management and is designed for orchestrating pre-install,
install, post-install, and start scripts.

## Type of Change

- [x] New module
- [ ] New template
- [ ] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [ ] Other

## Module Information

<!-- Delete this section if not applicable -->

**Path:** `registry/coder/modules/agent-helper`  
**New version:** `v1.0.0`  
**Breaking change:** [x] Yes [ ] No

## Testing & Validation

- [x] Tests pass (`bun test`)
- [x] Code formatted (`bun fmt`)
- [x] Changes tested locally

## Related Issues

Closes: https://github.com/coder/registry/issues/696
Closes: https://github.com/coder/registry/issues/698

---------

Co-authored-by: DevCats <christofer@coder.com>
2026-02-13 22:05:21 +05:30
35C4n0r
a9a03b167c
feat(coder-labs/modules/codex): bump agentapi version to v0.11.8 in codex (#727)
## Description
- bump agentapi version to v0.11.8 in codex

## Type of Change

- [ ] New module
- [ ] New template
- [ ] Bug fix
- [x] Feature/enhancement
- [ ] Documentation
- [ ] Other

## Module Information

<!-- Delete this section if not applicable -->

**Path:** `registry/coder-labs/modules/codex`  
**New version:** `v4.1.1`  
**Breaking change:** [ ] Yes [x] No

## Testing & Validation

- [x] Tests pass (`bun test`)
- [x] Code formatted (`bun fmt`)
- [x] Changes tested locally

## Related Issues

<!-- Link related issues or write "None" if not applicable -->
release/coder-labs/codex/v4.1.1
2026-02-12 23:21:07 +05:30
Riajul Islam
0449051828
feat(KasmVNC): allow share variable to be passed with default: owner (#709)
Co-authored-by: Atif Ali <atif@coder.com>
2026-02-11 07:34:37 +00:00
35C4n0r
3dddb96b20
bun fmt 2026-02-09 22:54:28 +05:30
35C4n0r
a35df647ec
feat: remove unused variables 2026-02-09 22:49:26 +05:30
35C4n0r
fc88b54bf7
feat: use outputs instead of hard coded names 2026-02-09 21:39:28 +05:30
35C4n0r
64c6417cf5
feat: remove depends_on 2026-02-09 21:02:01 +05:30
35C4n0r
08fcdcc52e
revert 2026-02-09 21:00:58 +05:30
35C4n0r
873c929d86
feat: use outputs instead of hard coded names 2026-02-09 20:51:39 +05:30
DevCats
8e68c96633
fix: add validation to inputs in dot-files module (#703)
## Description

Add's Validation to the dotfiles module in all input's to address
security issue pointed out in
https://github.com/coder/security/issues/119
<!-- Briefly describe what this PR does and why -->

## Type of Change

- [ ] New module
- [ ] New template
- [X] Bug fix
- [ ] Feature/enhancement
- [ ] Documentation
- [ ] Other

## Module Information

<!-- Delete this section if not applicable -->

**Path:** `registry/coder/modules/dotfiles`  
**New version:** `v1.2.4`  
**Breaking change:** [ ] Yes [X] No

## Testing & Validation

- [Y] Tests pass (`bun test`)
- [Y] Code formatted (`bun fmt`)
- [  ] Changes tested locally

## Related Issues

https://github.com/coder/security/issues/119
<!-- Link related issues or write "None" if not applicable -->

---------

Co-authored-by: Jakub Domeracki <jakub@coder.com>
release/coder/dotfiles/v1.2.4
2026-02-09 07:54:15 -06:00
35C4n0r
01873e33c0 feat: agentapi tftests 2026-02-09 11:09:09 +00:00
35C4n0r
b14bbe432d
fix: fix tests 2026-02-09 09:19:17 +05:30
35C4n0r
e499d602fd
chore: bun fmt 2026-02-09 08:55:19 +05:30
35C4n0r
0f11e4a5f8
chore: bun fmt 2026-02-09 08:47:33 +05:30
35C4n0r
c2958d58ca
debug 2026-02-07 11:15:29 +05:30
35C4n0r
5de7928e02
debug 2026-02-07 11:05:58 +05:30
35C4n0r
4732deb327 debug 2026-02-07 04:55:38 +00:00
35C4n0r
191f4ca2c2 debug 2026-02-07 04:48:57 +00:00
35C4n0r
fabb5b2f2e debug 2026-02-07 04:37:23 +00:00
35C4n0r
21757f35d7 debug 2026-02-07 04:32:05 +00:00
35C4n0r
c1a3ed53a9 wip: move scripts to agentapi module 2026-02-07 04:08:13 +00:00
35C4n0r
fde6ae6dc1
debug: depends on 2026-02-07 09:21:07 +05:30
35C4n0r
88b01dba31
debug: depends on 2026-02-07 09:16:23 +05:30
35C4n0r
253f95ff5b
debug 2026-02-07 08:55:35 +05:30
35C4n0r
32fa6cb194
debug 2026-02-07 08:52:29 +05:30
35C4n0r
4bbc6d929e
feat: move install and start script logic to agentapi via agent-helper 2026-02-06 23:37:59 +05:30
35C4n0r
c07954592b chore: fix tests 2026-02-06 17:39:58 +00:00
35C4n0r
65c40ed0ad feat: rector agentapi_server_type to agent_name 2026-02-06 17:32:21 +00:00
35C4n0r
df2d72f608 feat: add mock coder since we now depend on coder command to sync scripts 2026-02-06 17:17:57 +00:00
35C4n0r
03ac608e1f
feat: overwrite agentapi logs instead of appending them 2026-02-06 21:34:25 +05:30
35C4n0r
85e7da3c41
fix: complete commands 2026-02-06 19:24:10 +05:30
35C4n0r
5edf4a9c00
fix: complete commands 2026-02-06 19:20:10 +05:30
35C4n0r
c6307226a7
fix: fix typo 2026-02-06 19:14:53 +05:30
35C4n0r
15ca0aa058
feat: sync main.sh 2026-02-06 18:43:13 +05:30
35C4n0r
d6355834d5
Merge branch 'main' into 35C4n0r/feat-agentapi-architecture-improv 2026-02-05 21:54:47 +05:30
35C4n0r
4459d39529 feat: remove the responsibility of running install and start script from agentapi module 2026-02-05 16:17:12 +00:00