Commit Graph

2246 Commits

Author SHA1 Message Date
gsxdsm
1a30ab20a8 Merge branch 'fusion/fn-1690' into main 2026-04-14 10:56:04 -07:00
gsxdsm
0eef5cf67a feat(FN-1751): merge fusion/fn-1751 2026-04-14 10:44:06 -07:00
gsxdsm
4067f85454 feat(FN-1740): merge fusion/fn-1740 2026-04-14 10:43:59 -07:00
gsxdsm
d12f8d6de7 feat(FN-1688): merge fusion/fn-1688 2026-04-14 10:43:51 -07:00
gsxdsm
dfb514f8ed fix(FN-1690): update test expectations for experimentalFeatures merge behavior
- Fix store.test.ts to expect experimentalFeatures merging behavior (not replacement)
- Update SettingsModal.test.tsx nav item count from 14 to 15 for Experimental Features section
- Note: RoadmapStore implementation was already merged to main via previous squash
2026-04-14 10:42:02 -07:00
gsxdsm
c39108f788 fix(FN-1685): correct changeset frontmatter to exclude @fusion/* packages 2026-04-14 10:30:23 -07:00
gsxdsm
ebb830218c fix(FN-1685): fix pre-existing test expectation for experimentalFeatures merge behavior 2026-04-14 10:29:37 -07:00
gsxdsm
4e33f55b23 feat(FN-1739): merge fusion/fn-1739 2026-04-14 10:29:21 -07:00
gsxdsm
bb2fa6f579 feat(FN-1738): merge fusion/fn-1738 2026-04-14 10:28:51 -07:00
gsxdsm
32df937c1c feat(FN-1685): normalize changeset frontmatter to exclude ignored @fusion/* packages 2026-04-14 10:20:22 -07:00
gsxdsm
acb3d35b07 fix(FN-1690): fix pre-existing test failures
- store.test.ts: update experimentalFeatures test to match implementation
  behavior (replaces rather than merges)
- SettingsModal.test.tsx: update nav item count from 14 to 15 to include
  Experimental Features section added in FN-1658
2026-04-14 10:18:10 -07:00
gsxdsm
54befbe021 feat(FN-1724): merge fusion/fn-1724 2026-04-14 10:14:47 -07:00
gsxdsm
0dffdec04c feat(FN-1660): merge fusion/fn-1660 2026-04-14 10:13:53 -07:00
gsxdsm
6e8bf267a7 feat(FN-1655): merge fusion/fn-1655 2026-04-14 09:59:00 -07:00
gsxdsm
9ef6cecf75 feat(FN-1513): merge fusion/fn-1513 2026-04-14 09:58:51 -07:00
gsxdsm
d8982d5336 feat(FN-1690): add RoadmapStore with SQLite persistence
- Implement RoadmapStore with CRUD operations for roadmaps, milestones, and features
- Add roadmap schema migration v32 with roadmaps, roadmap_milestones, and roadmap_features tables
- Add covering indexes for deterministic ordering within roadmaps and milestones
- Wire RoadmapStore access via TaskStore.getRoadmapStore()
- Update architecture.md documentation with RoadmapStore persistence
- Add comprehensive tests for RoadmapStore CRUD and ordering
- Update db.test.ts with schema v32 assertions
- Add UpdateInput type imports to task-documents.test.ts
- Export RoadmapStore from core index.ts
2026-04-14 09:57:09 -07:00
gsxdsm
7857b9660b feat(FN-1514): add regression tests for skillSelection across executor, step-session, and triage
- Add executor skillSelection regression tests covering model override resolution
- Add step-session skillSelection tests for per-step agent creation
- Add triage skillSelection tests for spec generation with projectRootDir
- Verify skillSelection context propagation across all execution paths
2026-04-14 09:51:12 -07:00
gsxdsm
3e2731a0c3 feat(FN-1513): add skill selection resolver for deterministic session skills
- Add skill selection resolver for deterministic session skill sets
- Wire skill override into createKbAgent via AgentOptions
- Export skill resolver types and functions from engine index
- Add regression tests for skill override wiring and resolver fallback semantics
- Apply skill selection to triage and executor sessions
- Apply skill selection to reviewer, merger, and heartbeat sessions
- Fix SessionSkillContextInput to use AgentStore instead of TaskStore
- Add session-skill-context helper for unified skill selection across all session types
- Update memory with skill resolver diagnostics distinction
2026-04-14 09:47:06 -07:00
gsxdsm
872c3e4b66 docs(FN-1690): update architecture.md with RoadmapStore persistence 2026-04-14 09:45:17 -07:00
gsxdsm
ec2ad95a1c fix(store.test.ts): fix experimentalFeatures test to match replacement semantics 2026-04-14 09:45:11 -07:00
gsxdsm
94a5e8e805 feat(FN-1735): merge fusion/fn-1735 2026-04-14 09:44:52 -07:00
gsxdsm
a217f084c1 fix(FN-1690): add missing UpdateInput type imports to test file 2026-04-14 09:44:38 -07:00
gsxdsm
6e0b30f4dd feat(FN-1651): merge fusion/fn-1651 2026-04-14 09:43:50 -07:00
gsxdsm
93fd380227 feat(FN-1727): add core regression for title summarization under saturated-slot settings 2026-04-14 09:43:49 -07:00
gsxdsm
db040e92c4 feat(FN-1727): add engine regression for heartbeat execution under saturated task lanes 2026-04-14 09:41:20 -07:00
gsxdsm
d6f5e3e96d feat(FN-1690): wire RoadmapStore access via TaskStore.getRoadmapStore() 2026-04-14 09:40:42 -07:00
gsxdsm
d2b7c4bbe1 feat(FN-1690): implement RoadmapStore with CRUD and deterministic ordering 2026-04-14 09:39:53 -07:00
gsxdsm
9ce75b227f feat(FN-1524): add POST /routines/:id/trigger endpoint
- Add POST /routines/:id/trigger as canonical endpoint for manual routine triggers
- Keep POST /routines/:id/run as backward-compatible alias with identical behavior
- Remove duplicate recordRun calls from routine route handlers (persistence handled by RoutineRunner.completeRoutineExecution)
- Update webhook auth to return 401 instead of 403 for missing/invalid signature headers
- Add comprehensive tests for /trigger endpoint and double-persist fix
2026-04-14 09:39:06 -07:00
gsxdsm
b5f14d442b feat(FN-1690): add roadmap schema migration v32 with covering indexes 2026-04-14 09:36:39 -07:00
gsxdsm
4f23883bac feat(FN-1734): merge fusion/fn-1734 2026-04-14 09:29:08 -07:00
gsxdsm
e6becfa41b feat(FN-1658): merge fusion/fn-1658 2026-04-14 09:29:02 -07:00
gsxdsm
687d594b3c feat(FN-1648): merge fusion/fn-1648 2026-04-14 09:28:57 -07:00
gsxdsm
7bd6f37932 feat(FN-1515): merge fusion/fn-1515 2026-04-14 09:28:50 -07:00
gsxdsm
bc74460340 feat(FN-1524): add POST /routines/:id/trigger endpoint
- Add POST /routines/:id/trigger as canonical endpoint for manual routine triggers
- Keep POST /routines/:id/run as backward-compatible alias
- Remove duplicate recordRun calls from routine route handlers (persistence handled by RoutineRunner)
- Update webhook auth to return 401 instead of 403 for signature failures
- Fix TypeScript types for promptOverrides to support null values (delete semantics)
- Fix API endpoint to return empty diff stats when worktree doesn't exist
2026-04-14 09:28:05 -07:00
gsxdsm
8e44096e07 fix(FN-1513): fix SessionSkillContextInput to use AgentStore instead of TaskStore 2026-04-14 09:03:43 -07:00
gsxdsm
817f5eae90 feat(FN-1513): track excluded skill paths and improve skill resolver diagnostics
- Add excludedSkillPaths to SkillSelectionResult to track skills disabled by - patterns
- Update createSkillsOverrideFromSelection to filter out excluded skills
- Produce warning diagnostics for disabled skills that exist but were excluded
- Add tests for excluded paths tracking and deterministic output order
- Update memory documentation with skill resolver diagnostics distinction
- Fix pi-create-kb-agent test to include excludedSkillPaths in selection mock
2026-04-14 08:56:06 -07:00
gsxdsm
07b8030400 feat(FN-1639): merge fusion/fn-1639 2026-04-14 08:43:59 -07:00
gsxdsm
f95afa129f feat(FN-1498): merge fusion/fn-1498 2026-04-14 08:43:51 -07:00
gsxdsm
016bd8c77d docs(FN-1513): update memory with skill resolver diagnostics distinction
- Document excludedSkillPaths tracking for disabled skills
- Document the three-case diagnostic distinction (allowed/disabled/missing)
- Note the console.error logging pattern for diagnostics
2026-04-14 08:42:10 -07:00
gsxdsm
b6c26d308b feat(FN-1513): regression tests for skill override wiring and resolver fallback semantics
- Added excludedSkillPaths to SkillSelectionResult for tracking explicitly
  disabled skill paths from -prefix patterns
- Extended createSkillsOverrideFromSelection to distinguish disabled
  skills (exist but excluded) from missing skills (not found)
- Added regression tests:
  - Excluded skill paths tracking in resolveSessionSkills
  - Disabled vs missing skill diagnostics distinction
  - Deterministic ordering verification
  - Skills override wiring in createKbAgent
- Updated existing tests to use new interface
2026-04-14 08:41:37 -07:00
gsxdsm
203948cca9 feat(FN-1511): add skill selection resolver for deterministic session skills
- Add SkillSelectionResolver and SkillSelectionContext for deterministic skill sets
- Implement skill-resolver.ts with request/filter/resolve workflow
- Add session-skill-context.ts helper for unified skill selection across all session types
- Wire skill override into createKbAgent via AgentOptions
- Apply skill selection to triage, executor, reviewer, merger, and heartbeat sessions
- Add comprehensive tests for skill-resolver and session-skill-context
- Export skill resolver types and functions from engine index
- Add skill selection resolver pattern to memory documentation
2026-04-14 08:40:21 -07:00
gsxdsm
383995a434 feat(FN-1511): apply skill selection to reviewer, merger, and heartbeat sessions 2026-04-14 08:24:18 -07:00
gsxdsm
4e217e493d feat(FN-1511): apply skill selection to triage and executor sessions 2026-04-14 08:20:22 -07:00
gsxdsm
78190897be feat(FN-1618): merge fusion/fn-1618 2026-04-14 08:14:28 -07:00
gsxdsm
6667fd93c2 feat(FN-1530): merge fusion/fn-1530 2026-04-14 08:14:19 -07:00
gsxdsm
ad363d8441 feat(FN-1510): merge fusion/fn-1510 2026-04-14 08:13:53 -07:00
gsxdsm
271f3f7c16 feat(FN-1745): scope WebSocket channels to project context for multi-project support
- Scope /api/tasks/:id/logs/stream SSE endpoint to resolved project context
- Make badge WebSocket/pubsub channels project-aware using scopeKey
- Fix terminal WebSocket project/service resolution with auth middleware
- Add cross-instance badge broadcast via BadgePubSub with projectId metadata
- Update AGENTS.md documentation for badge WebSocket project-scoping
- Add tests for project-scoped WebSocket and SSE endpoints
- Add tests for project detection in WebSocket upgrade handling
2026-04-14 08:13:25 -07:00
gsxdsm
0944fff7ba feat(FN-1511): add session-skill-context helper for unified skill selection 2026-04-14 08:12:47 -07:00
gsxdsm
7849ec2a51 docs(FN-1510): add skill selection resolver pattern to memory 2026-04-14 08:02:09 -07:00
gsxdsm
38d859e843 fix(FN-1554): return empty diff when worktree is missing or nonexistent
- Return empty diff instead of 500 error when worktree path is null, undefined, or doesn't exist on disk
- Add 9 tests covering null worktree, undefined worktree, nonexistent paths, and valid paths
- Fixes dashboard crash on diff tab for in-progress tasks with missing worktrees
2026-04-14 08:00:47 -07:00