added sidebar contextual information for firefox (#5433)

Signed-off-by: 40u5 <meswag74@gmail.com>
This commit is contained in:
40u5
2025-12-04 11:05:46 -05:00
committed by GitHub
parent 166ce02e58
commit 3a378b2877
2 changed files with 28 additions and 5 deletions
+9 -3
View File
@@ -5,7 +5,7 @@ use axum::{
ws::{Message, WebSocket, WebSocketUpgrade},
Query, Request, State,
},
http::StatusCode,
http::{StatusCode, Uri},
middleware::{self, Next},
response::{Html, IntoResponse, Response},
routing::get,
@@ -240,7 +240,7 @@ pub async fn handle_web(
Ok(())
}
async fn serve_index() -> Result<Redirect, (http::StatusCode, String)> {
async fn serve_index(uri: Uri) -> Result<Redirect, (http::StatusCode, String)> {
let session = SessionManager::create_session(
std::env::current_dir().unwrap_or_else(|_| std::path::PathBuf::from(".")),
"Web session".to_string(),
@@ -249,7 +249,13 @@ async fn serve_index() -> Result<Redirect, (http::StatusCode, String)> {
.await
.map_err(|err| (http::StatusCode::INTERNAL_SERVER_ERROR, err.to_string()))?;
Ok(Redirect::to(&format!("/session/{}", session.id)))
let redirect_url = if let Some(query) = uri.query() {
format!("/session/{}?{}", session.id, query)
} else {
format!("/session/{}", session.id)
};
Ok(Redirect::to(&redirect_url))
}
async fn serve_session(
+19 -2
View File
@@ -474,8 +474,7 @@ async function loadSessionIfExists() {
resumeDiv.className = 'message system-message';
resumeDiv.innerHTML = `<em>Session resumed: ${sessionData.messages.length} messages loaded</em>`;
messagesContainer.appendChild(resumeDiv);
// Update page title with session description if available
if (sessionData.metadata && sessionData.metadata.description) {
document.title = `goose chat - ${sessionData.metadata.description}`;
@@ -510,6 +509,24 @@ messageInput.addEventListener('input', () => {
// Initialize WebSocket connection
connectWebSocket();
// Read 'q' parameter from URL and set it to the message input
function getQueryParam() {
const urlParams = new URLSearchParams(window.location.search);
const queryParam = urlParams.get('q');
if (queryParam) {
messageInput.value = queryParam;
urlParams.delete('q');
let newUrl = window.location.pathname;
if (urlParams.toString()) {
newUrl = `${window.location.pathname}?${urlParams.toString()}`;
}
window.history.replaceState({}, '', newUrl);
}
}
getQueryParam();
// Focus on input
messageInput.focus();