From cbe20d22d3209896cbab5a803d81f3b4464e1c23 Mon Sep 17 00:00:00 2001 From: Ariane Emory <97994360+ariane-emory@users.noreply.github.com> Date: Tue, 20 Jan 2026 21:38:54 -0500 Subject: [PATCH] fix: don't update session timestamp for metadata-only changes (resolves #9494) (#9495) --- packages/opencode/src/server/routes/session.ts | 2 +- packages/opencode/src/session/index.ts | 10 ++++++---- packages/opencode/src/session/prompt.ts | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/server/routes/session.ts b/packages/opencode/src/server/routes/session.ts index a98624dfa..a0dc9fb84 100644 --- a/packages/opencode/src/server/routes/session.ts +++ b/packages/opencode/src/server/routes/session.ts @@ -281,7 +281,7 @@ export const SessionRoutes = lazy(() => session.title = updates.title } if (updates.time?.archived !== undefined) session.time.archived = updates.time.archived - }) + }, { touch: false }) return c.json(updatedSession) }, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 3fcdab523..659127470 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -259,7 +259,7 @@ export namespace Session { draft.share = { url: share.url, } - }) + }, { touch: false }) return share }) @@ -269,14 +269,16 @@ export namespace Session { await ShareNext.remove(id) await update(id, (draft) => { draft.share = undefined - }) + }, { touch: false }) }) - export async function update(id: string, editor: (session: Info) => void) { + export async function update(id: string, editor: (session: Info) => void, options?: { touch?: boolean }) { const project = Instance.project const result = await Storage.update(["session", project.id, id], (draft) => { editor(draft) - draft.time.updated = Date.now() + if (options?.touch !== false) { + draft.time.updated = Date.now() + } }) Bus.publish(Event.Updated, { info: result, diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 57ef0ef5e..48f2597d0 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1816,6 +1816,6 @@ NOTE: At any point in time through this workflow you should feel free to ask the const title = cleaned.length > 100 ? cleaned.substring(0, 97) + "..." : cleaned draft.title = title - }) + }, { touch: false }) } }