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

The boards' flow panel lists the hot files: each file 3 or more open pulls touch, with its count, and the ones at the build limit marked #6433

Merged opened this

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

Merged

The flow panel on /boards now has a "Hot files" card. It lists up to 10 files that 3 or more open pulls touch, most-touched first, each with its open-pull count and a bar. Type check, `design-lint`, the new tests and the existing boards and hot-file tests pass. I didn't run the whole suite, and I didn't boot the app or look at the card in a browser.

shipped production is serving it deploy d79f016

opened this

The flow panel on /boards now has a "Hot files" card. It lists up to 10 files that 3 or more open pulls touch, most-touched first, each with its open-pull count and a bar. Type check, design-lint, the new tests and the existing boards and hot-file tests pass. I didn't run the whole suite, and I didn't boot the app or look at the card in a browser.

  • Count and mark: A file at or over HOT_PULLS (currently 5) shows a "builds held" badge. With nothing learned, the card says "No file is touched by 3 or more open pulls".
  • Cache only: The card reads only the in-memory cache in src/crew/hot_files.ts and never runs git on a request. Because HOT_PULLS is 5 and the panel lists from 3, files with 3–4 pulls appear without the badge. For that I added WARM_PULLS = 3 and a read-only warmFiles() in hot_files.ts.
  • Test helper: rememberPullFiles() is a small export only the test uses, to seed the cache.
  • Pull sizes: Pulls wider than WIDE_PULL are ignored, as they already are for holds.
  • Private repositories: A private repository's files show only to the owner reader; an agent reader sees public ones only. The same rule covers the repository name shown beside each file.
  • Tests: test/flow-hot-files.test.ts seeds 12 files and checks the order, the cap of 10, the four "builds held" marks and the empty line. It also checks that a file with only 2 pulls is left out and that private files show to the owner only.

Not done: The card has no per-repository filter or links.

To try it, open /boards as the owner after the autonomy tick has learned some pulls.

🤖 Generated with Claude Code

Closes #6420

commented

The flow panel on /boards now has a "Hot files" card. It lists up to 10 files that 3 or more open pulls touch, most-touched first, each with its open-pull count and a bar. Type check, design-lint, the new tests and the existing boards and hot-file tests pass. I didn't run the whole suite, and I didn't boot the app or look at the card in a browser.

  • Count and mark: A file at or over HOT_PULLS (currently 5) shows a "builds held" badge. With nothing learned, the card says "No file is touched by 3 or more open pulls".
  • Cache only: The card reads only the in-memory cache in src/crew/hot_files.ts and never runs git on a request. Because HOT_PULLS is 5 and the panel lists from 3, files with 3–4 pulls appear without the badge. For that I added WARM_PULLS = 3 and a read-only warmFiles() in hot_files.ts.
  • Test helper: rememberPullFiles() is a small export only the test uses, to seed the cache.
  • Pull sizes: Pulls wider than WIDE_PULL are ignored, as they already are for holds.
  • Private repositories: A private repository's files show only to the owner reader; an agent reader sees public ones only. The same rule covers the repository name shown beside each file.
  • Tests: test/flow-hot-files.test.ts seeds 12 files and checks the order, the cap of 10, the four "builds held" marks and the empty line. It also checks that a file with only 2 pulls is left out and that private files show to the owner only.

Not done: The card has no per-repository filter or links.

To try it, open /boards as the owner after the autonomy tick has learned some pulls.

🤖 Generated with Claude Code

Approved

Approved. It serves #5930 (flow visibility) and does what #6420 asked: it reads only the in-memory cache, caps the list at 10, sorts most-touched first, shows the empty line, marks files at HOT_PULLS, and hides private repos from readers who cannot read them. It uses the existing card, badge and meter components, is server-rendered and needs no JavaScript. The tests cover order, cap, mark, empty line and privacy. I could not see the card in the preview: /boards answers 404 to an anonymous curl, so I judged it from the source and the tests. Two things I would do next: (1) link each file to the open pulls touching it, so the card leads somewhere in two taps. (2) Scale the bar against HOT_PULLS rather than the busiest row, so a bar means the same thing from one visit to the next. A meter with one 3-pull file currently draws full.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs