Files
fusion/scripts/line-count-baseline.json
gsxdsm 8c3758584b refactor(engine): peel merger glob, test-command, and file-scope satellites (#2143)
## Summary

Wave 2 of package code organization (follows merged #2139): peel
pure/satellite clusters out of `packages/engine/src/merger.ts` while
keeping `merger.js` import paths stable for tests and production.

- **`merger-glob.ts`** — `ConflictType`, `LOCKFILE_PATTERNS`,
`GENERATED_PATTERNS`, `matchGlob`
- **`merger-workspace-test-commands.ts`** — pnpm workspace package
mapping + `inferDefaultTestCommand` / scoped + file-scoped test command
derivation
- **`merger-file-scope.ts`** — `parseDiffStat`, `extractFileScope` /
`matchesScope`, squash file-scope invariant (`FileScopeViolationError`,
assert/enforce with main’s `status` audit semantics and merge-trait
modes)
- Re-exports from `merger.ts`; baseline ratchet for `merger.ts` (~12.5k
→ ~11.8k)

## Test plan

- [x] `pnpm --filter @fusion/engine exec tsc --noEmit`
- [x] eslint on merger + satellites
- [x] `merger-file-scope-invariant.test.ts` (18 tests)
- [x] focused conflict-resolution pattern tests
- [ ] CI merge gate

## Plan

Continues
`docs/plans/2026-07-14-001-refactor-package-code-organization-plan.md`
(U6 merger satellites).

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added file-scope validation for merge operations, with strict and
warning-only enforcement options.
* Added automatic classification of lockfile and generated-file
conflicts.
* Added workspace-aware test selection based on changed packages and
files.
* Added support for inferring test commands across pnpm, Yarn, Bun, and
npm projects.

* **Refactor**
* Organized merge, conflict-resolution, file-scope, and test-inference
functionality into dedicated modules without changing existing public
access paths.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-15 14:44:35 -07:00

105 lines
6.2 KiB
JSON

{
"packages/cli/src/__tests__/extension.test.ts": 4558,
"packages/cli/src/bin.ts": 2307,
"packages/cli/src/commands/__tests__/dashboard.test.ts": 3709,
"packages/cli/src/commands/__tests__/serve.test.ts": 2250,
"packages/cli/src/commands/__tests__/task.test.ts": 3585,
"packages/cli/src/commands/dashboard-tui/app.tsx": 4674,
"packages/cli/src/commands/dashboard.ts": 3645,
"packages/cli/src/commands/task.ts": 2373,
"packages/cli/src/extension.ts": 5575,
"packages/core/src/agent-store.ts": 3475,
"packages/core/src/async-mission-store-queries.ts": 2067,
"packages/core/src/central-core.ts": 4474,
"packages/core/src/index.gate.ts": 2157,
"packages/core/src/index.ts": 2388,
"packages/core/src/mission-store.ts": 4364,
"packages/core/src/postgres/sqlite-migrator.ts": 2068,
"packages/core/src/store.ts": 2631,
"packages/core/src/types.ts": 7336,
"packages/dashboard/app/api/legacy.ts": 11627,
"packages/dashboard/app/components/AgentDetailView.tsx": 5552,
"packages/dashboard/app/components/AgentsView.tsx": 2254,
"packages/dashboard/app/components/ChatView.tsx": 3850,
"packages/dashboard/app/components/GitManagerModal.tsx": 3560,
"packages/dashboard/app/components/ListView.tsx": 3087,
"packages/dashboard/app/components/MissionManager.tsx": 5010,
"packages/dashboard/app/components/ModelOnboardingModal.tsx": 3590,
"packages/dashboard/app/components/PlanningModeModal.tsx": 3783,
"packages/dashboard/app/components/QuickEntryBox.tsx": 2518,
"packages/dashboard/app/components/SettingsModal.tsx": 4572,
"packages/dashboard/app/components/TaskCard.tsx": 3856,
"packages/dashboard/app/components/TaskDetailModal.tsx": 6114,
"packages/dashboard/app/components/TerminalModal.tsx": 3322,
"packages/dashboard/app/components/WorkflowNodeEditor.tsx": 5683,
"packages/dashboard/app/components/__tests__/AgentsView.test.tsx": 2845,
"packages/dashboard/app/components/__tests__/App.test.tsx": 4567,
"packages/dashboard/app/components/__tests__/Board.test.tsx": 2107,
"packages/dashboard/app/components/__tests__/ChatView.mobile.test.tsx": 2395,
"packages/dashboard/app/components/__tests__/GitHubImportModal.test.tsx": 2622,
"packages/dashboard/app/components/__tests__/GitManagerModal.test.tsx": 3788,
"packages/dashboard/app/components/__tests__/ListView.test.tsx": 5198,
"packages/dashboard/app/components/__tests__/MailboxView.test.tsx": 2377,
"packages/dashboard/app/components/__tests__/ModelOnboardingModal.test.tsx": 5140,
"packages/dashboard/app/components/__tests__/NewTaskModal.test.tsx": 2079,
"packages/dashboard/app/components/__tests__/PlanningModeModal.planning-flow.test.tsx": 4040,
"packages/dashboard/app/components/__tests__/QuickEntryBox.test.tsx": 5337,
"packages/dashboard/app/components/__tests__/TaskCard.test.tsx": 7115,
"packages/dashboard/app/components/__tests__/TaskChatTab.test.tsx": 2891,
"packages/dashboard/app/components/__tests__/TaskDetailModal.inline-editing-and-integrations.test.tsx": 3340,
"packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx": 2812,
"packages/dashboard/app/components/__tests__/TerminalModal.test.tsx": 9176,
"packages/dashboard/app/components/__tests__/UsageIndicator.test.tsx": 2931,
"packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx": 4353,
"packages/dashboard/app/components/__tests__/WorkflowResultsTab.test.tsx": 2062,
"packages/dashboard/app/components/__tests__/workflow-flow-mapping.test.ts": 2458,
"packages/dashboard/app/hooks/__tests__/useChat.test.ts": 5355,
"packages/dashboard/app/hooks/__tests__/useTasks.test.ts": 3712,
"packages/dashboard/src/__tests__/chat-manager.test.ts": 3695,
"packages/dashboard/src/__tests__/file-service.test.ts": 2310,
"packages/dashboard/src/__tests__/github.test.ts": 2319,
"packages/dashboard/src/__tests__/routes-auth.test.ts": 5510,
"packages/dashboard/src/__tests__/routes-automation.test.ts": 3068,
"packages/dashboard/src/__tests__/routes-github.test.ts": 3169,
"packages/dashboard/src/__tests__/routes-planning.test.ts": 5119,
"packages/dashboard/src/__tests__/routes-tasks.test.ts": 2949,
"packages/dashboard/src/__tests__/usage.test.ts": 5261,
"packages/dashboard/src/chat.ts": 2861,
"packages/dashboard/src/github.ts": 4587,
"packages/dashboard/src/mission-routes.ts": 3895,
"packages/dashboard/src/planning.ts": 3364,
"packages/dashboard/src/routes.ts": 5600,
"packages/dashboard/src/routes/register-git-github.ts": 5984,
"packages/dashboard/src/routes/register-settings-memory-routes.ts": 2382,
"packages/dashboard/src/routes/register-task-workflow-routes.ts": 5366,
"packages/dashboard/src/server.ts": 2860,
"packages/dashboard/src/usage.ts": 2398,
"packages/engine/src/__tests__/cron-runner.test.ts": 2326,
"packages/engine/src/__tests__/executor-prompt.test.ts": 2685,
"packages/engine/src/__tests__/executor-worktree.test.ts": 2723,
"packages/engine/src/__tests__/heartbeat-executor.test.ts": 4295,
"packages/engine/src/__tests__/heartbeat-scheduler.test.ts": 3018,
"packages/engine/src/__tests__/merger-merge-lifecycle.test.ts": 3693,
"packages/engine/src/__tests__/merger-verification.test.ts": 3163,
"packages/engine/src/__tests__/mission-execution-loop.test.ts": 2904,
"packages/engine/src/__tests__/pi-create-fn-agent.test.ts": 3067,
"packages/engine/src/__tests__/project-engine.test.ts": 3482,
"packages/engine/src/__tests__/restart.integration.test.ts": 2013,
"packages/engine/src/__tests__/self-healing.test.ts": 11148,
"packages/engine/src/__tests__/step-session-executor.test.ts": 3217,
"packages/engine/src/__tests__/triage.test.ts": 6605,
"packages/engine/src/agent-heartbeat.ts": 5084,
"packages/engine/src/agent-tools.ts": 4793,
"packages/engine/src/executor.ts": 19107,
"packages/engine/src/merger-ai.ts": 2148,
"packages/engine/src/merger.ts": 11809,
"packages/engine/src/pi.ts": 2799,
"packages/engine/src/project-engine.ts": 5051,
"packages/engine/src/scheduler.ts": 3370,
"packages/engine/src/self-healing.ts": 12183,
"packages/engine/src/triage.ts": 3133,
"packages/pi-claude-cli/src/__tests__/provider.test.ts": 2028,
"plugins/fusion-plugin-roadmap/src/dashboard/RoadmapsView.tsx": 2583,
"scripts/__tests__/test-changed.test.mjs": 2116
}