Auto conversations
You never manage conversations in Warshall. You type into a terminal, and the app decides whether the provider’s session carries on or a new one starts. There is nothing to set up and nothing to press.
When a conversation rotates
A conversation is retired once its context has grown past 45 percent of the model’s context window. The size is what the provider reports at the end of each turn, and the window is the one the provider gives for that model. The check happens when you send the next prompt, before anything starts, so a retired conversation is not resumed.
Nothing is ever summarized to make room. A new conversation starts on fresh context plus the terminal’s standing text, described below. It never starts on a squeezed copy of the old transcript.
This covers Claude Code and Codex. Local endpoint models keep their own conversation loop, and receive the terminal’s standing text on every run.
One conversation per terminal
Conversations belong to terminals. A terminal has one live conversation at a time, whichever provider ran its last turn, and never picks up another terminal’s conversation. When you send a prompt, the app checks these in order.
- If the live conversation passed the size limit at its last turn, it is retired and a fresh one opens. The fresh one carries every standing instruction the old one collected.
- If the last turn ran on a different provider, the conversation carries on but the provider session cannot, because one tool cannot read the other’s transcript. The new provider starts its own session under the same conversation. Switching a terminal’s provider costs one cold start, never the conversation.
- Otherwise the session is resumed, from the running app when it has it, or from what the tool can still find on disk. If the tool can no longer find the session, a fresh session starts under the same conversation instead of the turn failing.
When a terminal’s runs move to a different directory, it starts a fresh conversation. This happens when a folder becomes a git repository and its runs move into a worktree. The old conversation knows the files by their old paths, and the worktree fence refuses those paths.
Standing instructions
A rule you gave a terminal earlier, such as keeping shared types in one place, outlives the conversation you typed it into.
After each prompt, Warshall reads your own words in the background and copies out the rules that should keep applying. These are constraints, preferences and requirements, never one off tasks. A line is kept only if it appears word for word in what you wrote, so a paraphrase can never slip in.
- Greetings and prompts shorter than twelve characters are skipped.
- At most ten lines are kept from one prompt.
- A terminal keeps its forty newest lines. Older ones drop off.
- A line the terminal already has is not stored twice.
The list belongs to the terminal, not to the provider or the conversation. That is how it survives a rotation or a provider switch. When a new conversation opens, the list is copied into it under a heading saying these are instructions you gave earlier in this terminal. A line added while a conversation is running reaches the next conversation, not the current one, because the current one already has your prompt in its history.
What rides with a run
Your prompt is never edited. Anything the workspace needs to tell the model goes through the system instructions instead, and that text is identical on every turn, so the provider’s cache is not disturbed.
- One fixed paragraph of house rules. It tells the model not to talk about the automatic commits and conversation handling, that its working directory is this terminal’s own checkout, and which folder to save screenshots in.
- The terminal’s standing text, which is the context it opened on plus the standing instructions above.
Both are added on top of what you and the provider already set. Nothing of yours is replaced, whether in your global memory file or anywhere else.
Changing the model, or on most models the reasoning level, on a conversation that carries on makes the provider read the whole history again at full price. So does a provider switch. A cost warning tells you before that turn starts.