summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-02 12:36:31 -0600
committerAdam <[email protected]>2026-01-02 12:40:37 -0600
commitc51fa7cb24f184514be7964546083bf2378ca36b (patch)
tree029eb20e5911ed34830d8bb98c4eb7cca9181bbd
parenta4c67515c9bae2acce90812d32b472322ddcfb97 (diff)
downloadopencode-c51fa7cb24f184514be7964546083bf2378ca36b.tar.gz
opencode-c51fa7cb24f184514be7964546083bf2378ca36b.zip
feat: add /compact session command
-rw-r--r--packages/app/src/pages/session.tsx25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index 033259fde..0a0cd519f 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -555,6 +555,31 @@ export default function Page() {
setActiveMessage(priorMsg)
},
},
+ {
+ id: "session.compact",
+ title: "Compact session",
+ description: "Summarize the session to reduce context size",
+ category: "Session",
+ slash: "compact",
+ disabled: !params.id || visibleUserMessages().length === 0,
+ onSelect: async () => {
+ const sessionID = params.id
+ if (!sessionID) return
+ const model = local.model.current()
+ if (!model) {
+ showToast({
+ title: "No model selected",
+ description: "Connect a provider to summarize this session",
+ })
+ return
+ }
+ await sdk.client.session.summarize({
+ sessionID,
+ modelID: model.id,
+ providerID: model.provider.id,
+ })
+ },
+ },
])
const handleKeyDown = (event: KeyboardEvent) => {