Commit Graph

179 Commits

Author SHA1 Message Date
gsxdsm
3fe8dd3c89 feat(KB-200): add pr-create CLI command for task PR creation
- Implement kb task pr-create command to open GitHub PRs from tasks\n- Add draft PR support and title/description customization options\n- Integrate routing in CLI entry point with proper argument parsing\n- Add comprehensive test coverage for the new command\n- Update STANDALONE.md documentation and add changeset for release tracking
2026-03-31 03:27:11 -07:00
gsxdsm
d34951a913 feat(KB-196): load extension providers for dashboard model selector
- Load pi extensions on dashboard startup to register custom model providers
- Include extension-provided models in the dashboard model selector
- Add comprehensive tests for extension model loading and error handling
- Create changeset for patch release fixing model selector extensions
2026-03-31 03:21:16 -07:00
gsxdsm
2554904421 feat(KB-185): add global/project settings hierarchy with scope-aware UI
- Add GlobalSettingsStore with file-based storage in ~/.pi/kb/settings.json
- Implement two-tier hierarchy: global (user prefs) and project (.kb/config.json)
- Update TaskStore to merge settings with project overriding global
- Add API endpoints: GET/PUT /api/settings/global and GET /api/settings/scopes
- Add scope indicators (🌐 global, 📁 project) to settings modal sidebar
- Implement scope-aware save: only save active scope, reject global-only fields
- Add frontend API functions for global settings operations
- Add tests for GlobalSettingsStore, settings routes, and SettingsModal scopes
- Create changeset for the new settings hierarchy feature
- Update AGENTS.md with settings hierarchy documentation
2026-03-31 03:12:33 -07:00
gsxdsm
714f4bc415 feat(KB-184): add model presets for task creation
- Add model preset types and settings fields with API validation
- Create model preset utility helpers for size-based auto-selection
- Add settings UI for managing model presets (create, edit, delete)
- Integrate preset selection into NewTaskModal with custom override option
- Add inline preset selection to InlineCreateCard component
- Persist modelPresetId in task store and preserve through archive/unarchive
- Add changeset and update AGENTS.md with feature documentation
2026-03-31 02:04:45 -07:00
gsxdsm
82d8ebb82b feat(KB-266): overhaul GitManagerModal with new architecture and API
- Completely rewrite GitManagerModal with modern React architecture
- Add comprehensive CSS styling for git operations UI
- Implement new API endpoints for git management operations
- Add server-side routes for git command handling
- Fix shell injection vulnerability in git command execution
- Update tests with complete API mocking coverage
- Add changeset documenting the overhaul
2026-03-31 02:00:53 -07:00
gsxdsm
9e03c47b91 feat(KB-175): move file browser to header with workspace support
- Add workspace file APIs and hooks for session-scoped file browsing
- Create WorkspaceSelector component for switching between workspaces
- Update FileBrowserModal with workspace mode and improved UX
- Add files button to header with workspace-aware file browsing
- Add session files indicator to task cards for quick file access
- Include comprehensive tests for all new components and hooks
2026-03-31 01:26:57 -07:00
gsxdsm
6f1647cb31 feat(KB-154): add test ntfy notification button
- Add changeset file for test ntfy notification button feature
2026-03-31 00:05:02 -07:00
gsxdsm
c71dba7908 feat(KB-147): add planning and validator model settings
- Extend core Settings types with planningProvider, planningModelId, validatorProvider, validatorModelId fields
- Add model selectors in Settings UI for planning and validator models
- Use planning model for triage task specification generation
- Use validator model for specification review in triage
- Use validator model for code reviews in executor agent
- Update AGENTS.md with model hierarchy documentation
2026-03-31 00:02:16 -07:00
gsxdsm
9e8cf21058 feat(KB-142): fix CLI native module packaging with lazy loading
- Implement lazy native module loading with graceful degradation for standalone CLI

- Align release workflows with executable payload structure

- Update macOS signing script for single-executable bundles

- Add documentation for standalone CLI packaging (STANDALONE.md)

