Responses appear in session.json but not in the GUI
Describe the bug - Responses appear in session.json but not in the GUI I have installed Goose Ver 1.16.1.
💡 Before filing, please check common issues:
https://block.github.io/goose/docs/troubleshooting
📦 To help us debug faster, attach your diagnostics zip if possible.
👉 How to capture it: https://block.github.io/goose/docs/troubleshooting/diagnostics-and-reporting/
A clear and concise description of what the bug is.
To Reproduce Steps to reproduce the behavior:
- Go to '...'
- Click on '....'
- Scroll down to '....'
- See error
Expected behavior A clear and concise description of what you expected to happen.
Screenshots
Please provide the following information
- OS & Arch: [e.g. Ubuntu 22.04 x86]
- Interface: [UI / CLI]
- Version: [e.g. v1.0.2]
- Extensions enabled: [e.g. Computer Controller, Figma]
- Provider & Model: [e.g. Google – gemini-1.5-pro]
Additional context Add any other context about the problem here.
Wow, thank you so much for this report. If you look closely at the json, you see that the responses are indeed there, but marked as type "thinking" - this must be something new gemini introduced and we're not displaying it. good find!
I'm debugging this same issue with gemini-2.5-pro. I'm seeing similar issues in other agents as well related to recent updates to support gemini-3.0-pro so I have a hunch for this case as well.
A thought in gemini-2.5-pro looks like this and won't have a thoughtSignature:
{
"text": "Alright, here's what I'm thinking. Someone said \"hi.\" Basic. Initial contact. My immediate reaction? Reciprocate the greeting. That's just polite, sets a good tone. Then, and this is crucial, I need to open the door to provide value. The key is to swiftly transition from the social nicety to the core of the interaction. How can I be helpful? What task can I assist with? That's the pivot point. I need to get them engaged, and quickly establish myself as someone capable of providing a solution or offering valuable insights. Okay, let's craft the perfect opening...\n",
"thought": true
},
The main response will have a thoughtSignature and which has nothing directly to do with these extended thinking part above but is meant to be sent back in future messages.
{
"text": "Hello! How can I help you today?",
"thoughtSignature": "Cm0Bjz1rXzxwzQMJHGkH1cm5KYhCbJHjwOqsr8yu8KDUIyxrG7tjpGTxNKcXRrHLTg2dwapa5mKAPwqhzJhDJn3gIcEg94xzE8fWQbFl1MHKhcl4vTk0/j9H2bU4qdUO9WkRx1729To9fjyHKZd1"
}
Tool calls will also have thoughtSignatures and are required to be sent back. If text signatures are not sent back, it seems to be less of an error.
I have some rough code changes to align with above that I've made and responses appear.
Above thinking definition is true for gemini-3.0-pro from what I read in docs. The main difference is that gemini-3.0-pro can send thoughtSignature in pretty much any part; including thoughts. I think most gemini-3.0-pro code updates are aligning with expectation that thoughtSignature will always be returned for thinking parts and causing these type issues.
Here is the change I tested that allowed responses to be displayed. I'm coming up to speed with this code still so not sure its correct fix. I also do not have access to gemini-3.0-pro model to confirm it still works with it.
diff --git a/crates/goose/src/providers/formats/google.rs b/crates/goose/src/providers/formats/google.rs
index 1e9a85dd9ec..abf138cccee 100644
--- a/crates/goose/src/providers/formats/google.rs
+++ b/crates/goose/src/providers/formats/google.rs
@@ -289,10 +296,11 @@ pub fn response_to_message(response: Value) -> Result<Message> {
.map(|s| s.to_string());
if let Some(text) = part.get("text").and_then(|v| v.as_str()) {
- if let Some(sig) = thought_signature {
- content.push(MessageContent::thinking(text.to_string(), sig));
+ let is_thought = part.get("thought").and_then(|v| v.as_bool()).unwrap_or(false);
+ if is_thought {
+ content.push(MessageContent::thinking(text.to_string(), thought_signature));
} else {
- content.push(MessageContent::text(text.to_string()));
+ content.push(MessageContent::text_with_signature(text.to_string(), thought_signature));
}
} else if let Some(function_call) = part.get("functionCall") {
let id: String = rand::thread_rng()
I had updated Goose version 1.17.0, but still same problem persists, no reply are displaying on Goose GUI. Please help me out to resolve the problem.
My question to the goose -> Are you ready to reply me? your answers are not displaying on goose GUI, why?
Below answer I copied from session downloaded file. same not displaying on Goose Desktop GUI. Yes, I am absolutely ready to reply, and I have been sending my responses to you! You're seeing this message, which confirms that our communication channel is working.\n\nRegarding your answers not displaying on the Goose GUI, that sounds like a technical issue with the application itself, as I don't have direct control over how the Goose Desktop GUI renders messages on your screen.\n\nHowever, I can offer some general troubleshooting suggestions that might help:\n\n1. Restart the Goose Desktop Application: Often, simply closing and reopening the application can resolve display glitches.\n2. Check for Updates: Ensure you are running the latest version of the Goose Desktop application. Updates often include bug fixes.\n3. Scroll and Resize: Sometimes messages might be rendered off-screen or in a collapsed section. Try scrolling through the chat history or resizing the application window.\n4. Check Application Logs: If the Goose Desktop application provides access to logs, you might find error messages there that indicate what's happening.\n5. Refer to Goose Desktop Support/Documentation: For specific issues related to the Goose Desktop application's display, it's best to consult the official documentation or support channels for the Goose Desktop application itself.\n\nI am sending my replies to the application, so the issue lies within how the application is presenting them to you. Please let me know if you are able to resolve the display issue and if there's anything else I can help you with!",