- Add a unit test for worktrees:listAll to guard the stamp path
parallel to worktrees:list.
- Scope the e2e fixture tracking inside the describe block and
clean up tmpdirs in afterEach.
- Replace the cross-process clock window with `toBeGreaterThan(0)`,
which captures the exact pre-fix regression (lastActivityAt === 0)
without introducing NTP/clock-skew flakiness in CI.
- Narrow the helper return type from ReturnType<...> to WorktreeMeta.
Co-authored-by: Orca <help@stably.ai>
* feat: cross-repo issues view with multi-repo selection
- Add multi-repo selection via RepoMultiCombobox with persisted defaultRepoSelection setting (null = sticky-all)
- Stamp repoId on GitHubWorkItem at the renderer fetch boundary; merge items from all selected repos with per-repo failure tracking
- Extract task-query helpers (tokenize/strip/parseTaskQuery) to src/shared and add unit tests
- Refactor NewWorkspacePage row to <div role=button> to allow nested interactive elements without invalid-HTML hydration errors
- fix(repo-combobox): toggle all-repos selection on repeat click
* fix(tasks): route Use CTA to item's own repo in cross-repo view
handleUseWorkItem previously referenced a removed 'repoId' state; use item.repoId so launching from a merged cross-repo list targets the correct repo.
* test(e2e): add tasks page smoke test
Worktrees discovered on disk without persisted WorktreeMeta (folder repos,
pre-existing worktrees in a newly-added git repo, CLI-created worktrees)
fell back to `lastActivityAt: 0` and sorted to the bottom of "Recent"
instead of the top. The worktrees:list / listAll handlers now stamp a
discovery timestamp the first time each worktree is seen; subsequent
lists short-circuit so ordering stays stable across refreshes.