- Create changeset for patch release
2026-03-30 23:56:01 -07:00
gsxdsm
2a222a2be6 fix(KB-263): fix text not being passed into Planning Mode from quick entry
- Fix stale closure bug in PlanningModeModal auto-start useEffect
- Move handleStartPlanning definition before the effect that references it
- Remove redundant handleStartPlanningWithPlan callback
- Add planOverride parameter to handleStartPlanning for proper prop passing
- Fix hasAutoStartedRef timing to prevent early triggering
2026-03-30 23:39:20 -07:00
gsxdsm
3c87514f95 fix(KB-140): fix standalone CLI native asset packaging for terminal support
- Stage node-pty native assets (pty.node, spawn-helper) alongside compiled binary

- Add runtime native-patch.ts to resolve native assets in Bun-compiled binaries

- Fix eager native module loading crash for non-terminal commands

- Enable terminal functionality in isolated standalone deployments

- Update release workflows and add STANDALONE.md documentation
2026-03-30 23:32:30 -07:00
gsxdsm
9235359d78 fix(KB-258): add overflow auto to file editor textarea
- Add overflow: auto to file-editor-textarea CSS class for scroll support
- Ensure long file content is scrollable within the editor viewport
2026-03-30 23:24:07 -07:00
gsxdsm
b139876e98 feat(KB-256): reposition QuickEntryBox above table headers in ListView
- Move QuickEntryBox from below headers to above the table in ListView
- Update CSS to support new positioning with sticky header layout
- Adjust ListView component structure for better visual hierarchy
- Update ListView tests to reflect new component ordering
2026-03-30 23:18:59 -07:00
gsxdsm
153885705d feat(KB-248): replace checkbox with Plan and Subtask buttons in task creation UI
- Replace 'break into subtasks' checkbox with explicit Plan and Subtask buttons

- Update InlineCreateCard (Board view) and QuickEntryBox (List view) with new button layout

- Wire up button callbacks in App.tsx, Board, and ListView components

- Update and add tests for disabled button behavior when no description entered

- Document new Plan and Subtask button behavior in AGENTS.md
2026-03-30 19:53:45 -07:00
gsxdsm
168b5f4daf feat(KB-246): add mobile support to FileBrowserModal
- Add mobile view state and screen size detection in FileBrowserModal

- Add back button and conditional layout with CSS classes for mobile/desktop

- Add mobile CSS for two-state layout (file list and editor views)

- Add comprehensive tests for mobile view interactions and navigation

- Add changeset for release notes
2026-03-30 19:50:35 -07:00
gsxdsm
17baebe0fa feat(KB-238): remove "Using" prefix from pace indicator messages
- Remove "Using " prefix from pace calculation messages in usage.ts

- Update message format from "Using X% over/under pace" to "X% over/under pace"

- Update all UsageIndicator tests to match new message format

- Add changeset for patch release of @dustinbyrne/kb
2026-03-30 19:16:48 -07:00
gsxdsm
bae937eec6 docs(KB-176): complete Step 6 — add changeset for completion summary feature 2026-03-30 19:04:00 -07:00
gsxdsm
97aa415378 feat(KB-232): swap pace indicator colors and icons in UsageIndicator
- Swap CSS color assignments for slow/fast pace indicators in styles.css
- Swap CheckCircle2 and AlertCircle icons in UsageIndicator component
- Add changeset for the pace indicator color/icon swap
- Remove 2 lines from dashboard README
2026-03-30 18:51:14 -07:00
gsxdsm
6036633490 feat(KB-231): add light mode support for dashboard UI
- Add CSS variables for light/dark theme support in global styles
- Remove hardcoded dark fallback colors from AgentLogViewer component
- Remove hardcoded dark fallback colors from SteeringTab comment bubbles and textarea
- Add changeset for patch release tracking
- Update ProviderIcon and NewTaskModal with proper theme-aware styling
- Clean up unused dashboard routes and tests
2026-03-30 18:47:07 -07:00
gsxdsm
7fca1f7010 feat(KB-228): add schedule time presets
- Add morning, afternoon, evening, and night preset schedules to core automation types
- Update ScheduleForm with preset selection dropdown and time handling
- Add color coding for different schedule types in ScheduleCard
- Add tests for new schedule preset functionality
- Include changeset for release tracking
2026-03-30 18:42:04 -07:00
gsxdsm
cd8a1e9779 feat(KB-226): add markdown preview to FileEditor
- Add markdown preview toggle to FileEditor with live preview pane
- Implement syntax-highlighted code blocks and responsive layout
- Add comprehensive tests for preview toggle and content rendering
- Update dashboard README with FileEditor usage documentation
- Add changeset for markdown preview feature
- Clean up obsolete changeset files
2026-03-30 18:41:12 -07:00
gsxdsm
8e8a540cb3 chore(KB-224): clean up activity log tests and combine definition-spec tabs
- Remove redundant ActivityLogModal tests (253 lines) and clean up implementation

