Files
orca/src/main/runtime/agent-session-store-serialization.ts
T
Brennan BensonandMerge Sim cad9206839 fix(native-chat): preserve structured chat across rollback (#17439)
* fix(native-chat): preserve structured tabs across rollback

* fix(native-chat): preserve rollback visibility state

---------

Co-authored-by: Merge Sim <sim@local>
2026-08-30 14:35:53 -07:00

21 lines
769 B
TypeScript

import type { AgentSessionStoreState } from './agent-session-record-store-file'
export function serializeAgentSessionStoreState(state: AgentSessionStoreState): string {
const records: Record<string, unknown> = Object.create(null)
for (const [sessionId, record] of state.records) {
records[sessionId] = record
}
const serialized: Record<string, unknown> = {
schemaVersion: state.schemaVersion,
hostId: state.hostId,
records,
operations: Object.fromEntries(state.operations),
retiredClaimKeys: state.retiredClaimKeys,
unusableRecords: Object.fromEntries(state.unreadableRecords)
}
if (state.visibleSessionIdsIndexPresent) {
serialized.visibleSessionIds = [...state.visibleSessionIds]
}
return JSON.stringify(serialized)
}