Commit Graph

1890 Commits

Author SHA1 Message Date
gsxdsm
73e51b2033 fix: make running count slash and total same size in status bar
Apply consistent font-family, font-weight, and line-height to count,
separator, and max elements.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 16:21:26 -07:00
gsxdsm
9292681234 feat(FN-1649): remove Kimi from usage indicator flow
- Remove Kimi provider from usage tracking module
- Clean up unused Kimi-related code in usage.ts (225 lines removed)
- Remove Kimi-specific tests from usage.test.ts (686 lines removed)
- Add tests for usage routes (routes.test.ts)
- Add new usage API routes for usage data endpoints
- Fix planning resume state mismatch in PlanningModeModal
- Add PlanningModeModal tests for state consistency
2026-04-12 16:20:51 -07:00
gsxdsm
e9a17c9554 fix: align running count label with numbers in executor status bar
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 16:18:30 -07:00
gsxdsm
4f662cc56f feat: change default max turns for new agents from 10 to 1000
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 16:14:54 -07:00
gsxdsm
f154f688cf fix: prevent planning mode dialog from overflowing viewport
Remove min-height: 300px from .planning-loading and add overflow: hidden
to .planning-initial so the modal stays within 80vh bounds.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 16:11:46 -07:00
gsxdsm
d3ab7eb78f feat(FN-1641): update documentation to match current dashboard behavior
- Update README.md with current dashboard features
- Revise docs/dashboard-guide.md for accuracy
- Update docs/getting-started.md to reflect new user workflow
- Update docs/task-management.md with current task operations
- Complete preflight audit confirming docs consistency
2026-04-12 16:08:57 -07:00
gsxdsm
01b57927b9 fix: improve mission interview UX — banner, dismiss, modal height, multiple choice, resume prompt
- Hide session notification banner on mission/planning screens
- Fix dismissed banner persisting across remounts with module-level Set
- Fix mission interview modal buttons cut off (overflow: hidden)
- Default mission interview questions to multiple choice with options
- Add resume prompt for pending mission interviews in MissionManager

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 16:01:40 -07:00
gsxdsm
50e5f36909 feat(FN-1637): merge fusion/fn-1637 2026-04-12 15:58:10 -07:00
gsxdsm
e8d0740d0d feat(FN-1643): add context-limit recovery for step-session execution
- Add context-overflow detection and recovery in step-session executor with same parity as single-session
- Implement step resumption from overflow checkpoints with accumulated context replay
- Add overflow state tracking and recovery logging for diagnostics
- Harden single-session executor overflow recovery with improved state management
- Update appendAgentLog parameter signatures across executors
- Add comprehensive tests for context overflow scenarios in both execution modes
- Add memory entry documenting the unified context-limit recovery approach
2026-04-12 15:50:09 -07:00
gsxdsm
d784e5a1bd feat(FN-1645): merge fusion/fn-1645 2026-04-12 15:28:52 -07:00
gsxdsm
59edac4ce2 feat(FN-1632): merge fusion/fn-1632 2026-04-12 15:28:10 -07:00
gsxdsm
9b20a99bae feat(FN-1607): add process lifecycle diagnostics and fix resource leaks
- Add process lifecycle diagnostics for dashboard and serve commands
- Add SQLite database health check to diagnostics endpoint
- Add store listener count diagnostics for debugging subscription leaks
- Audit and fix SSE connection management to prevent connection leaks
- Audit and fix timer/interval cleanup in engine and CLI shutdown handlers
- Fix res.on() call guard for test mocks compatibility
- Fix variable declaration ordering in serve.ts
- Update memory with diagnostic findings for future debugging
2026-04-12 15:27:50 -07:00
gsxdsm
1b9421561a feat(FN-1450): Add companies.sh catalog browse mode for agent import
- Add backend API routes for companies.sh catalog with pagination and search
- Wire frontend API client with browse mode endpoints (search, list agents)
- Build Agent Import modal with tabbed interface (URL input + browse mode)
- Add browse mode styling with search results grid and agent cards
- Include UI and route test coverage for browse flow
- Update in-UI help text with browse mode usage instructions
2026-04-12 15:20:57 -07:00
gsxdsm
a34ba41ad1 Harden architecture hot paths 2026-04-12 15:13:27 -07:00
gsxdsm
7b78963a4c feat(FN-1636): fix thinking level default to respect global setting
- Fix thinking level selector to default to 'off' when no global default is configured
- Add 'Using default' badge when thinking level falls back to global setting
- Show explicit thinking level badge only when a non-default value is selected
- Add comprehensive tests for thinking level selector behavior
- Add tests for resolved model display with global settings fallback
2026-04-12 14:05:56 -07:00
gsxdsm
8c1f6a19b1 fix(FN-1623): add eslint-disable comments for kept functions
- Add eslint-disable comments for unused parameters in truncateVerificationOutput and summarizeVerificationOutput
- Preserve functions that may be useful for future diagnostics while silencing no-unused-vars warnings
2026-04-12 13:56:11 -07:00
gsxdsm
ecfe134591 ci: disable automatic workflow triggers 2026-04-12 13:48:13 -07:00
gsxdsm
51f31f099a fix(FN-1620): show error sessions in notification banner
- Update BackgroundTasksIndicator to display error sessions count alongside active sessions
- Include error sessions in App filter for notification banner visibility
- Add session cancellation for mission interviews on banner dismiss
- Add comprehensive test coverage for SessionNotificationBanner component
- Update useBackgroundSessions hook to expose error session counts
2026-04-12 13:46:32 -07:00
gsxdsm
724bb7931a test: reduce default runner noise and contention 2026-04-12 13:41:10 -07:00
gsxdsm
b019ef2c8c feat(FN-1617): add verification output summarization for concise test failure reports
- Add summarizeVerificationOutput helper function to condense test output
- Update runVerificationCommand to use summarization for cleaner merge reports
- Improve readability of test failure summaries in the dashboard
2026-04-12 13:31:27 -07:00
gsxdsm
18b78886d0 feat(FN-1271): add Documents tab to task detail modal
- Add task document API routes for listing, viewing, and downloading task files
- Create TaskDocumentsTab component with file browser UI
- Integrate Documents tab into TaskDetailModal alongside existing tabs
- Add frontend API functions for task document operations
- Add CSS styles for document list, file icons, and download actions
- Add comprehensive route tests for task document endpoints
2026-04-12 13:20:37 -07:00
gsxdsm
2d82e3c490 test: close store handles in slow suites 2026-04-12 13:03:28 -07:00
gsxdsm
52f1f77369 test: remove waits from slow tests 2026-04-12 12:52:32 -07:00
gsxdsm
231c984a27 feat(FN-1594): merge fusion/fn-1594 2026-04-12 12:33:05 -07:00
gsxdsm
d570ad5d8c test: speed up slow dashboard and tui tests 2026-04-12 12:28:29 -07:00
gsxdsm
31815e0fba fix(FN-1600): complete async conversion of hasRecoverableGitWork
- Convert hasRecoverableGitWork from sync execSync to async execAsync
- Update recoverNoProgressNoTaskDoneFailures caller to await the method
- Update self-healing tests to work with async method and execAsync mock
- Add exec and promisify imports to self-healing.ts
- Fix mock to include exec export for promisify compatibility
2026-04-12 12:24:54 -07:00
gsxdsm
52dad6741f Merge remote-tracking branch 'origin/main' 2026-04-12 12:20:43 -07:00
gsxdsm
bbedf2910a chore: remove local state from git 2026-04-12 12:20:16 -07:00
gsxdsm
02a4308fba Delete agent-instructions.md 2026-04-12 12:18:02 -07:00
gsxdsm
494b7da5f1 fix(FN-1473): recover no-progress task_done failures 2026-04-12 12:13:06 -07:00
gsxdsm
ce82e94153 feat(FN-1612): merge fusion/fn-1612 2026-04-12 12:03:08 -07:00
gsxdsm
e82736a171 fix(FN-1600): update merger tests for -X theirs escalation strategy
The FN-1598 merger.ts async conversion introduced an escalation strategy where
attempt 3 uses -X theirs and succeeds when AI fails. The tests were expecting
the merge to fail after 3 AI attempts, but now attempt 3 succeeds via the
theirs strategy.

