Commit Graph

453 Commits

Author SHA1 Message Date
Carlos Florêncio a5d6649f69 feat(review): support nested submodule review (#2295) 2026-08-06 15:04:19 +01:00
Jean-Emmanuel Losi 92e2256544 fix(acp): let Cursor sessions leave fast mode (parameterizedModelPicker) (#2307) 2026-08-06 14:13:05 +01:00
Carlos Florêncio acfbf58646 fix: harden remote contribution launch safety (#2294) 2026-08-06 12:07:13 +01:00
nova28 6eaab90d9f feat: add mid-turn steering for Claude ACP sessions (#2241)
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
2026-08-06 11:28:18 +01:00
nova28 6b40d5b2ec feat(automation): make the automation the object, with its own runs destination (#2190)
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
2026-08-06 11:18:59 +01:00
Carlos Florêncio 32ccb02895 feat(quick-terminal): unify terminal and chat tabs (#2235) 2026-08-06 11:16:29 +01:00
Carlos Florêncio 80e4d77bb1 feat(secrets): add scoped repository secret environments (#2237) 2026-08-05 23:05:54 +01:00
nova28 d15d5da8fa fix(backend): seed every workspace with its stored base branch (#2270) 2026-08-05 22:37:07 +01:00
Clément Fiere 6b938b61cb feat(settings): add enable/disable toggle for agent profiles (#2248)
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
2026-08-05 21:21:51 +01:00
Carlos Florêncio 84fe8132a1 feat: support remote contribution tasks (#2265) 2026-08-05 19:25:58 +01:00
Carlos Florêncio a7b416a1a8 fix(web): retire unreachable archived sidebar filter (#2246) 2026-08-05 19:06:49 +01:00
Carlos Florêncio ad70426d46 feat: rename generated task branches (#2262) 2026-08-05 18:23:57 +01:00
Alassane ae31fa85a9 feat(gitlab): add task MR lifecycle notifications (#2125)
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
2026-08-05 18:22:31 +01:00
José Almeida 58f0f6214e feat(lsp): run language servers on task hosts (#1863) 2026-08-05 10:57:24 +01:00
Carlos Florêncio c6dffa122a fix: prevent permanent owned-link target mismatch on task launch (#2253) 2026-08-05 10:54:59 +01:00
Carlos Florêncio 3c9bf8295f feat: support 100 MiB prompt attachments (#2261) 2026-08-04 22:11:13 +01:00
Carlos Florêncio 9ad14224a7 fix: quiet terminal-session ERROR noise in git and resume paths (#2258) 2026-08-04 19:15:41 +01:00
João Manso c487d6b8bc test(acpdbg): resolve the helper process by absolute path (#2245) 2026-08-04 10:31:54 +01:00
João Manso 0b632256aa fix(acpdbg): make the out-of-band queue unbounded so replays cannot deadlock (#2244) 2026-08-04 10:31:38 +01:00
Carlos Florêncio 2ee2fa8c66 fix: make agent turn cancellation responsive (#2228) 2026-08-04 08:09:07 +01:00
Carlos Florêncio 3f46da6645 fix(backend): harden office-disabled cron, title limits, and dead-runtime cleanup (#2206) 2026-08-03 15:11:58 +01:00
João Manso 1d5b8144fb fix(acpdbg): kill the whole process tree so --timeout takes effect (#2191) 2026-08-03 12:17:02 +01:00
João Manso bececdb5f7 fix(hostutility): cap concurrent agent bootstraps so a cold sweep can finish (#2192) 2026-08-03 12:16:39 +01:00
Carlos Florêncio 431e5d40fe fix: enforce classified Git admission paths (#2150) (#2181) 2026-08-03 11:04:34 +01:00
Carlos Florêncio 75cb354fbe fix: isolate high-volume session stream traffic (#2175) 2026-08-03 10:07:12 +01:00
Carlos Florêncio 405ffb1d40 feat: configure workflow session settings (#2137) 2026-08-02 22:32:56 +01:00
Carlos Florêncio b5631da7ee feat: surface OpenCode provider limit errors (#2167) 2026-08-02 21:48:14 +01:00
Alassane 3c7ae1ab9a fix(gitlab): re-land push-detection auto-link fix dropped by #2124's squash merge (#2172) 2026-08-02 21:31:23 +01:00
Carlos Florêncio 62d4522e0f feat: add file-backed diagnostic log bundles (#2087) 2026-08-02 20:14:53 +01:00
Carlos Florêncio 554c33f24d feat: bound task status and session traffic (#2148) 2026-08-02 16:06:14 +01:00
Carlos Florêncio 27e7e0776a fix: preserve managed GitHub tools across login shells (#2141) 2026-08-02 11:18:32 +01:00
Carlos Florêncio 5182cfb95a chore: improve harness guidance and ACP debugging (#1969) 2026-08-01 18:35:14 +01:00
Carlos Florêncio 01beeb3753 fix: handle same-version agent runtime updates (#2120) 2026-08-01 11:18:37 +01:00
José Almeida 03e179c4d3 feat: add last task startup preference (#2102) 2026-08-01 09:58:05 +01:00
Jelloeater's Agent 26db9fc260 feat(agents): add Hermes ACP agent integration (#2089) 2026-07-31 16:32:19 +01:00
Carlos Florêncio 5e486fccf9 fix(acp): preserve model across context reset (#2079) 2026-07-30 22:40:45 +01:00
Carlos Florêncio 167ab6b778 feat(mcp): add session attachment diagnostics (#2061) 2026-07-30 20:49:07 +01:00
nova28 cfa875d9d6 feat(agents): accept command_args when creating custom TUI agents (#2053) 2026-07-30 19:03:18 +01:00
João Salavisa d93b06005d refactor(backend): drop dead req param from resolveGHToken (#2013)
PR #1810 retired the host-global gh token detection that injected GITHUB_TOKEN
into the request env, leaving both remote executors with a `_ = req` placeholder
to silence the unused parameter. resolveGHToken is now just a filter over the
selected credential IDs, so the parameter is gone from the Sprites and SSH
flavors alike. Test asserts the pass-through selection value, not just length.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 23:47:56 +01:00
Carlos Florêncio b734d3f8a5 fix: add stalled agent recovery (#2035) 2026-07-29 14:57:05 +01:00
José Almeida 7ec82dcaec feat(search): add task workspace search palette (#2006) 2026-07-29 09:50:29 +01:00
João Salavisa 7b796b1eaa fix(agents): set confirmed SessionDirTemplate for Pi, Qoder, Kiro and Trae (#2019)
All four templates were confirmed against the shipped CLI, not inferred
from the agent name:

- pi-acp     -> {home}/.pi              (pi-acp@0.0.32 package source)
- qoder-acp  -> {home}/.qoder           (qodercli 1.1.7, --config-dir proof)
- kiro-acp   -> {home}/.kiro            (Kiro CLI 2.15.0, ACP session/new)
- trae-acp   -> {home}/.cache/trae-cli  (Trae CLI 0.120.48, ACP session/new)

Kiro and Trae deliberately break the "{home}/.<agent>" shape: Kiro keeps
its login token in ~/.local/share/kiro-cli/data.sqlite3 while sessions
live in ~/.kiro, and Trae keeps config in ~/.trae but session state in
the cache dir with auth in the OS keyring. Each Runtime() records the
evidence and the residual gaps.

Extends the shared ACP agent spec table with sessionDirTemplate so every
agent's session root is pinned, including the ones already set.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 23:17:47 +01:00
João Manso ca328f750f fix(worktree): stop planting self-referential links in local repositories (#2007) 2026-07-28 23:11:18 +01:00
Carlos Florêncio 09b5c4df7a feat: propagate managed git environment to terminals (#2010) 2026-07-28 21:19:27 +01:00
Carlos Florêncio 7250cdbf61 feat: explain busy storage cleanup and allow override (#1993) 2026-07-28 09:23:42 +01:00
Carlos Florêncio 35d1a85d74 fix: recover failed agent resumes and managed runtimes (#1991) 2026-07-28 09:23:30 +01:00
João Salavisa 16495a6dcc fix(terminal): expose executor-profile env vars to terminal shells (#1992)
* fix(terminal): expose executor-profile env vars to terminal shells

PR #1971 got the profile env into the agent subprocess and the repository
setup script, but the terminal panel was still a gap: the local user shell
was started with `InteractiveStartRequest.Env` unset, so it inherited only
the backend process environment, and agentctl's per-terminal shells were
started from `shell.DefaultConfig` with no env overrides at all.

Local/worktree path: resolve the task environment's executor profile at
terminal start (revealing secret-backed entries) and pass it through
UserShellOptions.Env into the deferred PTY start. Resolution happens per
terminal rather than being cached at launch, so a terminal opened before
the agent ever runs still gets the vars.

Remote path (Docker/Sprites/SSH): StartTerminalShell now folds the agent
instance's env into the shell config, so a terminal inside the workspace
sees what the agent sees. SSH is unchanged in scope — its instance env is
still only the credential allowlist, not arbitrary profile variables.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(terminal): resolve terminal env from the session's executor profile

Address PR review. The resolver read executor_profile_id off the
task_environments row, but persistTaskEnvironment's reuse branch never
refreshes that column — it keeps whatever the first session stamped on it.
buildLaunchAgentRequest resolves the agent's env from
session.ExecutorProfileID instead, so a task environment reused by a later
session that picked a different profile of the same executor type would give
the terminal stale secrets and omit the ones the agent just received.

Prefer the session's profile and fall back to the environment row only when
the session recorded none. Also document why mergeAgentEnvIntoShellConfig
needs no defensive copy and why StartEnvForTesting is exported.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(terminal): give env-row fallback subtests distinct session IDs

Address PR review nit: both subtests shared the hardcoded "session-3" at
the call site, so the error-path case read as a repeat of the first.
Move the session ID into the table as session-no-profile / session-error.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Kandev Agent <agent@kandev.dev>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 00:08:57 +01:00
Carlos Florêncio 2bd2bae2ea feat: improve agent runtime update flow (#1982) 2026-07-27 19:34:13 +01:00
Carlos Florêncio b39a668e99 feat(github): add task git credential policy (#1985) 2026-07-27 18:10:12 +01:00
Carlos Florêncio 9f09ef6f7c fix: preserve prompts across usage-limit recovery (#1976) 2026-07-27 14:02:01 +01:00