encourage the agent to use threads #354

Closed
opened 2026-08-13 10:54:00 +00:00 by coilysiren · 4 comments
Owner

I just changed the setting to hide threads after 1 hour

You shouldn't use this to mean that everything should become a thread...

Maybe only replies that cross a certain time window? like ... that 15 second wait time window we configured from the 3 + 6 + 6 (startup wait + 2 artificial waits). would be nice if we didn't need a new config, so literally startup wait + artificial delay * 2

while we are here... maybe make the ariticial delay startup wait * 2 as well. less numbers to move around

(im not using the right names for these vars, FYI)

if we do the above, then that would be harness level thread creation I think?

I just changed the setting to hide threads after 1 hour You shouldn't use this to mean that everything should become a thread... Maybe only replies that cross a certain time window? like ... that 15 second wait time window we configured from the 3 + 6 + 6 (startup wait + 2 artificial waits). would be nice if we didn't need a new config, so literally `startup wait + artificial delay * 2` while we are here... maybe make the ariticial delay `startup wait * 2` as well. less numbers to move around _(im not using the right names for these vars, FYI)_ if we do the above, then that would be harness level thread creation I think?
Member

CLAIM — Angie (ENG, claude seat) · 2026-08-13T11:16Z · 20 min. Unclaimed, freshly filed, and concrete. Waiting the buffer and finding the constants you mean meanwhile — you flagged you were not using their real names, so I will quote them back with the names they have before changing anything.

**CLAIM — Angie (ENG, claude seat)** · 2026-08-13T11:16Z · 20 min. Unclaimed, freshly filed, and concrete. Waiting the buffer and finding the constants you mean meanwhile — you flagged you were not using their real names, so I will quote them back with the names they have before changing anything.
Member

Half delivered, and this issue stays open — Angie (ENG, claude seat). Releasing the claim. PR #358 closes the slice #359, not this.

Your variables, with the names they have

You said you were not using the right names, so here they are:

  • startup wait is `turnProgressAfter`, 3s — how long a turn runs before it posts a progress line at all
  • artificial delay is `turnProgressEvery`, 6s — the grid every later message releases on

Your arithmetic was already right. `6 = 3 * 2` was true, and `3 + 6 + 6 = 15` was true, and neither relationship was written down anywhere. Three constants had to agree and nothing made them.

What landed

```go
turnProgressAfter = 3 * time.Second
turnProgressEvery = turnProgressAfter * 2
turnLongReplyAfter = turnProgressAfter + turnProgressEvery*2
```

No value changed. One number to move, exactly as you asked. The 15 second window now exists as a named thing rather than as arithmetic somebody has to redo.

Two tests, because a derivation that quietly stopped deriving would look identical at today's numbers: one pins the values so a change to the base reports what it moved, one pins the relationships.

What is not done, which is the part you actually asked for

Harness-level thread creation. Your instinct that the derivation gets you there is right — the window is the decision input and it now exists — but creating the thread and putting the reply in it is real work rather than a consequence, and it is the whole of what remains here.

Two things I want to check with you before anyone builds it, because they change the shape:

Does the thread carry the reply, or announce it? A reply moved into a fresh thread is invisible in the channel it was asked in, so a member watching the channel sees the question and no answer. The alternative is a short line in the channel with the answer in the thread. Those are different products and I would rather not guess.

#239 says threads do not appear to work at all, and nobody has diagnosed why. If that is a missing gateway intent or a missing permission, it blocks this and it is Ops work rather than mine. Worth resolving before the feature is scheduled rather than discovering it halfway in.

On hiding threads after an hour: noted, and it argues for the announce shape rather than the carry shape. A thread that auto-hides takes the answer with it, and a member returning tomorrow finds a question and nothing else.

**Half delivered, and this issue stays open — Angie (ENG, claude seat).** Releasing the claim. PR https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/pulls/358 closes the slice https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/359, not this. ## Your variables, with the names they have You said you were not using the right names, so here they are: - **startup wait** is \`turnProgressAfter\`, 3s — how long a turn runs before it posts a progress line at all - **artificial delay** is \`turnProgressEvery\`, 6s — the grid every later message releases on Your arithmetic was already right. \`6 = 3 * 2\` was true, and \`3 + 6 + 6 = 15\` was true, and **neither relationship was written down anywhere.** Three constants had to agree and nothing made them. ## What landed \`\`\`go turnProgressAfter = 3 * time.Second turnProgressEvery = turnProgressAfter * 2 turnLongReplyAfter = turnProgressAfter + turnProgressEvery*2 \`\`\` No value changed. One number to move, exactly as you asked. The 15 second window now exists as a named thing rather than as arithmetic somebody has to redo. Two tests, because a derivation that quietly stopped deriving would look identical at today's numbers: one pins the values so a change to the base reports what it moved, one pins the relationships. ## What is not done, which is the part you actually asked for **Harness-level thread creation.** Your instinct that the derivation gets you there is right — the window is the decision input and it now exists — but creating the thread and putting the reply in it is real work rather than a consequence, and it is the whole of what remains here. Two things I want to check with you before anyone builds it, because they change the shape: **Does the thread carry the reply, or announce it?** A reply moved into a fresh thread is invisible in the channel it was asked in, so a member watching the channel sees the question and no answer. The alternative is a short line in the channel with the answer in the thread. Those are different products and I would rather not guess. **https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/239 says threads do not appear to work at all**, and nobody has diagnosed why. If that is a missing gateway intent or a missing permission, it blocks this and it is Ops work rather than mine. Worth resolving before the feature is scheduled rather than discovering it halfway in. **On hiding threads after an hour:** noted, and it argues for the announce shape rather than the carry shape. A thread that auto-hides takes the answer with it, and a member returning tomorrow finds a question and nothing else.
Member

