Просмотр исходного кода

fix: title gen when first msg(s) are shell invocations (#4874)

Co-authored-by: GitHub Action <[email protected]>
Aiden Cline 2 месяцев назад
Родитель
Сommit
17e8322c29

+ 2 - 1
packages/opencode/src/session/prompt.ts

@@ -283,7 +283,7 @@ export namespace SessionPrompt {
           session: await Session.get(sessionID),
           modelID: lastUser.model.modelID,
           providerID: lastUser.model.providerID,
-          message: msgs.find((m) => m.info.role === "user")!,
+          message: msgs.find((m) => m.info.role === "user" && !m.parts.every((p) => "synthetic" in p && p.synthetic))!,
           history: msgs,
         })
 
@@ -1466,6 +1466,7 @@ export namespace SessionPrompt {
           content: "Generate a title for this conversation:\n",
         },
         ...MessageV2.toModelMessage([
+          ...input.history,
           {
             info: {
               id: Identifier.ascending("message"),

+ 3 - 2
packages/opencode/src/session/prompt/title.txt

@@ -22,8 +22,9 @@ Your output must be:
 - The title should NEVER include "summarizing" or "generating" when generating a title
 - DO NOT SAY YOU CANNOT GENERATE A TITLE OR COMPLAIN ABOUT THE INPUT
 - Always output something meaningful, even if the input is minimal.
-- If the user message is short or conversational (e.g. “hello”, “lol”, “whats up”, “hey”):
-  → create a title that reflects the user’s tone or intent (such as Greeting, Quick check-in, Light chat, Intro message, etc.)
+- Ignore tool execution messages ("Called the Read tool...", "The following tool was executed..."). Instead, focus on what the user wants to do with the context.
+- If the user message is short or conversational (e.g. "hello", "lol", "whats up", "hey"):
+  → create a title that reflects the user's tone or intent (such as Greeting, Quick check-in, Light chat, Intro message, etc.)
 </rules>
 
 <examples>