qs-ask: log outcomes to journal; launcher: spinner while Claude answers

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-08-02 11:27:08 +01:00
parent ba9558ba30
commit 748a345ea9
2 changed files with 57 additions and 13 deletions

View file

@ -2415,7 +2415,10 @@ in
height: answerCol.height + 28
radius: Theme.radiusCard
color: Theme.cardBg
visible: launcherPanel.answerFact !== ""
// Also up while Claude's call is out with nothing
// on screen yet, so the spinner has somewhere to
// live during the first second.
visible: launcherPanel.answerFact !== "" || askProc.running
Column {
id: answerCol
@ -2451,6 +2454,7 @@ in
// answer already came from it.
SText {
width: parent.width
visible: launcherPanel.answerFact !== ""
text: launcherPanel.answerFact
font.pixelSize: 13
wrapMode: Text.WordWrap
@ -2466,11 +2470,36 @@ in
}
// Always say who answered the two sources
// carry very different trust.
SText {
text: launcherPanel.answerSource
font.pixelSize: 10
color: Theme.base03
// carry very different trust. The spinner
// runs for as long as Claude's ~6s call is
// out, which is the only cue that a
// Wikipedia answer already on screen is
// still provisional and that a card that
// never changes was Claude declining, not
// Claude being slow.
Row {
spacing: 5
SIcon {
anchors.verticalCenter: parent.verticalCenter
visible: askProc.running
text: "loader-circle"
font.pixelSize: 11
color: Theme.base03
NumberAnimation on rotation {
from: 0; to: 360
duration: 900
loops: Animation.Infinite
running: askProc.running
}
}
SText {
anchors.verticalCenter: parent.verticalCenter
text: askProc.running
? (launcherPanel.answerSource === "" ? "Claude" : launcherPanel.answerSource + " · Claude")
: launcherPanel.answerSource
font.pixelSize: 10
color: Theme.base03
}
}
}