Skip to content

feat(rows): the strip is a record, not a forecast - #30

Merged
lroolle merged 1 commit into
mainfrom
feat/five-strip-history-only
Aug 24, 2026
Merged

feat(rows): the strip is a record, not a forecast#30
lroolle merged 1 commit into
mainfrom
feat/five-strip-history-only

Conversation

@lroolle

@lroolle lroolle commented Aug 24, 2026

Copy link
Copy Markdown
Member

From live feedback on the v0.32.1 render: 5h ▮▯×× is unreadable. The young-window floor v0.32.1 put on five_dry_cell made the phantom rarer, not the row legible — this replaces it.

The 5h strip stops at

A 5h window is five cells wide. Its future is not a shape, it is a clock — and two surfaces already own that clock with more precision than a shaded cell can carry:

surface says precision
badge 5h[38%@23:00] the exact minute
notice 5h caps ~14:20 the exact minute, with its own gates
strip ▯×× a mood

Three surfaces, one fact, and the least precise one was the loudest. The strip gives the fact up: it draws what happened and ends. No , no ×, no fold, no future. five_dry_cell is deleted, not gated — a guard on a projection nobody should read is still that projection.

Implemented in build_ledger_strip's own terms: fut now means how much future to draw-1 none (ends at ), 0 all, N keep N then fold. build_five_strip loses its vestigial dry argument since nothing supplies one any more.

and × keep their meaning on the 7d strip, where the future is 34 cells long and genuinely has a shape (and the learned forecast filling it says something no badge does), and in the week report.

The 7d future folds at two hidden cells

WEEK_FUTURE_MIN_HIDE 10 → 2. The old threshold was justified by a column break-even, which measured the wrong thing — eleven hollow cells read as "too much future" long before they got expensive. With KEEP=2 the tail is now at most ▯▯▯ drawn raw, or ▯▯...▯(✕N). N is the part that has to survive mid-week, when a pressure notice owns the pin and this row is the only place the remaining windows appear. A closing week still draws to its edge with no special case: four cells or fewer leave nothing worth folding.

Tests

427 (was 426), shellcheck -S error clean.

  • the 5h strip ends at and never renders or × — on a hot young window (the ▮▯××× fixture) and mid-window at 80%, where linear pace would have walled off every remaining cell
  • the same test asserts still appears on the 7d strip: the glyphs are scoped, not retired
  • the fold engages at hidden ≥ 2 (6 windows left → ▯▯...▯(✕6)) and stays raw at hidden = 1
  • the fold-vs-budget consistency test is unchanged and green
  • build_week_row: ... 34 cells became ... on a 34-cell grid: at 31h from reset the live row now folds, so it asserts drawn == nowslot + 1 + WEEK_FUTURE_KEEP against the fixture's own numbers instead of counting 34 glyphs. The week report still renders all 34 and is covered separately.

Docs

README (week-row summary, three examples, the 5h bullet, the /× rows now marked 7d-only, fold prose), DESIGN.md (ledger example + glyph table), llms.txt, docs/index.html (№ 0001 5h reading and its answer, L5 demo string), and the legend comment block in statusline.sh.

Note on sequencing

v0.32.1 was already merged, tagged, released and installed when this feedback landed. Nothing is rewritten: this removes the code v0.32.1 guarded, and the CHANGELOG entry points at v0.32.1 for the row-3 floor rather than editing a published entry.

🤖 Generated with Claude Code

The 5h strip stops at ▮. It drew the rest of the window as hollow cells
and then, when linear pace said so, as a wall of × — `5h ▮▯××`, which a
user could not read and was right not to. Three surfaces were saying one
thing badly: the badge already prints when the window ends
(`5h[38%@23:00]`), the notice already names the wall with an exact time
and its own gates (`5h caps ~14:20`), and the strip dramatised both a
third time in four columns. A 5h window is short enough that its future
is a clock, not a shape. five_dry_cell is deleted rather than guarded —
a guard on a projection nobody should read is still that projection.

▯ and × keep their meaning on the 7d strip, where the future is 34 cells
long and has a shape, and in the `week` report.

The 7d future folds as soon as folding hides two cells. The old
threshold of 10 was justified by a column break-even, which measured the
wrong thing: eleven hollow cells read as too much future long before
they got expensive. The tail is now at most ▯▯▯ raw, or ▯▯...▯(✕N) — and
N, the windows left, is the part that must survive mid-week, when a
pressure notice owns the pin and this row is the only place it appears.
A closing week draws to its edge with no special case.

Supersedes the five_dry_cell evidence floor from v0.32.1; the row-3
floor from that release stands unchanged.

427 tests (was 426).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lroolle
lroolle merged commit f5acffe into main Aug 24, 2026
1 check passed
@lroolle
lroolle deleted the feat/five-strip-history-only branch August 24, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant