Commit Graph

356 Commits

Author SHA1 Message Date
José Almeida 5efeae4ece feat: allow multiline custom answers in clarification overlay (#1566)
* feat: allow multiline custom answers in clarification overlay

Swap the single-line custom-answer input for an auto-growing textarea so users
can type multi-line replies to ask_user_question. Enter submits, Shift+Enter
inserts a newline; the box grows to ~6 lines then scrolls. Adds unit and e2e
coverage.

* fix: address review feedback on multiline clarification input

- Always preventDefault on desktop plain Enter so an empty draft can't leak a
  stray newline before the trim guard (Claude/CodeRabbit).
- On coarse-pointer devices let Enter insert a newline and submit via the
  existing Submit button; hide the keyboard hints on touch (mobile parity).
- Preserve newlines in the resolved clarification history message via
  whitespace-pre-wrap + items-start.
- Strengthen e2e to guard against fused lines; add Ctrl+Enter and touch tests.

* fix: touch submit button and IME guard for clarification input

- Guard against submitting on the Enter that confirms an IME candidate
  (e.nativeEvent.isComposing) on CJK keyboards.
- Add an inline Send button on coarse-pointer devices so single-question custom
  answers (which have no overlay Submit button) have a touch-reachable send
  path. Fixes the regression from switching touch Enter to newline.

* refactor: extract clarification custom-input controls

- Pull the Enter/⇧↵ hints and touch Send button into a CustomInputControls
  subcomponent to shrink ClarificationCustomInput.
- Compute the trimmed draft once and reuse it across the keydown handler and the
  Send button (disabled state, click, styling) so the conditions can't drift.
- Add a test asserting the touch Send button is disabled while isSubmitting.

* fix: ignore auto-repeat Enter in clarification custom input

A held Enter key emits auto-repeat keydown events; guard the handler with
e.repeat so it can't fire onSubmit more than once. Adds a regression test.

* fix: suppress newline on repeat Enter and add mobile clarification e2e

- Repeat Enter on desktop now calls preventDefault before bailing, so a held key
  can't leak newlines into the current or next question's textarea after the
  carousel advances; it still never re-fires onSubmit/finalize.
- Add a mobile-chrome (Pixel 5) e2e covering the touch path: Enter inserts a
  newline and the inline Send button submits the multiline answer.

* test: consolidate clarification e2e seed helper

Extract the shared seed → navigate → waitForLoad flow into
e2e/helpers/clarification.ts and delegate from the clarification, resize, and
mobile specs instead of duplicating it in each.
2026-07-01 21:36:58 +01:00
Carlos Florêncio a30dd39566 fix: avoid stale task worktree repository launches (#1568) 2026-07-01 21:25:05 +01:00
StefanFVogel 4b981bc4c6 feat: add Download option to file browser context menu (#1567) 2026-07-01 21:24:07 +01:00
Nicolas Lenepveu 6b81dd1566 feat: add per-watch dispatch sorting to the Linear issue watcher (#1553) 2026-07-01 07:55:28 +01:00
Carlos Florêncio 3743f4b501 fix: preserve nested markdown code fences (#1557) 2026-06-30 22:45:25 +01:00
Carlos Florêncio 2d73a3d1db fix: keep completed office comments editable (#1548)
* fix: keep completed office comments editable

Keep the office task detail composer editable after completed sessions load,

including projectless office tasks.

Update verification tests for SHA-pinned GitHub actions. Extract the

dockview main area to satisfy the existing max-lines lint rule.

* fix: preserve upload artifact version guard

* fix: clarify upload artifact pin check

* fix: wake completed office sessions on comments

* fix: queue completed office comment runs

* fix: preserve dispatcher session lookup errors

* fix: resolve office comment wake review issues

* fix: stabilize comment wake idempotency

* fix: salt custom comment wake keys

* fix: address comment wake review cleanup

* fix: avoid comment payload allocation overflow pattern

* fix: salt comment wake action variants

* fix: resolve cross-task primary by target step

* fix: resolve cross-task participant roles

* fix: surface cross-task comment run status

* fix: use target steps for cross-task queue runs

* fix: avoid comment run lookup scan regression

* fix: cover cross-task queue run edge cases

* fix: index comment payload run lookup

* fix: support postgres comment run index

* fix: tighten queue run target test coverage

* fix: route source comment run updates

* fix: preserve cross-task comment wakes

* fix: tighten comment wake identity

* fix: align comment wake routing

* fix: remove stale primary resolver

* fix: dedupe comment run status

* fix: tighten legacy comment wake dedupe

* fix: remove unreachable comment wake guard

* fix: skip duplicate comment reactivity wakes

* fix: route comment wakes synchronously

* fix: share comment engine dispatch contracts

* fix: preserve comment wake fallbacks

* fix: preserve done comment runner

* fix: guard empty task runner fallback

* fix: handle empty task runner fallback

* fix: stabilize completed comment wakes

* fix: index comment runner fallback

---------

Co-authored-by: root <root@kandev.ts.net>
2026-06-30 13:10:40 +01:00
Carlos Florêncio 7632f626c8 fix: focus changes panel for inactive task updates (#1542) 2026-06-29 19:24:51 +01:00
Carlos Florêncio f3b26dbc5a feat: support remote macos ssh hosts (#1534) 2026-06-29 19:06:33 +01:00
Carlos Florêncio 11aef66123 fix: show loading states for task detail (#1536) 2026-06-29 15:26:19 +01:00
Carlos Florêncio 8ca17e0d6e fix: preserve pinned task sessions (#1517) 2026-06-28 16:10:04 +01:00
Carlos Florêncio cf8b760bb4 fix: improve mobile kanban controls (#1515) 2026-06-27 18:25:10 +01:00
Carlos Florêncio 7728ddb3bc fix: improve mobile chat input controls (#1477) 2026-06-27 16:11:39 +01:00
Carlos Florêncio 211e738ec0 fix: reuse worktrees for same-task handoffs (#1510) 2026-06-27 15:00:38 +01:00
José Almeida c93ced5129 fix: stop iOS focus-zoom on mobile text fields (#1501)
* fix: stop iOS focus-zoom and casual pinch-zoom on mobile

* fix: scope mobile 16px rule to editable controls, document zoom tradeoff

* fix: keep code-block language picker compact on touch devices

* test: pin viewport assertion to exact maximum-scale token

* fix: keep code-block language select under mobile 16px zoom floor

* fix: apply mobile 16px zoom floor on hybrid touch devices via any-pointer

* fix: drop maximum-scale=1 viewport lock (no-op on iOS, fails a11y audit)
2026-06-26 14:36:54 +01:00
Carlos Florêncio 6827ebe8ce fix: restore create task selector scrolling (#1502) 2026-06-26 14:04:59 +01:00
Carlos Florêncio 967b55d6a4 fix: auto-fit wide mermaid diagrams (#1495) 2026-06-25 19:11:24 +01:00
Carlos Florêncio ec5a81f805 fix: debug task dialog selection restore (#1493)
* fix: debug task dialog selection restore

* fix: address task dialog debug review

* fix: address task dialog review feedback

* fix: finish task dialog debug review

* fix: keep portaled task selectors clickable

* test: cover portaled selector option clicks

---------

Co-authored-by: root <root@kandev.ts.net>
2026-06-25 16:06:38 +01:00
Carlos Florêncio 365a3bdd24 fix: recreate github review tasks after reset (#1492) 2026-06-25 14:13:39 +01:00
Carlos Florêncio 81ef4fb5e5 fix: clean office workspace data on delete (#1486) 2026-06-25 10:28:52 +01:00
José Almeida 6683a7005d feat(web): add sidebar view system to mobile task switcher (#1466)
* feat(web): add sidebar view system to mobile task switcher

* test(web): scope mobile view-system gear indicator to the sheet

* fix(web): disable view-chip drag-reorder on touch to keep row scrollable

* fix(web): use mouse+touch sensors so chip drag works on hybrid devices

* fix(web): match kanban PointerSensor+TouchSensor convention for chip dnd

* fix(web): use MouseSensor+TouchSensor so touch swipe scrolls chip row

* fix(web): wire group collapse + align/clean view bar in mobile sheet
2026-06-25 00:23:56 +01:00
Carlos Florêncio 9b00a16bbe feat: add github repo filter search (#1476) 2026-06-23 16:56:30 +01:00
Carlos Florêncio 6126edb203 feat: add subtask completion trigger (#1473) 2026-06-23 16:07:10 +01:00
Carlos Florêncio e91975be17 feat: improve ci auto-fix prompt control (#1474) 2026-06-23 15:58:11 +01:00
Carlos Florêncio f56889e114 fix: polish task dialog popovers and CI block icons (#1472) 2026-06-23 14:34:42 +01:00
Clément Fiere 18366382b4 fix(backend): expand ~ home links and report missing file paths cleanly (#1468) 2026-06-23 12:13:46 +01:00
Carlos Florêncio d58d9d03bb fix: support issue links in remote task dialog (#1462) 2026-06-22 15:16:43 +01:00
José Almeida 31b32836f6 fix: keep CI popover open when cursor moves onto it (#1461) 2026-06-22 15:00:57 +01:00
Carlos Florêncio da45983c4c feat: add native kandev launcher (#1391) 2026-06-20 19:40:15 +01:00
Carlos Florêncio 7ada858f17 feat: add CI PR automation controls (#1446) 2026-06-20 10:05:25 +01:00
Carlos Florêncio a404e9818b fix(web): preserve kanban card runtime state (#1443) 2026-06-19 12:31:31 +01:00
Carlos Florêncio c30d187440 fix: constrain dialog text inputs (#1437) 2026-06-18 23:03:32 +01:00
Carlos Florêncio 3f0b391fd0 fix: restore debug flag in Vite shell (#1442) 2026-06-18 23:00:33 +01:00
Carlos Florêncio ffda4638e9 fix(web): constrain ci checks popover height (#1441) 2026-06-18 22:28:56 +01:00
Carlos Florêncio f100fc97a5 fix: focus changes panel on git updates (#1436) 2026-06-18 22:16:49 +01:00
Carlos Florêncio 323aae12df fix: restore SPA favicon assets (#1438) 2026-06-18 21:30:38 +01:00
Carlos Florêncio aee1846cd5 feat: remove nextjs production runtime (#1389) 2026-06-18 18:36:48 +01:00
Carlos Florêncio e148234e80 fix: backfill running chat turns without prompt frame (#1429) 2026-06-18 16:29:39 +01:00
Clément Fiere fce3b421ea fix: split multi-file agent read links and strip line-range selectors (#1426) 2026-06-18 16:28:06 +01:00
José Almeida 74b756f04a fix(web): stop session-tab flicker when same-task sessions have diverged env ids (#1428)
* fix(web): stop session-tab flicker when same-task sessions have diverged env ids

* test(web): fail fast on missing dockview bridge and clear diverged-env interval
2026-06-18 13:49:13 +01:00
Carlos Florêncio 4cf2829d77 fix: show quick chat session model options (#1422) 2026-06-18 09:56:29 +01:00
Clément Fiere a71ee2e2c1 fix: open agent file links that carry line-range selectors (#1412) 2026-06-17 20:32:40 +01:00
Carlos Florêncio d8436dfd8f feat: improve passthrough composer and session recovery (#1411) 2026-06-17 19:01:42 +01:00
Carlos Florêncio 327f7d4ec0 fix: persist agent error dismissal (#1397) 2026-06-16 22:27:28 +01:00
Carlos Florêncio e930061fe4 fix(web): chat badge, dockview preview routing, and agent-error icon cleanup (#1395) 2026-06-16 20:29:35 +01:00
Carlos Florêncio d3575e2683 fix: restore office sidebar navigation (#1396) 2026-06-16 20:19:13 +01:00
Carlos Florêncio 179ba51ccb fix: stabilize postgres startup and model dropdown scroll (#1393) 2026-06-16 13:59:15 +01:00
Carlos Florêncio e8f7a654a6 fix: preserve chat session during workflow advances (#1392) 2026-06-16 13:58:48 +01:00
Carlos Florêncio 1f4aecc7d5 feat: split general settings pages (#1383) 2026-06-15 21:13:04 +01:00
Carlos Florêncio 61acc82b74 feat: add reset action for integration watches (#1381) 2026-06-15 18:54:16 +01:00
Carlos Florêncio fd421848fb feat: add feature toggles settings (#1372) 2026-06-15 13:33:45 +01:00