Files
fusion/packages/engine
Fusion Agent 532fabc1ac FN-212: restore Respecify and require plan approval per task
Restore plan revision from approval holds and add persistent per-task approval controls across the workflow.

- Add task-level approval resolution, persistence, migration, and workflow gating.
- Restore the Respecify action with plan-preserving revision behavior.
- Add approval overlays, shared dialogs, localized copy, and regression coverage.

Files changed:
 .changeset/fn-212-respecify-and-plan-approval.md   |   7 +
 docs/architecture.md                               |   2 +-
 docs/dashboard-guide.md                            |   8 +-
 docs/settings-reference.md                         |   3 +-
 docs/task-management.md                            |   8 +-
 docs/workflow-steps.md                             |   4 +-
 packages/core/src/__tests__/plan-approval.test.ts  |  30 +++
 .../src/__tests__/postgres/schema-applier.test.ts  |  40 +++-
 .../postgres/task-lifecycle-e2e.pg.test.ts         |  10 +
 .../__tests__/task-require-plan-approval.test.ts   |  51 +++++
 packages/core/src/index.gate.ts                    |   2 +-
 packages/core/src/index.ts                         |   2 +-
 packages/core/src/planner/plan-approval.ts         |  33 ++-
 .../0070_fn_212_task_require_plan_approval.sql     |   3 +
 packages/core/src/postgres/postgres-health.ts      |   2 +
 packages/core/src/postgres/schema-applier.ts       |  26 ++-
 packages/core/src/postgres/schema/project.ts       |   2 +
 packages/core/src/store.ts                         |   2 +-
 .../core/src/task-store/branch-and-pr-entities.ts  |   2 +-
 packages/core/src/task-store/persistence.ts        |   6 +
 packages/core/src/task-store/serialization.ts      |   4 +
 packages/core/src/task-store/task-creation.ts      |   4 +
 packages/core/src/task-store/task-update.ts        |   9 +
 packages/core/src/types/task/task-core.ts          |  12 ++
 packages/core/src/types/workflow/workflow-steps.ts |   2 +-
 packages/dashboard/app/api/tasks/task-steer.ts     |   9 +-
 packages/dashboard/app/components/ListView.tsx     |  17 +-
 packages/dashboard/app/components/NewTaskModal.tsx |  11 +-
 .../dashboard/app/components/QuickEntryBox.tsx     |  28 ++-
 .../app/components/RespecifyPlanDialog.css         |  49 +++++
 .../app/components/RespecifyPlanDialog.tsx         | 120 +++++++++++
 packages/dashboard/app/components/TaskCard.css     |  57 ++++-
 packages/dashboard/app/components/TaskCard.tsx     | 115 +++++++++-
 .../dashboard/app/components/TaskContextMenu.tsx   |  12 ++
 .../dashboard/app/components/TaskDetailModal.tsx   |  16 ++
 packages/dashboard/app/components/TaskForm.tsx     |  21 +-
 .../ListView.plan-approval-overlay.test.tsx        |  18 ++
 .../NewTaskModal.plan-approval-toggle.test.tsx     |  21 ++
 .../app/components/__tests__/NewTaskModal.test.tsx |  27 +++
 .../QuickEntryBox.plan-approval-toggle.test.tsx    |  27 +++
 .../components/__tests__/QuickEntryBox.test.tsx    |  38 +++-
 .../__tests__/RespecifyPlanDialog.test.tsx         | 105 +++++++++
 .../TaskCard.plan-approval-host-inventory.test.tsx |  29 +++
 .../TaskCard.plan-approval-overlay.test.tsx        | 104 +++++++++
 .../components/__tests__/TaskContextMenu.test.tsx  |  14 ++
 .../__tests__/TaskRetry.host-inventory.test.tsx    |  12 +-
 .../dashboard/app/utils/planApprovalPreference.ts  |  16 ++
 packages/dashboard/app/utils/projectStorage.ts     |   1 +
 .../routes-task-respecify-preserve-plan.test.ts    | 226 +++++++++++++++++++
 .../src/routes/register-task-workflow-routes.ts    |  57 +++--
 .../triage-per-task-plan-approval.test.ts          | 240 +++++++++++++++++++++
 packages/engine/src/triage.ts                      |   4 +-
 packages/i18n/locales/en/app.json                  |  21 ++
 packages/i18n/locales/es/app.json                  |  23 +-
 packages/i18n/locales/fr/app.json                  |  23 +-
 packages/i18n/locales/ko/app.json                  |  23 +-
 packages/i18n/locales/pt-BR/app.json               |  23 +-
 packages/i18n/locales/zh-CN/app.json               |  23 +-
 packages/i18n/locales/zh-TW/app.json               |  23 +-
 packages/i18n/src/resources.d.ts                   |  21 ++
 60 files changed, 1797 insertions(+), 51 deletions(-)

Fusion-Task-Id: FN-212

Fusion-Task-Lineage: e2f46a8d-5724-4330-9fdb-dc33fd4b93bc

Co-authored-by: Fusion <noreply@runfusion.ai>
2026-08-28 07:42:26 +00:00
..
2026-07-31 18:03:13 -07:00
2026-08-26 20:06:31 -07:00
2026-08-26 20:06:31 -07:00