Commit Graph

927 Commits

Author SHA1 Message Date
Carlos Florêncio ec942540bc ci: harden action pinning lint (#1545)
* ci: harden action pinning lint

* refactor: extract dockview review dialog slot

* test: cover action pinning edge cases

* fix: reject dynamic workflow action sources

* fix: normalize quoted workflow action refs

* test: cover quoted unpinned action refs

---------

Co-authored-by: root <root@kandev.ts.net>
2026-06-29 21:42:57 +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 5ed975ddbf feat: redirect and toast when focused task is auto-deleted (#1544) 2026-06-29 19:10:08 +01:00
Carlos Florêncio f3b26dbc5a feat: support remote macos ssh hosts (#1534) 2026-06-29 19:06:33 +01:00
Carlos Florêncio bdbde9d12e fix: prevent automatic session tab pinning (#1538) 2026-06-29 18:59:47 +01:00
Carlos Florêncio cc4ddf8467 fix: show repo slugs on kanban cards (#1540) 2026-06-29 17:58:56 +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 4ad1b9cb8b fix: show sidebar spinner for created boot sessions (#1537) 2026-06-29 15:24:22 +01:00
Carlos Florêncio 1cceeb3f2a fix: align ci chip with aggregate checks (#1535) 2026-06-29 15:23:30 +01:00
Carlos Florêncio d0a032fa60 fix: prefer main for worktree base branches (#1532) 2026-06-29 14:17:14 +01:00
Carlos Florêncio 9ce8b2ac49 fix: wait for task create last-used settings (#1524) 2026-06-29 08:47:26 +01:00
Carlos Florêncio 8ca17e0d6e fix: preserve pinned task sessions (#1517) 2026-06-28 16:10:04 +01:00
Carlos Florêncio adba21ee6b fix: resync queued state on mobile resume (#1514) 2026-06-27 19:01:18 +01:00
Carlos Florêncio cf8b760bb4 fix: improve mobile kanban controls (#1515) 2026-06-27 18:25:10 +01:00
Carlos Florêncio d065107337 fix: restore task create repo from settings (#1513) 2026-06-27 18:25:04 +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
Carlos Florêncio 2ec30ef8cb fix: preserve task repo on rename updates (#1511) 2026-06-27 12:46:31 +01:00
Carlos Florêncio 9484bc33d9 fix: prime task create last-used cache before dialog effects (#1509) 2026-06-27 00:01:28 +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 2df980c439 fix(web): target active passthrough session in composer (#1505) 2026-06-26 14:02:28 +01:00
Carlos Florêncio 6118201c20 fix: enforce single workflow start step (#1507) 2026-06-26 13:59:55 +01:00
Carlos Florêncio 967b55d6a4 fix: auto-fit wide mermaid diagrams (#1495) 2026-06-25 19:11:24 +01:00
Nicolas Lenepveu 5021066d78 feat: bind repository to Linear/Jira/Sentry issue watchers (#1491) 2026-06-25 18:33:15 +01:00
Carlos Florêncio cb7aa3fa71 fix: prevent invalid MCP task sessions (#1494) 2026-06-25 18:30:33 +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 af0faa7665 fix: preserve github workspace context (#1487) 2026-06-24 22:57:50 +01:00
Carlos Florêncio 4d19fb32f1 feat: link tasks to github references (#1471) 2026-06-23 17:28:52 +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 738742b43a fix: load feature toggles on mount (#1454) 2026-06-22 11:18:38 +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
José Almeida 8e55c3c477 feat(web): surface PR merge-conflict & mergeability state in the CI popover (#1448)
* feat(web): surface PR mergeability + conflict state in the CI popover

The CI hover popover showed checks/reviews but nothing about mergeability, so an
unmergeable PR silently dropped its merge button with no reason. Add a mergeability
row that reuses the detail panel's conflict banner + "Resolve conflicts" agent prompt
for dirty PRs, a "Behind base" chip, and a branch-protection note explaining why a
blocked PR is gated. Replace the compact merge split-button+dropdown with an inline
primary + "or <method>" buttons so the menu's detached portal no longer closes the
hover popover.

* feat(web): reflect PR mergeability in status colors and badges

The PR status pill, badge, and chat-input CI chip derived their colour from
checks/reviews only, so a conflicted or blocked PR still read as a green "all good"
check. Map dirty -> red, behind -> amber, and branch-protection blocked -> amber across
getPRStatusColor, the PRStatusIcon badge, and the chip glyph, so the indicators agree
with the popover. Blocked stays sky/in-progress while a requested review is still
outstanding (that's the awaiting-review gate, not a hard block).

* refactor(web): remove dead merge-menu keep-open plumbing

The compact merge control was redesigned to inline buttons (no dropdown portal),
which already fixes the hover popover closing. That leaves the keepOpen ref /
setKeepOpen / onMergeMenuOpenChange / onMenuOpenChange chain threaded through
usePopoverInteractions, PRCIPopover, and PRMergeButton unreachable: the popover
always renders PRMergeButton with compact, and the only DropdownMenu lives in the
non-compact detail-panel path that never passes the callback. Drop the unused
scaffolding (flagged by OpenCode + greptile).

* fix(web): keep CI popover quiet for blocked PRs only awaiting review

PRMergeabilityRow rendered "Blocked by branch protection" for any blocked PR,
including one blocked solely because a requested reviewer hasn't responded. That
contradicted the chip/pill/badge, which deliberately read that case as the calm
"awaiting review" state. Skip the note (render nothing) when isPRAwaitingReview is
true, and narrow blockedReason so an empty checks_state no longer falsely claims a
required status check failed. Flagged by Claude (blocker) and greptile.

* refactor(web): rename mergeability-notice compact prop to popover

The `compact` prop made the chip/text larger (to match the popover's text-xs rows)
while ConflictBanner's `compact` tightened padding — so "compact" rendered bigger,
which reads as inverted. Rename it to `popover` (the variant rendered inside the CI
hover popover) and document that the chip intentionally matches the popover rows.
No visual change. Flagged by cubic.

* fix(web): show default cursor on disabled compact merge alternates

The compact "or <method>" alternates kept cursor-pointer while disabled (during the
~1s merging state); add disabled:cursor-default to match the primary button. Flagged
by OpenCode.
2026-06-19 14:56:24 +01:00
Carlos Florêncio 2a890c7975 feat: sync task preferences across devices (#1440) 2026-06-19 12:46:46 +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