This commit fixes the test mocks to make the -X theirs merge fail so all
3 attempts exhaust and the function throws as expected.
2026-04-12 11:47:27 -07:00
gsxdsm
8843999f3b refactor(FN-1615): convert CLI execSync to async exec
- Replace execSync with promisified execAsync in init.ts detectProjectName() for non-blocking git remote lookups
- Replace execSync with promisified execAsync in task-lifecycle.ts cleanupMergedTaskArtifacts() for non-blocking git worktree/branch cleanup
- Add 30s timeout to git operations to prevent indefinite hangs
- Update test mocks to support both callback-style and promise-style exec usage
2026-04-12 11:46:57 -07:00
gsxdsm
577f01b280 fix dashboard task payload freezes 2026-04-12 11:32:39 -07:00
gsxdsm
29bb15e0ee feat(FN-1593): merge fusion/fn-1593 2026-04-12 10:55:53 -07:00
gsxdsm
bc57c30e57 test(integration): user testing validation round 3 — 12/12 assertions passed
VAL-CROSS-003 re-tested after FEAT-009-FIX-002 fixes:
- Run history now displays all 3 validation runs (not just latest)
- Coverage bar tooltip shows '0 of 3' (not 'undefined of 3')

All 12 integration milestone assertions now pass.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 10:24:17 -07:00
gsxdsm
5caaead7a0 fix(FEAT-009-FIX-002): correct MilestoneValidationRollup field names and tooltip
The dashboard used incorrect field names (passedCount/failedCount/blockedCount/pendingCount)
that don't exist on the type. The backend returns passedAssertions/failedAssertions etc.
Fixed MissionManager.tsx to use correct field names with ?? 0 fallback for tooltip text.
2026-04-12 10:12:45 -07:00
gsxdsm
7d58706c41 test(integration): user testing validation round 2 — 11/12 assertions passed
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 09:59:50 -07:00
gsxdsm
f7f69b5ae6 fix(FEAT-009-FIX-001): resolve 3 blocking issues from integration user testing
1. Fix TypeError in run history: fetchValidationRuns now correctly
   destructures .runs from paginated API response {runs, total, offset}

