A waiting turn posts one static line, where three were drawn #740

Closed
opened 2026-08-13 21:54:42 +00:00 by coilyco-ops · 0 comments
Member

Slice of issue 370. Kai drew three lines; one shipped.

> 🤔 `thinking...`          <- live since sirens-echo#373
> 🕐 `still thinking... (9 seconds)`     <- never built
> 🕐 `still thinking... (99 seconds)`    <- never built

Why the other two never appeared

turnprogress.go, refresh:

if p.finished || p.lastStage == "" || p.messageID != "" {
    return
}

Watch ticks every beat and calls refresh. refresh returns immediately once a line is posted, so a turn that stays in one stage for 99 seconds shows one static line for 99 seconds. The sink's Edit was used only when the stage changed.

An earlier seat closed the first half, added consult for three unnamed icons, and did not record that this half was undelivered.

What ships

A beat that finds a line already up appends an elapsed line instead of returning:

> 🤔 `thinking...`
> 🕐 `still thinking 9 seconds...`
> 🕐 `still thinking 99 seconds...`

Bounded at maxProgressWaitLines = 12, and a stage change clears the waits because the new line is describing something else.

Two faithfulness notes

Punctuation differs and the alphabet is why. noticeAllowed is [a-z0-9 ,./-], so parentheses are stripped, and stageNotice appends the ellipsis at the end. still thinking... (9 seconds) therefore renders still thinking 9 seconds.... I did not widen the alphabet for punctuation. That shape is what lets a member tell a harness line from model output; sirens-echo#373 widened it once for the emoji and said so, and doing it again for brackets is not worth the same cost. Asserted by TestEveryWaitLineKeepsTheNoticeShape.

One clock, not a rotation. Kai wrote "if we wanna be real cute" for rotating clock faces, which is an invitation rather than a specification. One word and it is a one-line change.

Verification

ward exec gate PASS on all six steps.

Two mutations, both compiling:

Slice of [issue 370](https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/370). Kai drew three lines; one shipped. ``` > 🤔 `thinking...` <- live since sirens-echo#373 > 🕐 `still thinking... (9 seconds)` <- never built > 🕐 `still thinking... (99 seconds)` <- never built ``` ## Why the other two never appeared `turnprogress.go`, `refresh`: ```go if p.finished || p.lastStage == "" || p.messageID != "" { return } ``` `Watch` ticks every beat and calls `refresh`. **`refresh` returns immediately once a line is posted**, so a turn that stays in one stage for 99 seconds shows one static line for 99 seconds. The sink's `Edit` was used only when the stage *changed*. An earlier seat closed the first half, added `consult` for three unnamed icons, and did not record that this half was undelivered. ## What ships A beat that finds a line already up appends an elapsed line instead of returning: ``` > 🤔 `thinking...` > 🕐 `still thinking 9 seconds...` > 🕐 `still thinking 99 seconds...` ``` Bounded at `maxProgressWaitLines = 12`, and a stage change clears the waits because the new line is describing something else. ## Two faithfulness notes **Punctuation differs and the alphabet is why.** `noticeAllowed` is `[a-z0-9 ,./-]`, so parentheses are stripped, and `stageNotice` appends the ellipsis at the end. `still thinking... (9 seconds)` therefore renders `still thinking 9 seconds...`. **I did not widen the alphabet for punctuation.** That shape is what lets a member tell a harness line from model output; sirens-echo#373 widened it once for the emoji and said so, and doing it again for brackets is not worth the same cost. Asserted by `TestEveryWaitLineKeepsTheNoticeShape`. **One clock, not a rotation.** Kai wrote *"if we wanna be real cute"* for rotating clock faces, which is an invitation rather than a specification. One word and it is a one-line change. ## Verification `ward exec gate` PASS on all six steps. Two mutations, both compiling:
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo#740
No description provided.