FN-6008: document FTS migration defer evidence and align workflow IDs
Refresh the FTS migration guidance with fresh evidence and reconcile workflow interpreter naming. - document post-FN-5943 production evidence showing the single-file tasks_fts index remains bounded and rebuild-free - keep the storage guidance explicitly deferred until recurring corruption or sustained bloat is observed - relax the foreach parser test to accept the current nested loop/foreach error wording - align the authoritative workflow driver ID with the task branch change during conflict resolution Files changed: docs/storage.md | 7 ++++++- packages/core/src/__tests__/workflow-ir-foreach.test.ts | 2 +- packages/engine/src/workflow-authoritative-driver.ts | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) Fusion-Task-Id: FN-6008 Fusion-Task-Lineage: d8c7c05c-f003-453d-bbd1-d9f0dda62f7c
This commit is contained in:
@@ -175,8 +175,13 @@ Important execution nuance:
|
||||
|
||||
- Why defer now:
|
||||
- FN-5943 already landed the lower-risk fix for the observed incident: fewer rewrites, bounded merge/optimize maintenance, and threshold-triggered rebuild.
|
||||
- FN-6008 rechecked the post-FN-5943 operational evidence against the live project DB and the defer condition still holds:
|
||||
- recent `runAuditEvents` telemetry for `target: "tasks_fts"` shows the live index staying bounded in the **tens to low hundreds of KB**, not MB-scale bloat;
|
||||
- the sampled maintenance window showed **0 rebuild events**, with `merge`/`optimize` repeatedly pulling the index back down (for example `141186 → 43990` bytes and `96571 → 40693` bytes);
|
||||
- a direct `tasks_fts_data` size check during the review was only about **50 KB** for **36** live tasks;
|
||||
- no concrete post-FN-5943 runtime evidence of recurring live `tasks_fts` corruption was found in the reviewed logs.
|
||||
- The attached-file idea still improves corruption isolation, but it would trade away the current same-file trigger-maintained index for a manual two-file sync architecture with weaker crash atomicity under WAL.
|
||||
- Revisit only if post-FN-5943 production evidence shows recurring `fusion.db`-coupled FTS corruption or materially persistent live-index bloat significant enough to justify a contentless/manual-sync redesign.
|
||||
- Revisit only if post-FN-5943 production evidence shows recurring `fusion.db`-coupled FTS corruption or materially persistent live-index bloat significant enough to justify a contentless/manual-sync redesign. Until then, keep the single-file external-content design and existing maintenance path.
|
||||
|
||||
## SQLite write-path lock recovery (FN-4042 / FN-4083)
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ describe("foreach validation", () => {
|
||||
edges: [] as WorkflowIrEdge[],
|
||||
};
|
||||
expect(() => parseWorkflowIr(graphWithForeach({ template: tmpl }))).toThrow(
|
||||
/nested foreach/,
|
||||
/nested (loop\/)?foreach/,
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import { executorLog } from "./logger.js";
|
||||
import { WORKFLOW_INTERPRETER_DUAL_OBSERVE_FLAG } from "./workflow-parity-observer.js";
|
||||
import { WorkflowGraphTaskRunner, type WorkflowGraphTaskRunResult } from "./workflow-graph-task-runner.js";
|
||||
|
||||
const AUTHORITATIVE_WORKFLOW_ID = "internal:workflow-interpreter-authoritative";
|
||||
const AUTHORITATIVE_WORKFLOW_ID = "workflow-interpreter-authoritative";
|
||||
|
||||
export interface WorkflowAuthoritativeDriverStore {
|
||||
getSettings(): Promise<Settings>;
|
||||
|
||||
Reference in New Issue
Block a user