fix(commandline): pin active step prompt instead of fading

The current step's prompt was written into the command-line widget
label. Instead, keep it as a normal history line but freeze its
cooldown: the step prompt is pinned so it does not fade while the user
is still on that step. When the step changes the previous line's
cooldown restarts; when the command ends the pin clears and it fades.

`update` is now a thin wrapper that mirrors the active command's prompt
into the command line after each message; the body moved to
`update_inner`.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Opus 4.8 committed 2026-06-09 18:46:45 +03:00
1 parent 0ee8f5265d
commit b3aadf569e
3 files changed
+53 -20

No files matched your search

+12
View File
@@ -50,6 +50,18 @@ fn format_size(bytes: u64) -> String {
impl OpenCADStudio {
pub fn update(&mut self, msg: Message) -> Task<Message> {
let task = self.update_inner(msg);
// After every message, mirror the active command step's prompt so
// its history line stays pinned (non-fading) until the step changes.
let prompt = self.tabs[self.active_tab]
.active_cmd
.as_ref()
.map(|c| c.prompt());
self.command_line.set_step_prompt(prompt);
task
}
fn update_inner(&mut self, msg: Message) -> Task<Message> {
match msg {
Message::Tick(t) => {
let i = self.active_tab;