feat(FN-4042): add SQLite lock contention recovery in core database layer
Adds SQLite lock contention recovery for WAL-mode databases, covering both the core database layer (db.ts, central-db.ts, store.ts) and the run-audit subsystem, with comprehensive unit and integration test coverage and updated storage documentation. Fusion-Task-Id: FN-4042
This commit is contained in:
@@ -4137,21 +4137,23 @@ export class TaskStore extends EventEmitter<TaskStoreEvents> {
|
||||
metadata: input.metadata,
|
||||
};
|
||||
|
||||
this.db.prepare(`
|
||||
INSERT INTO runAuditEvents (
|
||||
id, timestamp, taskId, agentId, runId, domain, mutationType, target, metadata
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
`).run(
|
||||
event.id,
|
||||
event.timestamp,
|
||||
event.taskId ?? null,
|
||||
event.agentId,
|
||||
event.runId,
|
||||
event.domain,
|
||||
event.mutationType,
|
||||
event.target,
|
||||
toJsonNullable(event.metadata),
|
||||
);
|
||||
this.db.transaction(() => {
|
||||
this.db.prepare(`
|
||||
INSERT INTO runAuditEvents (
|
||||
id, timestamp, taskId, agentId, runId, domain, mutationType, target, metadata
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
`).run(
|
||||
event.id,
|
||||
event.timestamp,
|
||||
event.taskId ?? null,
|
||||
event.agentId,
|
||||
event.runId,
|
||||
event.domain,
|
||||
event.mutationType,
|
||||
event.target,
|
||||
toJsonNullable(event.metadata),
|
||||
);
|
||||
});
|
||||
|
||||
return event;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user