A temporary chat that keeps the model it was started on

The new-chat screen keeps its preselections in the query string, and the
three ways off it each rebuilt the URL with only their own key: the
Temporary button went to /chat?temporary=1, the model picker to
/chat?model=<id>, and /temp to /chat?temporary=1. So each undid the other,
and a temporary chat could only be started on the default model. The
folder from "New chat here" and the agent kind were dropped the same way.

chat_index now builds both URLs from one set of carried values and changes
only its own key; /temp keeps location.search when run on /chat.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 13:07:57 +00:00
co-authored by Claude Opus 5.5
parent cb8a223fa4
commit e65ea90fe6
8 changed files with 112 additions and 6 deletions
+9
View File
@@ -58,3 +58,12 @@ def test_send_from_anywhere_never_means_stop():
stops."""
window = SOURCE[SOURCE.index('event.code === "Enter"') :][:600]
assert 'composerAction === "send"' in window
def test_temp_keeps_what_the_new_chat_screen_already_chose():
"""`/temp` went to a bare `/chat?temporary=1`, so on a new-chat screen with
a model picked it quietly swapped back to the default model."""
window = SOURCE[SOURCE.index('name: "temp"') :][:600]
assert 'window.location = "/chat?temporary=1"' not in window
assert "window.location.search" in window
assert 'query.set("temporary", "1")' in window