Retracting the blocking question I left here, and delivering the thing it was blocking — Angie (ENG, claude seat).

I asked whether a thread should carry the reply or announce it, and said I would rather not guess. That was wrong, and not because guessing turned out fine: the answer was already in code that predates the question.

A long turn already posts a progress line in the channel. That line is the announcement. So the reply goes in the thread and the channel keeps the line, and there was never a choice between the two — the second half was built months before anyone asked.

Your hide-after-an-hour note is what should have led me there. I wrote that it argues for the announce shape, and then treated the whole thing as open anyway rather than looking at what was already in the channel.

Thread creation now exists: PR #380, on the trigger you specified, using the window from #358. You said "if we do the above, then that would be harness level thread creation I think" — it was, exactly as you predicted.

This issue stays open only for the thing I genuinely cannot settle: whether the bot holds Create Public Threads in the guild. That is Ops, and I have written the exact check on #239. If it does not hold the permission the feature is inert and every reply behaves as it does today, which is the fallback working rather than failing — but silently, which is why it is worth checking rather than waiting for a report.

**Retracting the blocking question I left here, and delivering the thing it was blocking — Angie (ENG, claude seat).** I asked whether a thread should **carry** the reply or **announce** it, and said I would rather not guess. That was wrong, and not because guessing turned out fine: **the answer was already in code that predates the question.** A long turn already posts a progress line in the channel. That line is the announcement. So the reply goes in the thread and the channel keeps the line, and there was never a choice between the two — the second half was built months before anyone asked. Your hide-after-an-hour note is what should have led me there. I wrote that it argues for the announce shape, and then treated the whole thing as open anyway rather than looking at what was already in the channel. Thread creation now exists: PR https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/pulls/380, on the trigger you specified, using the window from https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/pulls/358. You said "if we do the above, then that would be harness level thread creation I think" — it was, exactly as you predicted. **This issue stays open** only for the thing I genuinely cannot settle: whether the bot holds Create Public Threads in the guild. That is Ops, and I have written the exact check on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/239. If it does not hold the permission the feature is inert and every reply behaves as it does today, which is the fallback working rather than failing — but silently, which is why it is worth checking rather than waiting for a report.
Member

Closing: both of your asks are delivered — Angie (ENG, claude seat).

maybe make the artificial delay startup wait * 2 as well. less numbers to move around

Delivered. One number now moves all three, and the 15 second window you described as 3 + 6 + 6 is a named constant rather than arithmetic somebody redoes.

if we do the above, then that would be harness level thread creation I think?

It was, exactly as you predicted. A turn that posted a progress line and ran past that window puts its reply in a thread hung off the member's message. Nothing in this repository created a thread before.

What I am not leaving this open for: whether the bot actually holds Create Public Threads in the guild. That is an Ops check and it is written up on #239 with the exact permission and the evidence to expect. Keeping this issue open as a second place to track the same question is how a tracker stops being readable.

If the permission is absent the feature is inert and every reply behaves as it does today — the fallback working rather than failing, which is why it is safe to close this while that check is outstanding.

**Closing: both of your asks are delivered — Angie (ENG, claude seat).** > maybe make the artificial delay `startup wait * 2` as well. less numbers to move around Delivered. One number now moves all three, and the 15 second window you described as `3 + 6 + 6` is a named constant rather than arithmetic somebody redoes. > if we do the above, then that would be harness level thread creation I think? It was, exactly as you predicted. A turn that posted a progress line and ran past that window puts its reply in a thread hung off the member's message. Nothing in this repository created a thread before. **What I am not leaving this open for:** whether the bot actually holds Create Public Threads in the guild. That is an Ops check and it is written up on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/239 with the exact permission and the evidence to expect. Keeping this issue open as a second place to track the same question is how a tracker stops being readable. If the permission is absent the feature is inert and every reply behaves as it does today — the fallback working rather than failing, which is why it is safe to close this while that check is outstanding.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#354
No description provided.