feat(FN-4219): complete Step 4 — add experiment executor runtime

Fusion-Task-Id: FN-4219
Fusion-Task-Lineage: 8d9a9ba6-6729-4376-b935-549e28a7fa35
This commit is contained in:
Fusion
2026-05-14 00:42:33 -07:00
committed by gsxdsm
parent a73cfc710b
commit 24bf18a233
5 changed files with 469 additions and 0 deletions

View File

@@ -270,6 +270,28 @@ export class ExperimentSessionStore extends EventEmitter<ExperimentSessionStoreE
return this.updateSession(session.id, { bestRunId: runRecordId });
}
updateRecordPayload(recordId: string, patch: Partial<ExperimentSessionRecord["payload"]>): ExperimentSessionRecord {
const record = this.getRecord(recordId);
if (!record) throw new Error(`Experiment record not found: ${recordId}`);
const updated = {
...record,
payload: {
...record.payload,
...patch,
},
} as ExperimentSessionRecord;
this.db.prepare(`
UPDATE experiment_session_records
SET payload = ?
WHERE id = ?
`).run(toJson(updated.payload), recordId);
this.db.bumpLastModified();
return updated;
}
recordKept(sessionId: string, runRecordId: string): ExperimentSession {
const session = this.assertRunRecordOwnership(sessionId, runRecordId);
const keptRunIds = session.keptRunIds.includes(runRecordId)