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
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
Carlos Florêncio
84fe8132a1
feat: support remote contribution tasks ( #2265 )
2026-08-05 19:25:58 +01:00
Alassane
345ea1216d
feat(plugins): add task panel, menu, and storage hooks ( #2152 )
...
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-08-05 19:02:29 +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
Carlos Florêncio
3c9bf8295f
feat: support 100 MiB prompt attachments ( #2261 )
2026-08-04 22:11:13 +01:00
Aulma
4b5203788d
feat(web): drive navigation surfaces from one manifest ( #2233 )
2026-08-04 17:55:54 +01:00
José Almeida
d6b95500eb
fix: make pending message queues manageable ( #2239 )
2026-08-04 08:49:46 +01:00
José Almeida
1d5c3e3f5f
feat: add npm nightly release channel ( #2126 )
2026-08-04 00:45:50 +01:00
Carlos Florêncio
bb71233826
chore: add architecture lint guardrails ( #2168 )
2026-08-03 22:40:29 +01:00
Carlos Florêncio
b2518b9b8b
fix(ui): preserve cancel progress across task switches ( #2199 )
2026-08-03 22:03:23 +01:00
Carlos Florêncio
1e5fce99c4
feat: run completion actions on cancelled turns ( #2186 )
2026-08-03 13:37:34 +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
Carlos Florêncio
2a2c9d3118
docs: clarify generated task title guidance ( #2171 )
2026-08-02 21:15:49 +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
3b00a22589
feat: add optional agent-generated task titles ( #2104 )
2026-08-02 15:53:46 +01:00
Carlos Florêncio
e077658a61
refactor: centralize runtime feature flag bindings ( #2142 )
2026-08-02 15:36:21 +01:00
Carlos Florêncio
190eeddbc4
fix: default new workspaces to host GitHub access ( #2156 )
2026-08-02 14:13:04 +01:00
João Salavisa
c7be985a29
feat(i18n): localize shared-task artifacts in the creator's locale ( #2147 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-02 10:58:18 +02:00
Carlos Florêncio
b29ee5e6d2
fix(web): keep repository tasks on worktree defaults ( #2136 )
2026-08-01 20:34:23 +01:00
Carlos Florêncio
1e353fbbbc
fix: prevent scheduler database access during shutdown ( #2135 )
2026-08-01 20:11:04 +01:00
Carlos Florêncio
1bccadf8f9
fix: validate MCP tool arguments ( #2123 ) ( #2128 )
2026-08-01 18:18:08 +01:00
Carlos Florêncio
e466bda55f
fix: preserve service identity and resume credentials ( #2121 )
2026-08-01 11:19:24 +01:00
Carlos Florêncio
0aa6749bdb
fix(ci): checkout PR head for Claude mentions ( #2109 )
2026-07-31 19:51:06 +01:00
Carlos Florêncio
9f2b5f92c3
refactor(settings): centralize portable user-setting defaults ( #2107 )
2026-07-31 18:41:49 +01:00
José Almeida
d46ec16770
fix: improve interactive accent contrast ( #2075 )
2026-07-31 10:55:29 +01:00
Carlos Florêncio
5b1d464ae5
fix(orchestrator): order runtime task state events ( #2082 )
2026-07-31 09:29:48 +01:00
Carlos Florêncio
3760f12939
feat(editors): scope embedded VS Code by executor ( #2059 )
2026-07-30 22:24:16 +01:00
Carlos Florêncio
167ab6b778
feat(mcp): add session attachment diagnostics ( #2061 )
2026-07-30 20:49:07 +01:00
José Almeida
eab70052d2
fix(web): prevent blank screens during SPA recovery ( #2024 )
...
* fix(web): prevent blank screens during SPA recovery
* fix(web): address SPA recovery review feedback
2026-07-30 10:46:35 +01:00
Carlos Florêncio
6ba9f1b0fd
feat: add quarantine retention lifecycle ( #2049 )
2026-07-30 10:44:51 +01:00
Luan Martins
04a5c4e4ee
feat(github): add task PR lifecycle notifications ( #2038 )
2026-07-29 18:13:02 +01:00
Carlos Florêncio
b734d3f8a5
fix: add stalled agent recovery ( #2035 )
2026-07-29 14:57:05 +01:00
Carlos Florêncio
e8d4b7d69e
fix: restore coarse running busy signal ( #2023 )
2026-07-29 08:11:51 +01:00
Carlos Florêncio
f501346d15
feat: add visible WIP overflow queues ( #2001 )
2026-07-28 15:46:16 +01:00
Carlos Florêncio
d705b3c2f3
fix(mcp): restore live add-branch worktrees ( #1990 )
...
* fix(mcp): restore live add-branch worktrees
* fix(mcp): reject deferred live branch additions
* docs(mcp): clarify live branch response contract
2026-07-27 22:08:18 +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
d0d084bdc6
feat(agents): add user-managed runtime updates ( #1950 )
2026-07-27 12:21:47 +01:00
Carlos Florêncio
a1db95d484
refactor(harness): simplify model routing ( #1973 )
2026-07-27 10:48:00 +01:00
Carlos Florêncio
9489c24297
fix(ui): prefer live model over saved profile label in session tab title ( #1968 )
2026-07-26 20:10:27 +01:00
João Salavisa
b20047b3eb
feat(plugins): add auth capability for plugin-provided OIDC/SAML login ( #1964 )
...
* feat(plugins): add auth capability for plugin-provided OIDC/SAML login
Plugins can now authenticate a visitor against an external IdP (OIDC/SAML)
and contribute a login button to the pre-auth screen:
- new `auth` manifest capability + a capability-gated X-Kandev-Auth-Login
webhook-response directive; the host mints the kandev_session (ADR 0050),
the plugin never receives the raw token. Plugin-set Set-Cookie is dropped.
- auth.Service.AuthenticateExternal: existing-identity / link-by-email / JIT
member provisioning; refuses to auto-link to an admin; verified-email is
the plugin's contract.
- auth_providers manifest block + plugins.SSOProviders() populate the
anonymous boot payload (auth.ssoProviders); the login page renders a
"Continue with <provider>" button per provider.
- ADR 0050 + plugin-manifest / plugin-authoring / auth spec docs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* docs: exclude publish_review_findings_kandev from public-docs coverage
The native code-review agent (#1957 ) added the publish_review_findings_kandev
MCP tool but did not update docs/public/coverage.json; that PR did not touch
docs/public so the path-filtered validator never ran. It's an internal review
reporting tool, not a user-facing feature, so record it as an exclusion.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* fix(plugins,auth): address review on SSO directive and JIT provisioning
- takeAuthLoginDirective strips every case variant of X-Kandev-Auth-Login and
rejects (403) when a plugin sends more than one, so no variant leaks to the
browser and login never uses a nondeterministically-picked assertion.
- provisionExternalUser rolls back the just-created user when the identity
insert fails (transient error or a lost UNIQUE(provider,subject) race) and
resolves to the winning identity, so no account is left without a login and
no email is reserved by an unusable row. Adds userstore.DeleteUser.
- auth spec: mark the login-page SSO buttons + provider discovery as landed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* docs: drop redundant coverage exclusion; main now covers publish_review_findings_kandev
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
---------
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-26 18:20:39 +01:00
Carlos Florêncio
3b9a4be278
fix(orchestrator): retire execution activity on teardown ( #1961 )
2026-07-26 17:01:48 +01:00
Carlos Florêncio
6ffb23c187
fix: harden background work lifecycle tracking ( #1955 )
2026-07-26 14:18:35 +01:00
Carlos Florêncio
75abf779ed
feat(github): support per-workspace GitHub App registrations ( #1810 )
2026-07-26 10:39:08 +01:00
Carlos Florêncio
bc218dfbbe
feat: add workspace sources from files panel ( #1900 )
...
* feat: add workspace sources from files panel
* fix: preserve worktree identity during recovery
* feat: unify workspace source actions
* fix: validate recovered workspace repositories
* fix: harden workspace source filesystem boundaries
* test: split workspace repository chip coverage
* fix: restrict repository rescan recovery paths
* fix: stabilize workspace source CI checks
* test: canonicalize workspace source paths
* test: align workspace source container paths
* fix: populate direct workspace repository names
* test: preserve git fixture rewrites across restarts
* test: isolate backend git fixture config
* fix: resume remote workspace executions before creation
* fix: preserve ssh agent identity during resume
* fix: preserve SSH workspace across backend restart
* fix: simplify workspace actions trigger
* fix: refine add workspace repositories UX
* docs: narrow workspace source UX updates
* fix: avoid phantom turn on session resume
* test(web): normalize workspace source request headers
* feat(web): streamline workspace source picker
* docs: remove trailing spaces from workspace source plan
* fix: prevent resume status from creating phantom turns
* fix(web): stabilize workspace source attachment
* refactor(web): extract workspace source store contract
* fix: avoid phantom turns on idle agent resume
* fix: address backend static analysis findings
* fix: preserve agentctl readiness status value
* fix: preserve resume messages without active turns
* fix: resume agents from promoted workspace root
* chore: merge origin/main into feature/add-new-repo-folder-d97
* feat(web): explain workspace source consequences
* test(websocket): count session activity subscription
2026-07-25 21:29:53 +01:00