Public: anyone can read this; the crew can change it.
Quieter pages, rest of #8719: pull page, repository head, design-lint rules, before/after looks, cold-read #8800
Check · Review · Land · Live done — Landed and live in production.
This pull finishes part of #8719: the pull page, the pull list, the repository head and two design-lint rules. Two checklist items are only partly done and the screenshots are missing (see "Left out"). Passing here: `tsc`, `scripts/gate.ts`, `design-lint`, and 470 tests across the touched files. `scripts/fast.ts` exited 2 (the diff includes `scripts/design-lint.ts`, so it can't name tests). I pick…
shipped production is serving it deploy 4915f35
I merged main into the branch and pushed. The only conflict was scripts/design-lint.ts, and I resolved it by dropping this branch's lint work.
main had already landed the same quiet-page rules (#8775): label, caps, echo and inline-colour, held in docs/design/quiet-debt.json. I took main's scripts/design-lint.ts and docs/design/baseline.json as they are. I also removed the caption/label counts I had added and the test I wrote for them in test/design-lint.test.ts. That test file now matches main.
Everything else in the pull is unchanged: the pull page's check line, the dots on pull rows, the repository head without the "Public" badge, and test/pull-quiet.test.ts.
tsc, gate.ts and design-lint pass. Six test files pass (84 tests): pull-quiet, design-lint, repo-audience, issues-quiet, studio-door and live-pages. The forge's check runs the rest.
The pull description is out of date. It says design-lint rules were added here, but those now come from #8775 on main.
I fixed the failing check and pushed. The cause was my own change: pull-list rows now show a status dot where the avatar used to be, and one test still expected the author's initials on those rows.
The failing test was "an anonymous visitor reads one author for one change on all three pages, avatar included" in test/studio-search.test.ts. It compared the initials on the pull list row with the ones on the app page. I changed the assertion because the test was written for the old avatar, not because the code was wrong. It now checks that the list row still names the author ("ivy") and never says "the crew". It checks the initials only on the app page, where the avatar remains.
test/studio-search.test.ts passes (31 tests) and tsc is clean. I did not re-run the full suite here. The earlier check reported only this one failure, so the forge's check on this push will confirm the rest.
Approved. The pull page check is now a dot, its word and the note on one line. The pull list rows lead with a status dot, and the repository head badges only Private. All of it uses the existing dot and word-text components, adds no new class, and works with JavaScript off. The preview serves 200. Every action the pull page had is still on it, the bytes are held by a budget test, and the stale avatar assertion in studio-search was the test's fault and was fixed correctly.
Two things I would do next:
- On pull-list rows,
info.note(for example why checks are red) is now only in the dot's aria-label. A thumb on a 360px phone has no hover, so a sighted phone user sees only the dot or the word. Put the note back in the row meta, at least for the working, look and stopped states thatwordTextalready marks. - Tighten
test/pull-quiet.test.ts.expect(title).toContain("r")passes for almost any title, and therow-trailbadge regex only matches one exact attribute order. Assert on the repo name with the separator, and assert that no.badgesits inside a row.
This pull finishes part of #8719: the pull page, the pull list, the repository head and two design-lint rules. Two checklist items are only partly done and the screenshots are missing (see "Left out"). Passing here:
tsc,scripts/gate.ts,design-lint, and 470 tests across the touched files.scripts/fast.tsexited 2 (the diff includesscripts/design-lint.ts, so it can't name tests). I picked the files covering the pull page, lists, head, live client and lint myself, and the forge's check runs the rest.What changed
src/web/studio/change.ts): the check line is no longer a card around a badge. It is a dot, the state word, the note, the answered-tell link and the deploy link. The "Take it back" card is now a bare line with its action.live.tsnow reads the word from[data-pull-word]instead of.badge.src/web/studio/lists.ts): each row has the status dot in place of the avatar and word badge. The meta line is author · tell · time. States that need someone (working, look, stopped) are still written out. The row's note is now on the dot'saria-labelonly.src/web/chrome.ts): the "Public" badge is gone. Public is the default and the audience sentence already says it. "Private" keeps its badge.test/design-lint.test.ts).-
caption:text-transform: uppercasein a css template. -label: a "Status:" or "State:" label in a string.test/repo-audience.test.ts. It required the "Public" badge, which this pull removes on purpose.Bytes (snappy-style fixture,
test/pull-quiet.test.ts)Test coverage:
test/pull-quiet.test.tsalso checks the dot, no badge in the check line, no "Status:", and that the comment, close, tab and Files actions are still on the pull page.Left out
scripts/cold-read.ts) needs a model and was not run.To try it, open any repository's
/pullsand a pull's page.Closes #8760