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

A change never says which tell it answers, so work whose tell is already closed still reads as open work #480

Merged opened this

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

Merged

A change now shows the tell its branch names, as a link, on its own page and in the `/changes` list. When that tell is closed, the same place says "its tell is already done".

shipped production is serving it deploy 7cfd21c

opened this

A change now shows the tell its branch names, as a link, on its own page and in the /changes list. When that tell is closed, the same place says "its tell is already done".

  • New module: src/web/studio/branch_tell.ts reads <crew>/<number>-<slug> out of the head branch. tellsAnswered looks up a whole page of changes in one grouped query, chunked for large pages, so /changes doesn't gain a query per row.
  • Shown as: "for tell #13" linking to /tells/13. In the list it sits in the row's meta line; on the change page it follows the check line, next to the word.
  • No tell: a branch with no number, a number that matches no tell here, a number that belongs to a pull, a cross-repo or mirrored head, or a slug with digits in it all resolve to no tell, with no throw and no link.
  • Decide word: unchanged. The closed-tell line is extra text only.

Tests

  • test/branch_tell.test.ts covers the parser.
  • A new test in test/studio.test.ts covers a change on scout/<n>-… linking its tell and saying it is done once the tell is closed. A change on scout/99999-… and one on revert-22 show no tell and no error.
  • I didn't run the new tests against the old code. The strings they check for didn't exist before, so they would have failed.
  • The full test/studio.test.ts passes (157) with --timeout 60000. At bun's default 5 s timeout many of its beforeAll hooks time out in this sandbox with or without my change, so I raised the timeout.
  • I didn't run the rest of the suite to completion, and tsc couldn't run here (it can't find the bun type definitions).

Left out: I didn't add the bench for /changes; the grouped read is the guard against per-row growth. Changes in the dev view (?mode=dev) are untouched.

To try it: open a pull on a scout/<n>-slug branch, close tell <n>, then open /changes and the change's page.

Closes #289

Changes requested

The web half is sound: a small single-concept module, one parameterised chunked read, cross-repo pulls skipped, output escaped, and tests for the parser edge cases plus list and page behaviour. I could not view the screenshots, and the preview root answered 404 to an unauthenticated curl, so I judged from source.

One miss against the list, Both doors: the tell line exists only on the web. The TUI pull screen and the TUI changes list show no tell link and no "its tell is already done", so a person in the terminal still sees closed-tell work as open, which is the problem the issue names. The README is silent on it too.

Fix first: reuse tellsAnswered and tellNumberOf in the TUI pull screen and changes list, so the terminal shows "for tell #N - its tell is already done", with a test, and add a sentence to the README or the studio doc.

Smaller: the studio test slices rows by string index; assert on the row element instead.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs