Continue the knob reduction past 82: the byte-cap collapse and the Discord caps, both decisions I declined to make alone #944

Open
opened 2026-08-18 02:41:13 +00:00 by coilyco-ops · 0 comments
Member

Filed by Darren (director seat), 2026-08-18. Kai's instruction was "make the numbers greedily derive from each other so there's less of them". 979073d took the table from 90 to 82. This records the two further cuts I found and deliberately did not take, so the next person starts from the analysis rather than redoing it.

Operational improvement under the #929 amendment. No behaviour changes in either option, both are pure restructuring.

Cut A: the byte caps collapse to one unit. 82 to about 68.

Every byte cap in the table is an exact power-of-two multiple of 8Ki, which is maxToolResultBytes. Verified, not eyeballed:

  • 2Ki serverGuidance (already derived in 979073d), 8Ki grounding (already derived)
  • 16Ki readinessBody, 32Ki fetch, 32Ki threadPrefill
  • 64Ki commandOutput, 64Ki httpBody, 64Ki repoFile
  • 128Ki attachment, 256Ki scratchFile, 256Ki skillpack (already derived)
  • 1Mi session, 2Mi proxyResponse, 4Mi scratchPartition (already derived)

Why I stopped. maxHTTPBody bounds an inbound request. maxToolResultBytes bounds a context injection. They are unrelated concerns that happen to share a number. Deriving one from the other means a future "let tool results be bigger" silently enlarges the inbound request limit, which is a latent bug rather than a simplification.

The distinction that matters: derive where the derivation states a real invariant, not where two numbers coincidentally match. Coincidence is what gets you to 68, and it is fake. The eight in 979073d each state something true, which is why they were safe.

If Kai wants it anyway, the honest shape is two or three units rather than one: a context-injection unit, a transport unit, and a storage unit. That is roughly 82 to 72 and keeps unrelated things unrelated.

Cut B: five knobs are Discord's caps, not decisions

maxCommandNameRunes 32, maxCommandDescriptionRunes 100, maxCommandOptions 25, threadNameRunes 100, threadPrefillPage 100.

config.go already says so above the block: "Discord's own shape. Raising one of these past what Discord accepts fails at Discord rather than here." An env override on these is a way to break the bot, not a way to tune it.

Why I stopped. Moving them out means adding five entries to elsewhereByDesign in knobhome_test.go, and that map's own comment reads "the cheap way to pass this test is to add a line here". Five at once from one agent in one pass is exactly what that warning is about, even with honest reasons. It wants a human deciding that external constants are categorically different from the file modes and algorithm floors already listed.

It also does not reduce the count, it relabels it. Kai's complaint is the number of things she must reason about, and "these five are Discord's, not yours" genuinely helps with that, but it is a different fix from derivation.

Not a cut, but the next real decision

SIRENS_ECHO_TOOL_ROUNDS is 6, and proxy.go:515 computes maxModelCalls = ToolRounds + maxResponseRepairs + BudgetRaises + 1 = 9. That is exactly the 9 model calls owl.glass burned on 2026-08-18 while producing a 1,246-byte reply in 182 seconds (#939, #940).

Kai declined a tool-round cap when I proposed one, on the understanding that none existed. It does, it is 6, and it is one env var. That decision is worth retaking with the real number in view.

  • #367 - the completion ceiling. 979073d made it derive from base * step^raises, so raising the budget now moves base or raises rather than a ceiling that could contradict them.
  • coilyco-bridge/deploy#650 - the deploy-side half. No lane sets any of the 82.
**Filed by Darren (director seat), 2026-08-18.** Kai's instruction was "make the numbers greedily derive from each other so there's less of them". `979073d` took the table from **90 to 82**. This records the two further cuts I found and deliberately did not take, so the next person starts from the analysis rather than redoing it. **Operational improvement** under the `#929` amendment. No behaviour changes in either option, both are pure restructuring. ## Cut A: the byte caps collapse to one unit. 82 to about 68. **Every byte cap in the table is an exact power-of-two multiple of 8Ki**, which is `maxToolResultBytes`. Verified, not eyeballed: * `2Ki` serverGuidance (already derived in `979073d`), `8Ki` grounding (already derived) * `16Ki` readinessBody, `32Ki` fetch, `32Ki` threadPrefill * `64Ki` commandOutput, `64Ki` httpBody, `64Ki` repoFile * `128Ki` attachment, `256Ki` scratchFile, `256Ki` skillpack (already derived) * `1Mi` session, `2Mi` proxyResponse, `4Mi` scratchPartition (already derived) **Why I stopped.** `maxHTTPBody` bounds an inbound request. `maxToolResultBytes` bounds a context injection. They are unrelated concerns that happen to share a number. Deriving one from the other means a future "let tool results be bigger" silently enlarges the inbound request limit, which is a latent bug rather than a simplification. **The distinction that matters:** derive where the derivation states a real invariant, not where two numbers coincidentally match. Coincidence is what gets you to 68, and it is fake. The eight in `979073d` each state something true, which is why they were safe. **If Kai wants it anyway, the honest shape** is two or three units rather than one: a context-injection unit, a transport unit, and a storage unit. That is roughly 82 to 72 and keeps unrelated things unrelated. ## Cut B: five knobs are Discord's caps, not decisions `maxCommandNameRunes` 32, `maxCommandDescriptionRunes` 100, `maxCommandOptions` 25, `threadNameRunes` 100, `threadPrefillPage` 100. `config.go` already says so above the block: "Discord's own shape. Raising one of these past what Discord accepts fails at Discord rather than here." **An env override on these is a way to break the bot, not a way to tune it.** **Why I stopped.** Moving them out means adding five entries to `elsewhereByDesign` in `knobhome_test.go`, and that map's own comment reads "the cheap way to pass this test is to add a line here". Five at once from one agent in one pass is exactly what that warning is about, even with honest reasons. It wants a human deciding that external constants are categorically different from the file modes and algorithm floors already listed. **It also does not reduce the count**, it relabels it. Kai's complaint is the number of things she must reason about, and "these five are Discord's, not yours" genuinely helps with that, but it is a different fix from derivation. ## Not a cut, but the next real decision `SIRENS_ECHO_TOOL_ROUNDS` is 6, and `proxy.go:515` computes `maxModelCalls = ToolRounds + maxResponseRepairs + BudgetRaises + 1` = **9**. That is exactly the 9 model calls owl.glass burned on 2026-08-18 while producing a 1,246-byte reply in 182 seconds (`#939`, `#940`). **Kai declined a tool-round cap when I proposed one, on the understanding that none existed.** It does, it is 6, and it is one env var. That decision is worth retaking with the real number in view. ## Related * `#367` - the completion ceiling. `979073d` made it derive from `base * step^raises`, so raising the budget now moves base or raises rather than a ceiling that could contradict them. * `coilyco-bridge/deploy#650` - the deploy-side half. No lane sets any of the 82.
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#944
No description provided.