From 3dc2c1d81c3ac6a0e508ddf3cf918e76888faf08 Mon Sep 17 00:00:00 2001 From: Shoubhit Dash Date: Tue, 12 May 2026 22:10:28 +0530 Subject: [PATCH] fix(session): preserve usage update timestamps (#27094) --- packages/opencode/src/data-migration.ts | 1 + packages/opencode/src/session/projectors.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/data-migration.ts b/packages/opencode/src/data-migration.ts index bec4c9c8a9..b6956032a4 100644 --- a/packages/opencode/src/data-migration.ts +++ b/packages/opencode/src/data-migration.ts @@ -94,6 +94,7 @@ export const layer = Layer.effect( tokens_reasoning: value.tokens.reasoning, tokens_cache_read: value.tokens.cache.read, tokens_cache_write: value.tokens.cache.write, + time_updated: sql`${SessionTable.time_updated}`, }) .where(eq(SessionTable.id, sessionID)) .run() diff --git a/packages/opencode/src/session/projectors.ts b/packages/opencode/src/session/projectors.ts index 8b5cc2bdcc..3dd848c5bc 100644 --- a/packages/opencode/src/session/projectors.ts +++ b/packages/opencode/src/session/projectors.ts @@ -38,6 +38,7 @@ function applyUsage(db: TxOrDb, sessionID: Session.Info["id"], value: Usage, sig tokens_reasoning: sql`${SessionTable.tokens_reasoning} + ${value.tokens.reasoning * sign}`, tokens_cache_read: sql`${SessionTable.tokens_cache_read} + ${value.tokens.cache.read * sign}`, tokens_cache_write: sql`${SessionTable.tokens_cache_write} + ${value.tokens.cache.write * sign}`, + time_updated: sql`${SessionTable.time_updated}`, }) .where(eq(SessionTable.id, sessionID)) .run() @@ -110,7 +111,7 @@ export default [ const info = data.info const row = db .update(SessionTable) - .set(toPartialRow(info as Session.Patch)) + .set({ time_updated: sql`${SessionTable.time_updated}`, ...toPartialRow(info as Session.Patch) }) .where(eq(SessionTable.id, data.sessionID)) .returning() .get()