Raise the compose cap from 30 to 36 now that table admin no longer competes for it #600
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
beat_service._COMPOSE_MAX_BEATS = 30(#568) was sized to what the compose prompt's "3-6 paragraphs" can hold, when a real session produced about 26 beats. Two things have changed since:table_adminfold, it still leaves 43–60 story events per run on the replay session: runsace1414fand03b3acfa, 2026-09-11. So the cap now always binds, and the #589 time-stratified pick drops 13–30 story events from the prose.Nothing is lost from the event log either way. The cap only governs what's narrated.
Change
_COMPOSE_MAX_BEATSgoes from 30 to 36, and the compose prompt's "3-6 paragraphs" becomes "3-7 paragraphs", so the two instructions still agree.How it's measured
One summary-only rerun of the dev replay session against run 6 (
03b3acfa, 2,573 characters), looking at:If the length grows past that or coverage doesn't move, revert and look at bucket weighting instead.
Measured: raising the cap alone doesn't rescue the dense-stretch details, and the replay shows why. Merged in PR #601 (main
c8116d7), deployed to dev; run 7 isb0613da6(Gemma 4 26B, 2026-09-11 14:13 UTC).Run 7 against run 6:
Replay of the deterministic selector on run 7's stored events (read-only,
select_beats_for_composeat both caps):other)other)other)social)The six extra slots bought:
The cause is the fill step, not the cap. After taking one event per time slice, leftover slots are filled by
rank = (kind tier, t_start, …): story kinds beforeother, then earliest first. So:othercomes last, whatever the cap. Both targets are real reveals that the model labelledother, and ~35–45% of this session's story events areother.A bigger cap only extends the same earliest-first queue, which is how the chatter got in.
Proposed follow-up, not built yet:
other, with the summary "off-topic chatter", which is #596's lesson again. Labelling ittable_admin(or a sibling kind) would keep it out of the pick.Keeping 36 for now: the length is fine, and the fill fix is what makes the extra room count. If the fill fix doesn't move coverage either, revert to 30.