summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAriane Emory <[email protected]>2026-01-20 21:38:54 -0500
committerGitHub <[email protected]>2026-01-20 20:38:54 -0600
commitcbe20d22d3209896cbab5a803d81f3b4464e1c23 (patch)
tree603d41ce4fccc12ca3a8cbba4bcb1a2b202e9c7d
parent3723e1b8d2b0580467b2417b8e7f303b987cde72 (diff)
downloadopencode-cbe20d22d3209896cbab5a803d81f3b4464e1c23.tar.gz
opencode-cbe20d22d3209896cbab5a803d81f3b4464e1c23.zip
fix: don't update session timestamp for metadata-only changes (resolves #9494) (#9495)
-rw-r--r--packages/opencode/src/server/routes/session.ts2
-rw-r--r--packages/opencode/src/session/index.ts10
-rw-r--r--packages/opencode/src/session/prompt.ts2
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<Info>(["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 })
}
}