| Age | Commit message (Collapse) | Author | Files | Lines |
|
Conversions, extraction, merge and compression on the staged files from
the file state, one at a time, with Stop; Compress… opens its formats.
To .md goes through the daemon's write, the rest through fileops. The
card keeps the result line, Saved name with Open and Folder, or the
error, so another operation can follow on the same files. Results land in
Documents/Assistant.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
A script with no suffix staged as 'other' and was refused. A staged file
the name says nothing about is now handed to file(1) once, and its mime
type gives the kind, so a shell script is code and gets Explain and
Review. The daemon makes its own call on the content.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
From review. A shell reload reconnected with lastActive at 0, so the next
SUPER+Home started a new conversation thirty seconds into one; hello with
turns now counts as activity. show() could send new under a reply still
running, which stops it unsaved; it waits while busy. ask() cleared the
chips before the daemon accepted them, so a refused file (unreadable, too
big, a model without vision) dropped them and collapsed the card to the
entry line; the user event clears them now, and chatting holds the layout
while a PDF is read.
In the picker, folders ignore name filters and sorted first, so filter
then Enter opened a folder; folders hide while filtering. Folder URLs are
encoded, so a '#' in a name no longer cuts the path, and glob characters
typed in the filter are taken literally. The card says the assistant is
not running in every state, panels sit under the chat header instead of
over it, and History and the picker no longer open together. Dropped
file://localhost/ URLs are accepted, other hosts refused, and the island
receptor keeps the sliver's width at rest so it takes no clicks beside it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The card has three states: an entry line, a file state for staged files with Chat about it, and the chat. SUPER+Home resumes a conversation active in the last 10 minutes and otherwise starts a new one. The paperclip opens a picker drawn in the card, since a system dialog would open beneath the overlay that holds the keyboard. Button gains a font alias for the paperclip glyph, and the canvas a socketPath property so a check can point it at a scratch daemon.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
|
|
From review of the canvas. Escape stopped working in three ways, each
leaving the keyboard grabbed with nothing to receive it: the history
field hiding took focus with it, a disabled input could not hold focus
while the daemon was down, and a click in a streaming reply focused text
the next flush destroyed. The card now gives focus back to the input
whenever it falls out, and the input is read-only rather than disabled.
Only an error the daemon marks as ending the reply (turn) closes the live
row; a command error, possibly another client's, used to freeze the reply
mid-stream. The running tool comes from state events, hello included.
Scrolling up during a stream no longer snaps back, since following stops
when a movement starts. History snippets go through Notify.sanitize like
any model output, links open only for http, https and mailto, and a line
opening with inline triple-backtick code is no longer taken as a fence.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
The socket, the turn model and the window live in Assistant.qml, outside
the window's loader, so closing the card loses nothing and a reply keeps
streaming while it is closed. Tokens reach the model on a 50 ms tick
rather than per token. Prose goes through Notify.sanitize, because model
output can quote a search result and a remote image in it would be
fetched on render. Code blocks get a copy button once their fence closes.
The history panel lists conversations and searches them through the
daemon's full-text index.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
|