Colour what a shell printed, swipe back, and let a stopped session take a setting
Bash output arrived with its escape sequences in it, so a coloured diff or test run was line noise around the thing being read. The sequences that decide how text looks are spans now and every other one is dropped, with a carriage return honoured the way a terminal honours it so a progress bar shows its final state rather than every state it passed through. A rightward drag anywhere on a session, spawn or settings screen steps back, following the finger so it can be abandoned. It loses every argument: a child that consumes horizontal drags -- a wide fence, a table, a selection -- has already taken the gesture before this sees it. Changing the model or the permission mode of a session with nothing running was refused, in words about the driver, while the config had already taken the value that its next start will use. Both now announce the stored setting instead, through one function, since which of the pair it is does not change the rule. The model-switch warning no longer fires after a clear: the server reports the context as unmeasured rather than zero afterwards, and the fallback reading counted the whole conversation still on screen. An image loading shows a spinner in the space it is about to fill, in the transcript and in the composer's attachments alike. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8dcd2cb708
commit
a383c19dd5
10 files changed
+651
-48
No files matched your search
@@ -2121,10 +2121,18 @@ private data class QueuedMessage(
|
||||
* always going to re-read the conversation -- the switch adds nothing to that bill. And a session
|
||||
* reporting zero context is holding nothing, which is what `/clear` leaves behind.
|
||||
*
|
||||
* Where the figure is *unknown* rather than zero the fallback is what it always was: whether
|
||||
* anything has been said at all. Unknown is not nothing, and treating it as nothing would drop the
|
||||
* Where the figure is *unknown* rather than zero the fallback is whether anything has been said
|
||||
* **since the last clear**. Unknown is not nothing, and treating it as nothing would drop the
|
||||
* warning on exactly the sessions -- an import, a fresh reattach -- where nobody has measured yet
|
||||
* and the conversation may be enormous.
|
||||
* and the conversation may be enormous. But a clear is the one case that makes the whole loaded
|
||||
* transcript stop counting: it leaves the conversation on screen and takes it out of the session's
|
||||
* context, and the server reports the context as unmeasured afterwards rather than as zero, since
|
||||
* nobody has counted what is left. So the reading that used the whole list warned about dropping a
|
||||
* cache that the clear had already dropped -- on the screen where a reader has just deliberately
|
||||
* emptied the thing being warned about.
|
||||
*
|
||||
* With no clear anywhere in what is loaded this is the old reading exactly, which is the
|
||||
* conservative answer for a clear that happened further back than the loaded window.
|
||||
*/
|
||||
private fun worthWarningAbout(
|
||||
status: String,
|
||||
@@ -2134,7 +2142,7 @@ private fun worthWarningAbout(
|
||||
when {
|
||||
status == "exited" -> false
|
||||
contextTokens != null -> contextTokens > 0
|
||||
else -> items.isNotEmpty()
|
||||
else -> items.asReversed().takeWhile { it !is TranscriptItem.ClearedNote }.isNotEmpty()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user