Luan Martins
10996c1b57
feat: add optional workflow-level agent prompt ( #2338 )
2026-08-07 15:22:44 +01:00
João Salavisa
969dc0ea86
feat(i18n): localize app/office, the last un-migrated area ( #2367 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-07 14:02:08 +02:00
João Salavisa
88002a60a3
fix(i18n): localize date-fns distances and drop redundant t() test stubs ( #2363 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-07 13:29:44 +02:00
João Salavisa
e05d620876
refactor(plugins): move Slack out to kandev-plugin-slack and list it in the marketplace ( #2344 )
...
Co-authored-by: Kandev Agent <agent@kandev.local >
2026-08-07 11:06:17 +02:00
José Almeida
f94af8de7b
feat(web): add responsive, resizable markdown tables ( #2098 )
2026-08-06 15:40:58 +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
Carlos Florêncio
da66f88570
fix(web): show spinner while deleting session tabs ( #2298 )
2026-08-05 23:05:33 +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
João Salavisa
3c6212da7d
feat(i18n): localize stats, tasks list, and auth pages ( #2291 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-05 22:20:56 +02:00
João Salavisa
24c3b594ce
fix(i18n): anchor the literal guard's exclusions so they stop swallowing copy ( #2288 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-05 19:36:27 +02:00
João Salavisa
409fdcd3da
feat(i18n): localize the Azure DevOps, Jira, Linear and Sentry task surfaces ( #2284 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-05 17:42:20 +02:00
João Salavisa
58eee5a314
feat(i18n): localize the GitHub and GitLab task surfaces ( #2283 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-05 15:14:26 +02:00
José Almeida
56350ffc2b
feat: add settings discovery ( #2281 )
2026-08-05 14:07:52 +01:00
João Salavisa
f2510dfcb5
feat(i18n): localize Settings Plugins, Account and the SSH/executors tree ( #2249 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-05 12:53:55 +02:00
João Manso
8bca38957f
fix(web): point popular MCP presets at servers that exist ( #2255 )
2026-08-04 21:53:20 +01:00
BillChenIDY
7684bd09aa
feat(i18n): add Simplified Chinese locale ( #2243 )
...
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com >
2026-08-04 21:51:32 +01:00
João Salavisa
2a7a8dcd48
feat(i18n): localize Automations ( #2247 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-04 10:46:40 +02:00
José Almeida
d6b95500eb
fix: make pending message queues manageable ( #2239 )
2026-08-04 08:49:46 +01:00
Carlos Florêncio
560e35982f
fix: restore executor settings card spacing ( #2231 )
2026-08-03 23:11:54 +01:00
João Salavisa
957cbb910e
feat(i18n): localize Settings → Workspace ( #2212 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-03 20:52:09 +02:00
João Salavisa
0e36f3797a
chore(web): delete the unreferenced Next-era System settings pages ( #2219 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 19:03:39 +02:00
João Salavisa
25564efeb8
feat(i18n): localize the remaining Settings → System routes ( #2202 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 17:18:08 +02:00
João Salavisa
03d5f98cb6
feat(i18n): localize Settings → Workflows ( #2201 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 15:30:27 +02:00
Carlos Florêncio
1e5fce99c4
feat: run completion actions on cancelled turns ( #2186 )
2026-08-03 13:37:34 +01:00
João Salavisa
0ca00c2aca
feat(i18n): localize Settings → Executors profile editor ( #2195 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-03 13:49:30 +02:00
João Salavisa
3a8cc60dd1
feat(i18n): localize Settings → System → Storage ( #2194 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
2026-08-03 12:58:19 +02:00
João Salavisa
b6848712f8
feat(i18n): localize Settings → Agents ( #2193 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-03 12:16:25 +02:00
Carlos Florêncio
75cb354fbe
fix: isolate high-volume session stream traffic ( #2175 )
2026-08-03 10:07:12 +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
4af38e1c3b
feat: add editable Azure DevOps board ( #2033 )
2026-08-02 17:08:22 +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
e077658a61
refactor: centralize runtime feature flag bindings ( #2142 )
2026-08-02 15:36:21 +01:00
Carlos Florêncio
40376226cf
fix: guard browser APIs in insecure contexts ( #2157 )
2026-08-02 14:15:29 +01:00
Carlos Florêncio
1d70a0df6d
feat: enforce task title length limit ( #2134 )
2026-08-01 19:42:23 +01:00
Carlos Florêncio
1a1b4725f7
fix(web): stabilize task dialog rendering in WebKit ( #2129 )
2026-08-01 17:07:32 +01:00
Carlos Florêncio
1a999f201a
fix: resolve chat file links from task workspace root ( #2127 )
2026-08-01 14:46:57 +01:00
José Almeida
03e179c4d3
feat: add last task startup preference ( #2102 )
2026-08-01 09:58:05 +01:00
José Almeida
f8c363f726
feat(layout): add layout-owned PR Details panel ( #2094 )
2026-07-31 19:45:32 +01:00
José Almeida
441c8a34ac
fix(web): align status bar with sidebar ( #2096 )
2026-07-31 15:24:23 +01:00
José Almeida
d46ec16770
fix: improve interactive accent contrast ( #2075 )
2026-07-31 10:55:29 +01:00
João Salavisa
9be979827d
fix: sync quick chats and their names across devices ( #2085 )
...
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-31 09:01:22 +01:00
João Salavisa
1a3c134f1a
feat(plugins): ship the plugin system without a feature flag ( #2086 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-31 08:59:34 +01:00
João Salavisa
5211a2d197
refactor(web): reuse stats-utils formatDuration in stats-sections ( #2068 )
...
Co-authored-by: Kandev Agent <agent@kandev.dev >
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-30 21:31:25 +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
a84e481d20
feat: refresh task surfaces on foreground and pull ( #1986 )
...
* feat: refresh task surfaces on foreground and pull
* fix: address task surface refresh review feedback
* fix: prevent task list render loop
2026-07-27 20:42:05 +01:00
Carlos Florêncio
2bd2bae2ea
feat: improve agent runtime update flow ( #1982 )
2026-07-27 19:34:13 +01:00
Carlos Florêncio
d0d084bdc6
feat(agents): add user-managed runtime updates ( #1950 )
2026-07-27 12:21:47 +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