- Refactor GitHubImportModal with simplified implementation and updated tests

- Delete obsolete dashboard README documentation

- Add changeset for combined definition/spec tabs feature

- Update App.tsx structure and consolidate CSS styles
2026-03-30 18:37:32 -07:00
gsxdsm
0b422d854d docs(KB-086): complete Step 9 — add Activity Log documentation and changeset 2026-03-30 18:36:58 -07:00
gsxdsm
61417504a4 docs(KB-222): rebrand kb to Fusion across documentation and CLI
- Rebrand root README from kb to Fusion with updated descriptions
- Update CLI package README with Fusion branding
- Rebrand STANDALONE.md documentation to Fusion
- Update CLI help text to use 'fn' command reference
- Update pi extension descriptions and tool names for Fusion
- Add changeset for rebranding documentation
- Update dashboard ListView component and styles
- Remove obsolete store tests and ListView tests
2026-03-30 18:22:42 -07:00
gsxdsm
514b38924e feat(KB-221): rename CLI binary from kb to fn
- Rename binary from 'kb' to 'fn' in package.json bin entries
- Update package-config test to expect new binary name 'fn'
- Add changeset to track the binary rename for package consumers
2026-03-30 18:15:58 -07:00
gsxdsm
ffe42cbb6c fix(KB-217): resolve planning mode hanging race condition
- Fix race condition causing planning mode to hang after submitting answers
- Keep SSE connection alive during response submission to prevent premature disconnect
- Add scrollable CSS styling for AI thinking output display in planning mode
- Add tests for race condition fix ensuring subsequent questions are received
- Include changeset for planning mode patch release
2026-03-30 18:12:49 -07:00
gsxdsm
e7bc7507fa feat(KB-203): add git commands to CLI
- Add git command module with status, push, pull, and fetch subcommands

- Integrate git commands into CLI routing and help system

- Add comprehensive unit tests for all git commands (657 lines)

