FN-7537: make manual backup automation runs match cron in-process behavior
Manual 'Run now' automation runs previously always shelled out via exec(), diverging from the scheduled cron path which runs backup commands in-process; this unifies both paths and adds live-run output coverage.
- Export formatInProcessBackupError, isInProcessBackupCommand, and isInProcessMemoryBackupCommand from @fusion/engine for reuse
- Have the dashboard's single-command/command-step manual run path (executeSingleCommand in routes.ts) intercept in-process backup/memory-backup commands via the scoped TaskStore, mirroring RoutineRunner.executeCommand/CronRunner
- Add regression coverage confirming onStep/onText live-run callbacks stream incremental output for the new interception branch
- Add changeset and doc note for the fix
Files changed:
.changeset/fn-7537-backup-automation-manual-run.md | 7 +
docs/dashboard-guide.md | 3 +
.../src/__tests__/routes-automation.test.ts | 171 +++++++++++++++++++++
packages/dashboard/src/routes.ts | 73 ++++++++-
.../engine/src/__tests__/routine-runner.test.ts | 96 +++++++++++-
packages/engine/src/cron-runner.ts | 7 +-
packages/engine/src/index.ts | 2 +-
7 files changed, 354 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7537
Fusion-Task-Lineage: 47824270-c0d4-471b-a5c9-f5350176df29
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>