2. Fix assertions panel rendering: inline fetch calls in loadMissionDetail
   and toggleMilestoneExpanded to avoid forward-reference of callback hooks.
   Added Array.isArray guard to prevent .map on undefined state values.

3. Add missing UI components:
   - Clickable lineage indicator for fix features (navigates to source)
   - Retry budget 'Attempt X of Y' display on feature cards
   - 'No fix features generated' empty state
   - Milestone validation state badge in header (already existed, now
     loads correctly)
   - Validation rollup badge with coverage bar in milestone header

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 09:37:05 -07:00
gsxdsm
b3abc3004c test(integration): user testing validation round 1 — 5/12 assertions passed
6 flow validators tested all integration milestone assertions against
the live dashboard and API. 5 assertions passed (E2E validation cycle,
fix cycle, loop state visuals, validate button, responsive). 7 failed
due to 3 systemic issues: (1) assertions panel renders empty despite
correct API data, (2) run history TypeError crash (.map on undefined),
(3) missing UI components (rollup badge, retry budget, lineage link).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-12 09:02:57 -07:00
gsxdsm
28e0061b2f feat(FN-1613): merge fusion/fn-1613 2026-04-12 08:25:17 -07:00
gsxdsm
8f0bcf7f00 feat(FN-1465): merge fusion/fn-1465 2026-04-12 07:00:49 -07:00
gsxdsm
86f1f93de9 feat(FN-1599): merge fusion/fn-1599 2026-04-12 06:50:53 -07:00
gsxdsm
db4badcae7 feat(FN-1598): merge fusion/fn-1598 2026-04-12 06:50:45 -07:00
gsxdsm
003ef625ab fix blocking hot path operations 2026-04-11 21:23:36 -07:00
gsxdsm
d423dfcff6 fix: suppress execution output on stdout 2026-04-11 21:13:16 -07:00
gsxdsm
4625b6ea87 scrutiny(api-endpoints): synthesize validation findings
- FEAT-005 (assertion CRUD): FAIL - VAL-API-018 SSE events not implemented
- FEAT-006 (validation APIs): PASS with non-blocking issues
- 4 pre-existing test failures in store.test.ts (git cleanup tests)
- 4338 pre-existing lint errors (not addressed)
2026-04-11 21:10:10 -07:00
gsxdsm
c4e6c0fd37 feat(FEAT-006): add validation and loop state API endpoints
Implemented:
- POST /api/missions/features/:featureId/validate - triggers validation run
- GET /api/missions/features/:featureId/validation-loop - returns loop snapshot
- GET /api/missions/features/:featureId/validation-runs - returns run history with pagination
- GET /api/missions/validation-runs/:runId - returns run detail with assertion results
- POST /api/missions/recover - triggers recovery of active missions
- SSE events for milestone:validation:updated via assertion CRUD and link/unlink

All 4xx/5xx responses use consistent {"error": "message"} format.
Uses existing badRequest, notFound, internalError helpers.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-04-11 21:03:15 -07:00
gsxdsm
bab269dada feat(FN-1586): update ChatView with model selector
- Add model selector to ChatView component for AI model selection
- Update ChatView tests to cover model selector functionality
- Add styles for model selector in chat interface
2026-04-11 20:48:48 -07:00
gsxdsm
9a242c46b5 fix engine build and test resolution 2026-04-11 20:42:26 -07:00