- Include changeset for the new CLI git operations
2026-03-30 17:46:51 -07:00
gsxdsm
14f4cd784f feat(KB-202): add kb task logs command for viewing agent execution logs
- Add runTaskLogs() with --follow, --limit, and --type filtering flags
- Implement colorized log output (text/thinking/tool/tool_result/tool_error)
- Add file watching support for real-time log streaming (--follow)
- Wire up kb task logs <id> CLI command in bin.ts
- Add comprehensive tests for log filtering, limiting, and follow mode
2026-03-30 17:40:34 -07:00
gsxdsm
0815785e02 feat(KB-201): add settings CLI commands
- Add 'kb settings' command with get, set, list, and unset subcommands
- Create settings.ts command module with full type validation
- Add comprehensive unit tests for settings commands (432 lines)
- Wire settings routing into CLI entry point (bin.ts)
- Add changeset for patch release of @dustinbyrne/kb package
2026-03-30 17:35:03 -07:00
gsxdsm
93f0cb75b4 feat(KB-206): add stuck task detection and auto-recovery
- Add taskStuckTimeoutMs setting to detect tasks with no activity
- Create StuckTaskDetector to poll in-progress tasks every 30s
- Integrate heartbeat tracking into executor via step callbacks
- Implement recovery flow: abort stuck sessions, retry with preserved progress
- Export detector and wire into dashboard for real-time monitoring
- Add comprehensive tests and documentation to AGENTS.md
2026-03-30 17:16:35 -07:00
gsxdsm
cf5a98fdf0 feat(KB-104): move file browser from task modal to toolbar
- Add backend API routes and file service for project-scoped file operations
- Create useProjectFileBrowser and useProjectFileEditor hooks with comprehensive tests
- Update FileBrowserModal to support both task and project modes via dualMode prop
- Add Files button to dashboard header toolbar
- Remove Files tab from TaskDetailModal
- Integrate project file browser into main App layout
- Include changeset for @dustinbyrne/kb package
2026-03-30 17:06:50 -07:00
gsxdsm
0ab4f251cf feat(KB-101): add ntfy notification test button in settings
- Add /api/settings/test-ntfy endpoint for sending test notifications
- Add test notification button to SettingsModal when ntfy is enabled
- Display success/error feedback after test notification attempt
- Add comprehensive tests for test notification flow
- Include changeset for patch release
2026-03-30 16:54:01 -07:00
gsxdsm
304506b237 feat(KB-069): add Archive All Done feature
- Add archiveAllDone method to TaskStore with filtering and batch archive
- Add POST /tasks/archive-all-done API endpoint with tests
- Add useTasks hook support and API function for archiveAllDone
- Add Archive All button to done column header in Board UI
- Wire up onArchiveAllDone through Board component hierarchy
2026-03-30 16:50:34 -07:00
gsxdsm
107fbe17dc feat(KB-179): reorder search bar left of view toggle
- Move search bar to the left of the view toggle in Header component
- Remove batch badge fetching implementation (useBatchBadgeFetch hook, tests, GitHub routes)
- Clean up associated types and API endpoints
- Add changeset for visual improvement
2026-03-30 16:41:37 -07:00
gsxdsm
7899345cfa feat(KB-064): add batch GitHub badge status fetching
- Add batch status API types (BatchStatusRequest, BatchStatusResponse, etc.)

- Add batch GitHub client wrappers for efficient PR/issue status fetching

- Create useBatchBadgeFetch hook for coordinated dashboard fetching

- Update Board component to batch fetch badge statuses on mount

- Update TaskCard to merge batch, WebSocket, and task data with freshness comparison

- Add batch status REST endpoint at POST /api/tasks/batch/status
2026-03-30 16:41:24 -07:00
gsxdsm
2508682a29 feat(KB-173): add Zen theme to dashboard
- Add Zen to COLOR_THEMES array in core types
- Add Zen theme CSS styles with dark and light variants
- Add Zen theme option to ThemeSelector component
- Add tests for Zen theme selection in ThemeSelector
- Update index.html theme initialization to include Zen
- Add changeset for the new theme
2026-03-30 16:34:49 -07:00
gsxdsm
e03bd1ae38 feat(KB-045): add scheduled tasks automation system
- Add AutomationStore and core automation types for cron-based scheduling
- Implement CronRunner engine for executing scheduled automations
- Add REST API routes for CRUD operations on automations
- Create UI components: ScheduleCard, ScheduleForm, and ScheduledTasksModal
- Integrate scheduled tasks into dashboard App.tsx and CLI dashboard command
- Add comprehensive tests for store, runner, API, and UI components
- Include changeset for the new scheduled tasks feature
2026-03-30 16:27:23 -07:00
gsxdsm
2a73e602f4 test(KB-213): fix EventSource mock cleanup in useMultiAgentLogs tests
- Fix EventSource mock cleanup to prevent test interference
- Ensure proper cleanup after each test in useMultiAgentLogs test suite
- Add changeset for the test fix
2026-03-30 16:26:34 -07:00
gsxdsm
b071b05228 feat(KB-207): reverse pace indicator colors
- Swap pace indicator colors in dashboard styles.css

- Add changeset for the pace color reversal

- Update pace color scheme for better visual clarity
2026-03-30 16:00:29 -07:00
gsxdsm
e058564438 fix(KB-195): fix theme-aware styling for UsageIndicator toggle buttons
- Update UsageIndicator toggle active state to use var(--todo) and var(--bg)

