Commit Graph

5201 Commits

Author SHA1 Message Date
gsxdsm
e7863da66e feat(KB-010): add autoResolveConflicts setting with intelligent merge conflict resolution
- Add autoResolveConflicts setting to types and store (default: true)
- Implement smart conflict detection for lock files and generated files
- Add 3-attempt retry logic with escalating strategies to merger
- Auto-resolve lock files using 'ours', trivial whitespace conflicts
- Track mergeRetries per task for retry loop management
- Update AGENTS.md with conflict resolution documentation
- Add comprehensive merger tests for retry scenarios
2026-03-29 18:27:23 -07:00
gsxdsm
617644569f feat(KB-009): add dedicated Activity tab to Task Detail Modal
- Add Activity tab to tab bar alongside Definition, Agent Log, and Steering

- Move activity feed from Definition tab to dedicated Activity tab

- Update tab state type to include 'activity'

- Add comprehensive Activity tab tests (rendering, empty state, tab switching)

- Update existing tests to work with 4 tabs
2026-03-29 18:26:26 -07:00
gsxdsm
f3097c7023 feat(KB-016): add task duplicate command
- Add duplicateTask() method to core store with fresh state reset
- Add CLI command handler and register duplicate subcommand
- Add POST /tasks/:id/duplicate API endpoint to dashboard
- Add comprehensive tests for store, CLI, and API routes
- Add pi extension tool for task duplication
- Add changeset for minor release bump
2026-03-29 18:22:02 -07:00
gsxdsm
64fcb5d1b1 feat(KB-006): add clickable task dependencies in dashboard
- Make TaskCard dependency badges clickable to open task detail
- Make TaskDetailModal dependency links clickable for navigation
- Wire onOpenDetail callback through Column and WorktreeGroup components
- Add comprehensive tests for clickable dependency interactions
- Simplify GitHubImportModal component and update related tests
2026-03-29 18:18:33 -07:00
gsxdsm
1f83e21129 feat(KB-018): simplify GitHub import modal remote selection
- Simplify remote selection UI in GitHub import modal
- Refactor GitHubImportModal component for better UX
- Update and expand test coverage for modal interactions
- Add changeset documenting the UI simplification
2026-03-29 18:13:08 -07:00
gsxdsm
efd7c176fb feat(KB-004): add GitHub PR creation and comment monitoring
- Add PR fields (prInfo, prNumber, prUrl) to Task type and TaskStore with updatePrInfo method
- Add PR Management API endpoints: create, status, refresh with per-repo rate limiting
- Add GitHubClient for PR creation and status fetching with comment support
- Add PrSection component for PR status display and actions in dashboard
- Add PR comment monitoring engine with PrMonitor and PrCommentHandler
- Integrate PR monitoring into scheduler for automatic PR tracking
- Add comprehensive tests for PR features in all packages
2026-03-29 18:10:35 -07:00
gsxdsm
e95e50ba68 feat(KB-015): add git remote selection to GitHub import modal
- Add backend API endpoint to list git remotes for a repository
- Add frontend API client and types for git remotes
- Update GitHub import modal with remote dropdown selector
- Add tests for git remotes API and import modal
2026-03-29 17:57:47 -07:00
gsxdsm
a7f008f92f test(KB-013): add step progress tests and fix type error 2026-03-29 17:56:45 -07:00
gsxdsm
ccdba0de83 feat(KB-013): complete Step 1 — add step progress component to TaskDetailModal 2026-03-29 17:53:52 -07:00
gsxdsm
0176534396 feat(KB-005): add ListView component with board/list view toggle
- Create ListView component with sorting, filtering, and drag-and-drop support
- Add view toggle buttons to Header for switching between board and list views
- Integrate view switching in App with localStorage persistence
- Add comprehensive tests for ListView, Header view toggle, and App integration
- Add CSS styles for list view layout and toggle button states
2026-03-29 17:53:03 -07:00
gsxdsm
d50ee2d98a feat(KB-012): add --paused flag to dashboard command
- Add --paused CLI flag to start dashboard in paused mode
- Update runDashboard to accept paused option
- Add comprehensive tests for --paused flag behavior
- Update STANDALONE.md documentation with new flag
- Add changeset for patch release
2026-03-29 17:48:14 -07:00
gsxdsm
b1f550ed49 chore(KB-008): add changeset for retry button fix 2026-03-29 17:44:05 -07:00
gsxdsm
65cbd423b5 test(KB-008): update retry tests to allow retry from any column 2026-03-29 17:44:00 -07:00
gsxdsm
245f21955a feat(KB-008): complete Step 1 — relax retry endpoint validation to only check status 2026-03-29 17:43:12 -07:00
gsxdsm
43c81c1f55 feat(KB-003): add task steering feature with UI and prompt injection
- Add SteeringComment type to core types for user steering input
- Add addSteeringComment method to TaskStore with persistence
- Add POST /api/tasks/:id/steer endpoint for adding steering comments
- Add frontend API client and SteeringTab UI component
- Inject steering comments into execution prompt for agent guidance
- Add comprehensive tests for store, API, UI, and executor components
- Include changeset for patch release
2026-03-29 17:40:42 -07:00
gsxdsm
c782c60afb feat(KB-002): add interactive GitHub issue import
- Add --interactive (-i) flag to 'kb task import' CLI command for selective import
- Add GitHubImportModal component to dashboard with issue browser and selection
- Add /api/github/issues/fetch and /api/github/issues/import API endpoints
- Add kb_task_import_github_issue and kb_task_browse_github_issues tools to pi extension
- Add comprehensive tests for CLI, dashboard API, and UI components
2026-03-29 17:40:28 -07:00
gsxdsm
33e07dff25 feat(KB-001): complete Step 6 — documentation and changeset 2026-03-29 17:24:50 -07:00
gsxdsm
b5217a08cc test(KB-001): add GitHub import tests and update extension tool count 2026-03-29 17:24:36 -07:00
gsxdsm
c1f01cf0ce feat(KB-001): complete Step 4 — add Pi extension tool 2026-03-29 17:23:30 -07:00
gsxdsm
802695bf53 feat(KB-001): complete Step 3 — add CLI command 2026-03-29 17:23:18 -07:00
gsxdsm
9170ed40d8 feat(KB-001): complete Step 2 — implement import logic 2026-03-29 17:23:00 -07:00
gsxdsm
4831d93ae8 feat(KB-001): complete Step 1 — implement GitHub API client 2026-03-29 17:22:42 -07:00
Dustin Byrne
6a00c56217 chore: add demo / screenshot 2026-03-28 23:53:54 -04:00
Dustin Byrne
f442395c13 chore: update gitignore 2026-03-28 23:29:21 -04:00
github-actions[bot]
5ba3972409 Version Packages (#6)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-28 22:51:35 -04:00
Dustin Byrne
cff933dba1 docs: restructure README 2026-03-28 22:48:55 -04:00
Dustin Byrne
5771e63547 chore: dead code 2026-03-28 22:19:06 -04:00
Dustin Byrne
f70d5979b3 feat: pi extension 2026-03-28 22:14:40 -04:00
Dustin Byrne
9f6b739218 feat(KB-189): suppress duplicate agent badges on consecutive inline entries
- Add showBadge logic to skip badge on consecutive inline entries from same agent/type
- Always show badge on block-level entries (tool, tool_result, tool_error)
- Re-show badge on agent transitions and type changes within inline entries
- Add 7 test cases covering deduplication, transitions, block-level, and no-agent scenarios
2026-03-28 21:52:13 -04:00
Dustin Byrne
ac4166902d fix(KB-186): add ID-based tiebreaker to sort comparators for stable ordering
- Add numeric ID tiebreaker to TaskStore.listTasks() when createdAt timestamps match
- Add same tiebreaker to InlineCreateCard and TaskDetailModal dependency dropdown sorts
- Add store-sort integration test verifying ascending ID order with identical timestamps
- Add InlineCreateCard tests for identical-timestamp dropdown ordering and search filtering
- Add TaskDetailModal test for identical-timestamp dependency dropdown ordering
2026-03-28 19:40:17 -04:00
Dustin Byrne
1a4c343621 feat(KB-185): sort dependency dropdown newest-first in InlineCreateCard
- Sort dep dropdown items by createdAt descending (newest first)
- Clone tasks array before sorting to avoid mutating props
- Add tests verifying newest-first order for both unfiltered and filtered lists
2026-03-28 19:19:33 -04:00
Dustin Byrne
433e11c337 fix(KB-183): prevent dep-dropdown clicks from cancelling InlineCreateCard
- Add onMouseDown preventDefault on dep-dropdown and items to retain focus
- Extend focusout guard to check dependencies and showDeps state before cancelling
- Update useEffect dependency array to include dependencies and showDeps
- Add tests for mouseDown preventDefault and no-cancel with selected deps
- Add changeset for the patch fix
2026-03-28 18:17:20 -04:00
Dustin Byrne
beab7bd0b5 fix(KB-183): prevent dep-dropdown clicks from dismissing InlineCreateCard
- Add onMouseDown preventDefault on dep-dropdown and items to retain focus
- Extend focusout guard to check dependencies and showDeps state before cancelling
- Add useEffect dependency array entries for dependencies and showDeps
- Add tests for mouseDown preventDefault and blur-with-deps retention
2026-03-28 18:15:48 -04:00
Dustin Byrne
3f85f28c23 feat(KB-184): change autoMerge default from false to true
- Update DEFAULT_SETTINGS in core types to set autoMerge: true
- Update initial state defaults in App and SettingsModal components
- Update test fixtures in App, Board, and SettingsModal tests
- Update kb-board skill docs to reflect new default
- Add minor changeset for the default change
2026-03-28 18:14:16 -04:00
Dustin Byrne
1a73733be6 fix(KB-182): strengthen spec review post-session gate to require explicit APPROVE
- Change post-session gate from only blocking REVISE to requiring explicit APPROVE verdict
- Block tasks from reaching executor when review_spec was never called (null verdict)
- Block tasks on RETHINK, UNAVAILABLE, and reviewer-error paths
- Add tests for all non-APPROVE verdict paths: null, RETHINK, UNAVAILABLE, reviewer throw
- Update existing tests to invoke review_spec with APPROVE so they pass the stricter gate
2026-03-28 17:41:10 -04:00
Dustin Byrne
864bf6ca78 fix(KB-181): preserve active-agent glow during soft-pause
- Replace combined engineStopped prop with globalPaused to decouple hard stop from soft pause
- Thread globalPaused through Board, Column, WorktreeGroup, and TaskCard components
- Active-agent glow now only suppressed on hard pause (globalPaused), not soft pause (enginePaused)
- Update tests to verify soft-pause preserves glow and hard-pause suppresses it
- Add changeset for patch release
2026-03-28 17:26:49 -04:00
Dustin Byrne
6dabb80369 feat(KB-180): rename pause button titles from 'AI engine' to 'scheduling'
- Update Header pause button titles to 'Pause scheduling' / 'Resume scheduling'
- Update Header unit tests to assert new title strings
- Update App integration tests for engine pause flows to use new titles
2026-03-28 17:17:14 -04:00
Dustin Byrne
0772709955 feat(KB-176): make enginePaused a soft pause that lets running agents finish
- Remove agent termination listeners for enginePaused in executor and triage
- Update Settings.enginePaused JSDoc to document soft-pause semantics
- Update executor/triage/integration tests to assert sessions are NOT disposed on enginePaused
- Remove pause-abort tracking for enginePaused (only globalPause hard-stops agents)
- Add changeset for the behavioral change
2026-03-28 16:47:23 -04:00
Dustin Byrne
e7711013c9 fix: triage agent now knows of the task_create tool 2026-03-28 16:30:23 -04:00
Dustin Byrne
853496a74f fix: skip merger agent when squash merge stages nothing 2026-03-28 16:30:23 -04:00
Dustin Byrne
d7a9daf5c5 feat(KB-172): add spec review loop to triage agent
- Extend reviewer with 'spec' review type and spec review format template
- Add review_spec tool to triage agent for independent spec quality evaluation
- Implement APPROVE/REVISE/RETHINK loop with conversation rewind on RETHINK
- Add post-session gate to block tasks with unresolved REVISE verdicts from moving to todo
- Add tests for reviewer spec support and triage review loop (APPROVE, REVISE, RETHINK paths)
2026-03-28 16:30:23 -04:00
Dustin Byrne
cc4ff6d8fe feat(KB-171): constrain column widths in desktop grid and mobile flex
- Change desktop .column min-width from 260px to 0, letting the grid control sizing
- Add overflow-x: hidden to .column-body to prevent content blowout
- Use fixed width: 280px for mobile columns instead of min-width
- Add column-fixed-width tests verifying CSS constraints for desktop and mobile
2026-03-28 16:30:23 -04:00
Dustin Byrne
f5e717695d feat(KB-170): CSS scroll-snap center alignment for board columns
- Change scroll-snap-align from start to center on columns (desktop and mobile)
- Add scroll-snap-type: x proximity and scroll-padding-inline on desktop .board
- Add scroll-padding-inline: calc(50% - 140px) in mobile media query
- Restructure scroll-snap tests into desktop and mobile describe blocks
- Update all test assertions to expect center alignment instead of start
2026-03-28 16:30:23 -04:00
Dustin Byrne
c3aa58f909 feat(KB-168): remove legacy public/ directory and server fallback
- Delete public/index.html, public/style.css, and public/board.js legacy assets
- Remove public/ fallback from server.ts clientDir resolution chain
- Simplify clientDir to fall through to client/ instead of public/
- Add no-legacy-public test asserting public/ files and server references are gone
2026-03-28 16:30:23 -04:00
Dustin Byrne
8f4aab43ce Revert "fix(KB-166): revert mobile board flex layout from KB-164"
This reverts commit 042cddcb7a281e9886be21ee47b42d50d75a7706.
2026-03-28 16:30:23 -04:00
Dustin Byrne
01e1bdab3c feat(KB-167): add mobile scroll-snap CSS to board columns
- Add scroll-snap-type: x mandatory to .board in ≤768px media query
- Set scroll-snap-align: start and flex-shrink: 0 on .column for swipe navigation
- Enable -webkit-overflow-scrolling: touch for smooth iOS scrolling
- Add mobile-scroll-snap test suite asserting snap rules inside @media block
2026-03-28 16:30:23 -04:00
Dustin Byrne
38eb44b982 feat(KB-165): add responsive mobile layout for settings modal
- Add mobile CSS in @media query to stack settings sidebar horizontally above content
- Style nav items as horizontal scrollable tabs with bottom-border active indicator
- Adjust settings content, form groups, and auth provider rows for narrow viewports
- Add SettingsModal tests verifying .settings-layout, .settings-sidebar, and .settings-content structure
- Add test for active nav item class toggling and auth provider row DOM structure
2026-03-28 16:30:23 -04:00
Dustin Byrne
de21f68f30 fix(KB-166): revert mobile board flex layout from KB-164
- Remove mobile board flex/snap-scroll CSS overrides from styles.css
- Remove Board tests asserting direct-child column structure and semantic tag
- Delete fix-mobile-board-double-scrollbar changeset
- Retain mobile modal full-screen overrides
2026-03-28 16:30:23 -04:00
Dustin Byrne
0a08c11937 feat(KB-164): fix mobile board double scrollbar with flex layout
- Switch board from 5-column grid to horizontally-scrollable flex layout on viewports ≤768px
- Add snap-scrolling and fixed min-width columns for polished mobile swipe
- Prevent ancestor elements (html, body, #root) from producing a second scrollbar
- Add board structure tests verifying columns are direct children of main element
- Add changeset for the mobile board fix (patch)
2026-03-28 16:30:23 -04:00
Dustin Byrne
08cdacf417 feat(KB-161): terminate active agent sessions on engine pause
- Add enginePaused agent termination to executor (kills sessions, moves tasks back to todo)
- Add enginePaused agent termination to triage processor (kills sessions, clears specifying status)
- Update enginePaused JSDoc to reflect new termination behavior vs old graceful drain
- Add unit tests for executor/triage pause termination and integration tests for restart flow
- Include changeset for engine pause behavior change
2026-03-28 16:30:23 -04:00