gsxdsm
a010dc42bf
FN-9185: enforce effective task concurrency limits
...
Unify task concurrency around authoritative project settings and expose the effective admission ceiling.
- Resolve maxConcurrent and maxWorktrees through a shared core capacity model with consistent defaults.
- Apply the effective limit across scheduler, engine, runtime, CLI, API, and project-manager admission paths.
- Surface configured and binding concurrency values in dashboard controls, status views, diagnostics, and documentation.
- Add regression coverage for settings persistence, routing, scheduling, UI surfaces, and worktree-bound capacity.
Files changed:
.../fn-9185-max-concurrent-effective-limit.md | 7 +
docs/architecture.md | 8 +-
docs/cli-reference.md | 1 +
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 4 +-
.../dashboard-concurrency-settings.test.ts | 166 +++++++++++++++++++++
packages/cli/src/commands/dashboard.ts | 28 ++--
packages/cli/src/commands/onboard.ts | 4 +-
packages/cli/src/project-resolver.ts | 27 +++-
.../concurrency-capacity-resolver.test.ts | 46 ++++++
.../src/__tests__/worktree-capacity-limit.test.ts | 51 +++++--
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/workflows/workflow-capacity.ts | 61 ++++++--
packages/dashboard/app/App.tsx | 2 +
.../app/__tests__/concurrency-ui-surfaces.test.tsx | 155 +++++++++++++++++++
.../scheduling-effective-concurrency.test.tsx | 48 ++++++
packages/dashboard/app/api/projects/projects.ts | 10 +-
packages/dashboard/app/api/settings/settings.ts | 14 +-
packages/dashboard/app/components/Board.tsx | 7 +-
packages/dashboard/app/components/Column.tsx | 13 +-
.../dashboard/app/components/EngineControlMenu.tsx | 17 ++-
.../command-center/CommandCenterControls.tsx | 17 ++-
.../components/command-center/areas/TeamArea.tsx | 10 +-
.../app/components/dashboard/MainContent.tsx | 3 +
.../dashboard/app/components/dashboard/types.ts | 2 +
.../settings/sections/SchedulingSection.tsx | 12 +-
packages/dashboard/app/hooks/useAppSettings.ts | 9 +-
packages/dashboard/app/hooks/useExecutorStats.ts | 10 +-
.../app/utils/__tests__/worktreeGrouping.test.ts | 12 +-
packages/dashboard/app/utils/worktreeGrouping.ts | 8 +-
packages/dashboard/src/routes.ts | 6 +-
...concurrency-authoritative-source-routes.test.ts | 90 +++++++++++
.../register-config-mcp-pi-settings-routes.test.ts | 29 +++-
.../register-config-mcp-pi-settings-routes.ts | 17 ++-
.../src/routes/register-project-routes.ts | 14 +-
.../concurrency-effective-limit-surfaces.test.ts | 34 +++++
.../src/__tests__/project-engine-manager.test.ts | 19 +++
.../__tests__/scheduler-workflow-cutover.test.ts | 6 +-
packages/engine/src/concurrency/concurrency.ts | 23 ++-
packages/engine/src/concurrency/hybrid-executor.ts | 35 ++++-
.../engine/src/executor/create-spawn-agent-tool.ts | 8 +-
packages/engine/src/project-engine-manager.ts | 50 +++++--
packages/engine/src/project-engine.ts | 12 +-
packages/engine/src/project/project-manager.ts | 26 +++-
packages/engine/src/runtimes/in-process-runtime.ts | 12 +-
packages/engine/src/scheduler.ts | 31 ++--
packages/engine/src/triage.ts | 15 +-
48 files changed, 1028 insertions(+), 159 deletions(-)
Fusion-Task-Id: FN-9185
Fusion-Task-Lineage: 6294456c-d417-40a5-a5fa-2035c6b964a6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-21 10:57:44 -07:00
Fusion Agent
dfa25335d0
FN-066: add task-ID search to Activity Log
...
Add task-ID filtering across the Activity Log data, API, and dashboard UI.\n\n- Index and expose task IDs in central activity audit queries.\n- Add API, hook, modal, styling, localization, and regression-test coverage for search.\n- Include the published-package changeset and PostgreSQL migration.\n\nFiles changed:\n .changeset/fn-066-activity-log-task-search.md | 7 +++\n .../postgres/activity-log-parity.pg.test.ts | 20 ++++++-\n .../postgres/central-core-backend.test.ts | 16 +++++\n .../src/__tests__/postgres/schema-applier.test.ts | 4 +-\n .../core/src/async-stores/async-central-core.ts | 16 ++++-\n packages/core/src/central/central-core.ts | 5 +\n .../core/src/postgres/migrations/0000_initial.sql | 2 +\n .../0061_fn_066_activity_log_task_id_index.sql | 7 +++\n packages/core/src/postgres/schema-applier.ts | 13 ++++\n packages/core/src/postgres/schema/central.ts | 1 +\n packages/core/src/store.ts | 2 +\n packages/core/src/task-store/async/async-audit.ts | 19 +++--\n packages/dashboard/README.md | 1 +\n .../app/__tests__/activity-log-layout.test.ts | 5 ++\n .../dashboard/app/__tests__/api-projects.test.ts | 4 +\n packages/dashboard/app/api/projects/projects.ts | 4 +\n packages/dashboard/app/api/system/scheduling.ts | 3 +\n .../dashboard/app/components/ActivityLogModal.css | 14 +++++\n .../dashboard/app/components/ActivityLogModal.tsx | 68 +++++++++++-------\n packages/dashboard/app/components/ScriptsModal.css | 21 +++++++\n .../components/__tests__/ActivityLogModal.test.tsx | 58 ++++++++++++++++++\n .../app/hooks/__tests__/useActivityLog.test.ts | 35 +++++++++++\n packages/dashboard/app/hooks/useActivityLog.ts | 14 +++--\n .../src/__tests__/activity-log-route.test.ts | 35 +++++++++++\n .../src/routes/register-setup-activity-routes.ts | 28 +++++---\n packages/i18n/locales/en/app.json | 5 +\n packages/i18n/locales/es/app.json | 5 +\n packages/i18n/locales/fr/app.json | 5 +\n packages/i18n/locales/ko/app.json | 5 +\n packages/i18n/locales/pt-BR/app.json | 5 +\n packages/i18n/locales/zh-CN/app.json | 5 +\n packages/i18n/locales/zh-TW/app.json | 5 +\n packages/i18n/src/resources.d.ts | 3 +\n 33 files changed, 384 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-066
Fusion-Task-Lineage: 055e2383-9701-4b7e-9f7d-92c2fe175049
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-21 04:32:52 +00:00
Fusion Agent
29f4de39c4
FN-038: prepare projects for Git during onboarding
...
Make project initialization and registration produce Git-ready projects consistently.\n\n- Centralize repository readiness and initialization behavior.\n- Update CLI onboarding and dashboard registration flows to use the Git-ready setup.\n- Add regression coverage and document the new project preparation behavior.\n\nFiles changed:\n .changeset/fn-038-git-ready-projects.md | 7 +\n docs/cli-reference.md | 11 +-\n docs/getting-started.md | 17 +-\n docs/workspaces.md | 4 +-\n packages/cli/src/commands/__tests__/init.test.ts | 39 ++--\n packages/cli/src/commands/init.ts | 115 ++--------\n packages/core/src/__tests__/git-repository.test.ts | 125 +++++++++-\n packages/core/src/central/central-core.ts | 57 +++--\n packages/core/src/git/git-repository.ts | 254 +++++++++++++++++----\n packages/dashboard/app/api/projects/projects.ts | 2 -\n packages/dashboard/app/components/SetupWizardModal.tsx | 46 +---\n packages/dashboard/app/components/__tests__/SetupWizardModal.git-missing.test.tsx | 74 +++---\n packages/dashboard/src/routes/__tests__/register-project-git-readiness.test.ts | 165 +++++++++++++\n packages/dashboard/src/routes/register-project-routes.ts | 11 -\n 14 files changed, 647 insertions(+), 280 deletions(-)
Fusion-Task-Id: FN-038
Fusion-Task-Lineage: 83634184-569b-4190-a88f-4a09eb832e9d
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
b88bb1d532
FN-023: respect disabled built-in workflows
...
Make disabled built-in workflows unavailable for new selections while preserving existing task resolution.
- Validate enabled built-in workflow settings atomically and require a valid available option.
- Resolve defaults and origin pins through the effective enabled workflow set.
- Filter dashboard selectors while retaining management and direct-resolution paths.
- Add core and dashboard regression coverage plus operator-facing documentation.
Files changed:
.changeset/fn-023-disabled-builtin-workflows.md | 7 +++
docs/dashboard-guide.md | 5 +-
docs/workflow-steps.md | 6 +-
packages/core/src/__tests__/builtin-workflows.test.ts | 35 +++++++++--
packages/core/src/index.ts | 6 ++
packages/core/src/task-store/moves.ts | 17 +++--
packages/core/src/task-store/settings-ops.ts | 22 +++++++
packages/core/src/task-store/task-store-helpers.ts | 33 +++++++++-
packages/core/src/workflows/builtin-workflows.ts | 70 +++++++++++++++++++--
packages/dashboard/app/__tests__/workflow-selection-cross-surface.test.tsx | 45 ++++++++++++++
packages/dashboard/app/api/projects/board-workflows.ts | 2 +
packages/dashboard/app/components/__tests__/Board.test.tsx | 22 +++++++
packages/dashboard/app/components/__tests__/ListView.test.tsx | 38 ++++++++++++
packages/dashboard/app/components/settings/sections/GeneralSection.tsx | 19 +++++-
packages/dashboard/app/components/settings/sections/__tests__/GeneralSection.builtin-workflows.test.tsx | 72 ++++++++++++++++++++++
packages/dashboard/app/hooks/__tests__/useBoardWorkflows.test.ts | 20 ++++++
packages/dashboard/app/hooks/useBoardWorkflows.ts | 18 ++++--
packages/dashboard/src/__tests__/board-workflows.test.ts | 35 +++++++++--
packages/dashboard/src/routes/__tests__/register-settings-memory-worktrunk.test.ts | 37 +++++++++++
packages/dashboard/src/routes/board-workflows.ts | 41 +++++++++---
packages/dashboard/src/routes/register-settings-memory-routes.ts | 46 +++++++++++++-
21 files changed, 553 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-023
Fusion-Task-Lineage: 1043fc42-2a02-49dd-b695-d9ae3af60e90
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
gsxdsm
2eae0b2507
feat: remove stuck-task tagging from the dashboard; fix liveness-ratchet scan path
...
Removes the dashboard's stuck-task tagging per operator request: the Stuck
card/status badges, stuck row styling, the footer Stuck segment and
stuckTaskCount stat, utils/taskStuck.ts, the isStuck agent-activity gate,
and the taskStuckTimeoutMs prop plumbing (App -> Board/Lane/Column/
WorktreeGroup/MainContent -> TaskCard/ListView/ExecutorStatusBar). Stuck-task
tests are deleted or reconciled. The taskStuckTimeoutMs setting and the
engine's recovery sweeps (including the stuck-killed status) are unchanged —
the setting is engine-side only now.
Also repoints the FN-6756 liveness-gate ratchet's facade scans at
executor/task-executor-session-facades.ts, where the wave20 extraction moved
hasLiveSessionSurface/clearPhantomExecutorBinding (the two pre-existing red
tests on main).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-17 15:47:43 -07:00
gsxdsm
cb57093d03
refactor: domain folder layout (types, API, core, engine) ( #2398 )
...
## Summary
Wave 17 organizes Fusion into **domain folders** (stacks on #2397 ).
### Layout
- **core/types/** — board, task, agents, settings, merge, workflow,
mesh, …
- **core/src/** — agents, ai, async-stores, workflows, tasks, config,
db, …
- **dashboard/app/api/** — client, tasks, agents, git, missions,
planning, …
- **engine/src/** — agents, auth, execution, merge, missions, overseer,
worktree, …
Root keepers retained for large entrypoints (`store.ts`, `executor.ts`,
`merger.ts`, …).
Public barrels (`@fusion/core`, `@fusion/engine`, `app/api.ts` → legacy)
stay stable.
## Test plan
- [x] `@fusion/core` typecheck
- [x] `@fusion/engine` typecheck (pre-existing playwright-core noise
only)
- [ ] CI merge gate
**Stack:** #2394 → #2397 → **this PR**
2026-08-03 00:20:53 -07:00