- Add hover state styling for active toggle button

- Ensure consistent styling with Header view toggle across all themes

- Add changeset for patch release
2026-03-30 15:57:32 -07:00
gsxdsm
533571d82e feat(KB-189): prevent mobile zoom on all quick entry inputs
- Extend mobile font size fix from textarea to all quick entry inputs (input, select)

- Update CSS selector to cover all quick entry form elements

- Add changeset for mobile zoom fix
2026-03-30 15:55:36 -07:00
gsxdsm
23692e1fa3 fix(KB-186): add pace indicators for Gemini provider
- Add windowDurationMs (24h) to Gemini usage windows for daily rate limits
- Track resetMs in Gemini usage data for pace calculation
- Update applyPaceToWindow to apply pace to any window with timing data
- Fix pace indicators not showing for Gemini provider
2026-03-30 15:52:21 -07:00
gsxdsm
7e1fdfeaf2 feat(KB-152): add Minimax and Zai providers with usage pace indicators
- Add Minimax provider backend with full test coverage
- Add Zai (Zhipu AI) provider backend for additional model options
- Implement pace calculation in UsageWindow with ahead/behind/on-pace detection
- Update UsageIndicator frontend component to consume backend pace data
- Fix pace indicator colors and icons to match design specification
- Resolve ListView QuickEntryBox type error for type safety
2026-03-30 13:45:52 -07:00
gsxdsm
f78f01ac5b feat(KB-137): add GitHub App webhooks for real-time badge updates
- Add verified POST /api/github/webhooks endpoint with signature verification
- Implement GitHub App installation token authentication for API calls
- Add webhook handlers for pull_request, issues, and issue_comment events
- Support multi-task resource matching by parsed badge URL
- Retire live GitHub polling service in favor of push-based updates
- Add comprehensive webhook integration and unit tests
- Keep 5-minute REST refresh endpoints as fallback
2026-03-30 13:37:33 -07:00
gsxdsm
297013000f feat(KB-199): add retry CLI command and extension tool
- Add kb task retry command to CLI with --force and --all flags
- Implement runTaskRetry() to re-run failed or completed tasks
- Add kb_task_retry extension tool for Pi agent integration
- Update CLI help text and command registration
- Add comprehensive tests for retry command and extension tool
- Include changeset for patch release
2026-03-30 13:37:09 -07:00
gsxdsm
80e9575cbc feat(KB-198): add task delete CLI command with --force flag
- Add `kb task delete` CLI command with required --force flag for safety
- Implement runTaskDelete function with task existence validation
- Register kb_task_delete tool in Pi extension for chat agent access
- Add comprehensive unit tests for runTaskDelete and extension registration
- Wire delete command in CLI bin.ts with proper argument parsing
2026-03-30 13:27:59 -07:00
gsxdsm
ed6c7ddb99 feat(KB-197): complete Step 4 — add changeset for size badge positioning fix 2026-03-30 13:19:59 -07:00
gsxdsm
2dbcf2433e feat(KB-136): add shared badge pub/sub for multi-instance deployments
- Add BadgePubSub interface with Redis and in-memory adapters

- Implement cross-instance badge snapshot delivery via Redis pub/sub

- Add message validation, echo loop prevention, and structured caching

- Support graceful fallback to in-memory mode when Redis unavailable

- Update ServerOptions for dependency injection and add documentation
2026-03-30 12:52:07 -07:00
gsxdsm
b0f1de4eb1 feat(KB-192): move progress bars to top of definition tab
- Reposition progress indicator bars to the top of the definition tab in TaskDetailModal
- Add changeset for the UI improvement
2026-03-30 12:42:44 -07:00
gsxdsm
a833b7e455 feat(KB-191): change request refinement button to 'Refine'
- Update TaskDetailModal button text to 'Refine'

- Update test assertions in TaskDetailModal.test.tsx

- Add changeset for the UI text change

- Remove stale kb-100-header-test-branding changeset file
2026-03-30 12:39:38 -07:00