Commit Graph

642 Commits

Author SHA1 Message Date
Carlos Florêncio a8af0787b1 fix: restore Changes focus on task return (#2091) 2026-07-31 13:26:20 +01:00
José Almeida d46ec16770 fix: improve interactive accent contrast (#2075) 2026-07-31 10:55:29 +01:00
Carlos Florêncio 41e819d80e fix(web): improve Mermaid render diagnostics (#2080) 2026-07-31 09:28:55 +01:00
João Salavisa 6b31479ec2 feat(web): open the IDE at a file tree node's path (#2074)
Co-authored-by: Kandev Agent <agent@kandev.dev>
2026-07-31 09:00:31 +01:00
João Salavisa 0866cd8af8 refactor(web): consolidate formatRelativeTime into lib/utils (#2069)
Five copies of formatRelativeTime had drifted across apps/web into three
different output vocabularies, so the same timestamp read differently
depending on which surface rendered it. lib/utils.ts is now the single
implementation.

Deletes the private copies in task-item, automations/format-utils,
commit-detail-panel, and kanban/graph2-task-pipeline; commit-detail-panel
adopts the shared short form rather than keeping its long-form wording.
Adds bucket-boundary unit tests for the shared function.
2026-07-30 22:49:56 +01:00
João Salavisa b082d5e1b9 refactor(web): use the shared formatBytes in chat attachments (#2071)
Delete the two byte-identical local formatBytes copies from the chat-attachment
modules and repoint all call sites at the canonical lib/utils/format-bytes.ts,
which its own doc comment asks new code to use.

The copies had no upper clamp (>= 1 TB rendered "1 undefined") and no NaN or
negative guard (NaN rendered "NaN undefined"). Size labels now carry one
decimal ("10.0 MB" instead of "10 MB") because the canonical helper does not
strip a trailing zero; unit and e2e expectations updated to match.
2026-07-30 22:40:50 +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 f74b0cc618 fix(web): preserve dockview focus during session restore (#2060) 2026-07-30 21:27:04 +01:00
Carlos Florêncio 167ab6b778 feat(mcp): add session attachment diagnostics (#2061) 2026-07-30 20:49:07 +01:00
Carlos Florêncio 40702d9095 fix(settings): improve transcript navigation controls (#2064) 2026-07-30 20:32:34 +01:00
José Almeida d4e8f0a62a fix(web): make review ordering and navigation safe (#2067) 2026-07-30 20:07:36 +01:00
Carlos Florêncio 789b658a1c feat: distinguish workflow completion in task sidebar (#2058) 2026-07-30 14:47:49 +01:00
Clément Fiere 3eb8e4a59c feat: add transcript last prompt navigation (#1999) 2026-07-30 12:35:26 +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 d05ba00b9f feat(web): preview markdown from review diffs (#2036) 2026-07-30 10:44:30 +01:00
Carlos Florêncio b4c537fa11 feat(web): hide embedded VS Code on Windows hosts (#2045) 2026-07-29 22:10:19 +01:00
Carlos Florêncio 18bf81819e fix(web): show only model in agent tab title (#2043) 2026-07-29 19:07:58 +01:00
Clément Fiere f0b816a89f feat: add transcript auto-scroll toggle (#2039) 2026-07-29 18:51:38 +01:00
Carlos Florêncio b734d3f8a5 fix: add stalled agent recovery (#2035) 2026-07-29 14:57:05 +01:00
Carlos Florêncio d340512cc6 fix(web): keep agent tab title synced with model (#2021) 2026-07-28 23:44:19 +01:00
Carlos Florêncio abf10d7814 fix(web): reconcile responsive task layouts (#2011) 2026-07-28 23:29:32 +01:00
Clément Fiere 61731c7340 feat(web): add favorite star toggle to chat messages (#2008) 2026-07-28 21:52:34 +01:00
Carlos Florêncio e5237b26c2 fix: keep file attachments compact beside image previews (#1997) 2026-07-28 17:32:33 +01:00
Carlos Florêncio bdb6890798 fix: preserve dockview layout during task switches 2026-07-27 20:48:20 +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 b39a668e99 feat(github): add task git credential policy (#1985) 2026-07-27 18:10:12 +01:00
José Almeida 85820e4a43 fix(web): warn when pasted attachments are too large (#1983)
* fix(web): warn when pasted attachment is too large

* test(web): provide toast context to chat input tests

* fix(web): warn when browser image paste lacks file data

* fix(web): warn about oversized new task attachments

* fix(web): keep toasts above modal overlays

* fix(web): handle file-list-only dialog pastes

* fix(web): avoid parsing clipboard HTML

* fix(web): handle attachment paste edge cases

* fix(web): improve attachment limit feedback

* fix(web): show aggregate attachment limit feedback
2026-07-27 17:19:02 +01:00
Carlos Florêncio 9f09ef6f7c fix: preserve prompts across usage-limit recovery (#1976) 2026-07-27 14:02:01 +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
Carlos Florêncio 68250fe3b3 fix(acp): guard background work status (#1966) 2026-07-26 19:41:26 +01:00
Carlos Florêncio 6ffb23c187 fix: harden background work lifecycle tracking (#1955) 2026-07-26 14:18:35 +01:00
João Salavisa a7005e5d2f chore: revert agent subscription usage in settings and chat tooltip (#1940)
* chore: revert agent subscription usage in settings and chat tooltip

Reverts #1697 (55c8b461b). The subscription usage plugin now covers this,
so the built-in Settings > Agents section and the context-doughnut tooltip
rows are no longer needed.

Conflicts resolved to preserve later work on the same files:
- token-usage-display.tsx/.test.tsx: kept the pinnable tooltip (#1869),
  the rebuilt context-window layout (#1741), and the ACP/API source row
  (#1752); removed only SessionUsageRows and its imports.
- settings/agents/page.tsx: #1741 moved <AgentUsageSection /> above the
  pre-existing <Separator />, so the revert missed the JSX; removed it
  and kept the separator.
- agent-usage-section.tsx/.test.tsx: deleted (later changes were cosmetic
  tweaks to the section itself).

Office-side subscription surfaces (dashboard quota card, agent detail
QuotaCard, internal/agent/usage clients) predate #1697 and are untouched.

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

* fix(usage): keep #1697 client fixes when reverting its UI surface

#1697 bundled two things: the Settings > Agents section plus doughnut
tooltip rows, and a set of genuine bug fixes to the underlying provider
usage clients. Reverting it wholesale threw away the second group, which
is still live code behind the office dashboard quota card and the agent
detail QuotaCard.

Restores the client layer to its post-#1697 state (billing.go, cache.go,
client_claude.go, client_codex.go, fileutil.go, types.go and the two
client tests), fixing the defects CodeRabbit flagged on #1940:

- billing type is recomputed per call again instead of being frozen for
  the process lifetime by sync.OnceValue, so login/logout is observed
  without a backend restart
- usage cache regains fetch coalescing and short negative caching, so a
  provider outage no longer means one outbound call per request
- Claude usage parses float utilization and the richer limits[] array
  instead of failing to decode
- Claude token refresh patches only claudeAiOauth in a decoded map and
  writes atomically via temp+rename, preserving unknown keys in the
  credentials file the real CLI shares
- Codex reads tokens.access_token rather than a nonexistent flat token
  field, and its doc comment matches the ~/.codex/auth.json path

The removed UI/API surface stays reverted: GET /api/v1/agents/usage, the
host usage lister, the settings section, and the tooltip rows.

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-26 12:04:25 +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
Carlos Florêncio dc38aaf0d0 feat: update ACP compatibility and subagent handling (#1880) 2026-07-25 19:31:15 +01:00
point-source dba2057590 feat: accept input while a session's foreground turn waits on background work (#1668) 2026-07-25 18:08:35 +01:00
Carlos Florêncio 1c151ee3c2 fix(web): polish clarification custom answer input (#1942) 2026-07-25 16:20:49 +01:00
Carlos Florêncio 1e1b6c03a6 fix(web): improve queue scrolling and diff comment feedback (#1932) 2026-07-24 22:17:48 +01:00
Clément Fiere a4b3677d8d feat: show full timestamp as tooltip on chat message relative time (#1925) 2026-07-24 19:06:53 +01:00
Carlos Florêncio e2c0d74d51 fix(web): preserve chat focus when restoring task layout (#1923) 2026-07-24 16:44:24 +01:00
José Almeida 7e4f2bb1e5 feat(github): re-request dismissed reviews (#1921) 2026-07-24 15:55:57 +01:00
José Almeida b56bca5a4d feat: move subtask action to task context menu (#1920)
* feat: move subtask action to task context menu

* fix: resolve subtask defaults from selected parent

* fix: handle repository-less subtask parents
2026-07-24 15:50:30 +01:00
José Almeida 49afee96b3 fix(web): keep composer usable during clarifications (#1916)
* fix(web): keep composer usable during clarifications

* fix(web): guard clarification shortcuts in editor
2026-07-24 13:49:15 +01:00
Carlos Florêncio 34946011a1 fix(web): restore sidebar task title overflow (#1913) 2026-07-24 12:08:07 +01:00
João Salavisa e824dcca87 fix(web): collapse completed silent subagent cards (#1901)
Subagent cards keyed their auto-expand on `isActive || Boolean(resultText)`.
Silent (Auggie-style) subagents return a result_text but stream no child tool
calls, so `resultText` stays populated forever and the card rendered
permanently expanded, unlike subagents that emit child tool calls (which
collapse to their header + metadata row on completion). A render-phase reset
also wiped any manual collapse the moment result_text arrived.

Key auto-expand on the running state alone and drop the reset, so completed
subagents collapse consistently and the result text is one click away. Add
component coverage for the silent-subagent collapse, expand-on-click, and
manual-collapse-persists paths.

Co-authored-by: Kandev Agent <agent@kandev.dev>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 11:14:16 +01:00
Jérémy Coatelen cd332ef26b feat(task): nest a task under another as a sub-task from the sidebar (#1837) 2026-07-24 09:51:45 +01:00
Carlos Florêncio 4a0ef3c66c feat: improve task sidebar overflow cue (#1908) 2026-07-23 22:29:49 +01:00
Carlos Florêncio ba8d99f33f fix(task): preserve saved panel focus on task return (#1907) 2026-07-23 21:24:37 +01:00
Carlos Florêncio 73bf0fb028 fix: improve session failure recovery UX (#1866) 2026-07-23 20:02:20 +01:00
Carlos Florêncio 1c70495689 fix(web): restore persisted file tree expansions (#1892) 2026-07-23 15:18:19 +01:00