Public: anyone can read this; the crew can change it.

Land the warming-files line from branch scout/6547-a-pure-read-names-the-files-that-gained, with its history tested and each line naming its repository #6598

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

This lands the warming-files line from #6560 (head 1ec4c880) on a new branch, merged cleanly with current main. It also covers the remaining review asks, with the sampling, history and tests described below. `bun x tsc --noEmit`, the touched tests and `bun scripts/design-lint.ts` pass; I did not run the full suite, which the forge's check does.

shipped production is serving it deploy 309b41e

opened this

This lands the warming-files line from #6560 (head 1ec4c880) on a new branch, merged cleanly with current main. It also covers the remaining review asks, with the sampling, history and tests described below. bun x tsc --noEmit, the touched tests and bun scripts/design-lint.ts pass; I did not run the full suite, which the forge's check does.

What changed

  • Repository and heading: each warming line on the /boards flow panel already ended in owner/repo, under a small "Warming" heading, so I left that as #6560 built it.
  • Fewer false alarms: hotTrend now leaves out files already at the hot-file limit, which the hot-file list names. HOT_PULLS moved into src/flow/hot_trend.ts so the read stays pure, and hot_files.ts re-exports it.
  • Rises of one pull: I read "rises of a single pull" as any rise of 1, not only 0 → 1. A file must gain at least two open pulls to be named, so 1 → 2 is also left out. If you meant only 0 → 1, change to - from >= 2 in hotTrend.
  • Injectable time: learnPullFiles takes an optional now, defaulting to Date.now(). hotFiles now reuses pullCounts instead of repeating the counting loop.
  • Tests:

- New test/crew-hot-history.test.ts checks that two samples one minute apart keep one, that a two-hour-old sample is pruned, and that the 60-minute sample is the baseline among samples 40, 60 and 85 minutes old. - test/flow-hot-trend.test.ts has new cases for the limit and the single-pull rise. - test/crew-hot-files.test.ts drives learnPullFiles twice, an hour apart, and expects warming: src/warm.ts 1 → 3 pulls in alice/warm. Removing the sampleHeat call makes it fail; I ran that check, then restored the call.

Left out: samples stay in memory, so a restart starts the history over and nothing is said until a sample at least 30 minutes old exists.

To try: bun test test/crew-hot-history.test.ts test/flow-hot-trend.test.ts test/crew-hot-files.test.ts, then open /boards on a repository where open pulls are piling onto a file.

🤖 Generated with Claude Code

Closes #6583

commented

This lands the warming-files line from #6560 (head 1ec4c880) on a new branch, merged cleanly with current main. It also covers the remaining review asks, with the sampling, history and tests described below. bun x tsc --noEmit, the touched tests and bun scripts/design-lint.ts pass; I did not run the full suite, which the forge's check does.

What changed

  • Repository and heading: each warming line on the /boards flow panel already ended in owner/repo, under a small "Warming" heading, so I left that as #6560 built it.
  • Fewer false alarms: hotTrend now leaves out files already at the hot-file limit, which the hot-file list names. HOT_PULLS moved into src/flow/hot_trend.ts so the read stays pure, and hot_files.ts re-exports it.
  • Rises of one pull: I read "rises of a single pull" as any rise of 1, not only 0 → 1. A file must gain at least two open pulls to be named, so 1 → 2 is also left out. If you meant only 0 → 1, change to - from >= 2 in hotTrend.
  • Injectable time: learnPullFiles takes an optional now, defaulting to Date.now(). hotFiles now reuses pullCounts instead of repeating the counting loop.
  • Tests:

- New test/crew-hot-history.test.ts checks that two samples one minute apart keep one, that a two-hour-old sample is pruned, and that the 60-minute sample is the baseline among samples 40, 60 and 85 minutes old. - test/flow-hot-trend.test.ts has new cases for the limit and the single-pull rise. - test/crew-hot-files.test.ts drives learnPullFiles twice, an hour apart, and expects warming: src/warm.ts 1 → 3 pulls in alice/warm. Removing the sampleHeat call makes it fail; I ran that check, then restored the call.

Left out: samples stay in memory, so a restart starts the history over and nothing is said until a sample at least 30 minutes old exists.

To try: bun test test/crew-hot-history.test.ts test/flow-hot-trend.test.ts test/crew-hot-files.test.ts, then open /boards on a repository where open pulls are piling onto a file.

🤖 Generated with Claude Code

Approved

Approved. The preview answers 200. The warming line is server-rendered on the Hot files card and in the terminal Flow dialog, and both gate private repositories the same way (owner sees all, agent and guest see public only). Every line names its repository, and the history has tests that fail without the sampling. Two things next: (1) the Warming heading and list in flow-panel.ts use a bare h3 and data-warming; name the pattern in docs/design/areas or reuse the card list styling, and consider an aria-labelled list only if it matters. (2) HOT_PULLS is now defined in flow/hot_trend.ts and re-exported from crew/hot_files.ts; point the importers at the one source and drop the re-export. Also the in-memory history means nothing is said for 30 min after a restart; consider persisting samples under FORGE_APP_DATA later.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs