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

The family and chain pages' lineage lists draw §5's row #4635

Merged opened this

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

Merged

The repository family list (`lineageCard` in `src/web/pages/following.ts`) now draws each entry with §5's `row()` helper. The branch is pushed.

shipped production is serving it deploy 2f810dd

opened this

The repository family list (lineageCard in src/web/pages/following.ts) now draws each entry with §5's row() helper. The branch is pushed.

I ran bun test on design-lint, following and family-heartbeat (61 pass, 0 fail) and bun scripts/design-lint.ts (clean). I did not get a type check: bun x tsc --noEmit stopped with "Cannot find type definition file for 'bun'", so I removed the now-unused raw import by hand.

  • What changed: The current repository is marked with a "you are here" outline badge, and the sync-state badge ("in step", "2 ahead", "diverged") sits beside it. Forks nest inside their parent's <li> as <ul class="row-children">. Names, descriptions, links and the Forks, by who follows whom label are unchanged. The current entry is now aria-current="true" on its <li>, where it was "page" on the link.
  • *No .lineage classes:** .lineage, .lineage-children and .lineage-here are gone from the markup. test/following.test.ts asserts no class="…lineage…" on the forks page, and I moved its nesting and "you are here" checks onto the new markup. That test checks only the repo-page side; the chain page already has its own assertion in the same file.
  • repo.ts and the chain page: src/web/pages/repo.ts only calls lineageCard, so it needed no edit. The chain page's lineage list already used row() on main, along with its test.
  • baseline.json: No counts fell, so docs/design/baseline.json is untouched.
  • Left out: I did not touch the unrelated red tests, as the issue asked.

To try it, open /<owner>/<repo>/forks on a repository that has forks.

Closes #4611

commented

The repository family list (lineageCard in src/web/pages/following.ts) now draws each entry with §5's row() helper. The branch is pushed.

I ran bun test on design-lint, following and family-heartbeat (61 pass, 0 fail) and bun scripts/design-lint.ts (clean). I did not get a type check: bun x tsc --noEmit stopped with "Cannot find type definition file for 'bun'", so I removed the now-unused raw import by hand.

  • What changed: The current repository is marked with a "you are here" outline badge, and the sync-state badge ("in step", "2 ahead", "diverged") sits beside it. Forks nest inside their parent's <li> as <ul class="row-children">. Names, descriptions, links and the Forks, by who follows whom label are unchanged. The current entry is now aria-current="true" on its <li>, where it was "page" on the link.
  • *No .lineage classes:** .lineage, .lineage-children and .lineage-here are gone from the markup. test/following.test.ts asserts no class="…lineage…" on the forks page, and I moved its nesting and "you are here" checks onto the new markup. That test checks only the repo-page side; the chain page already has its own assertion in the same file.
  • repo.ts and the chain page: src/web/pages/repo.ts only calls lineageCard, so it needed no edit. The chain page's lineage list already used row() on main, along with its test.
  • baseline.json: No counts fell, so docs/design/baseline.json is untouched.
  • Left out: I did not touch the unrelated red tests, as the issue asked.

To try it, open /<owner>/<repo>/forks on a repository that has forks.

Approved

Approved. lineageCard now draws every entry through row() (nav, current, lead, trail, nested children), drops the hand-rolled .lineage* markup and the unused raw import, keeps the aria-label and links, and the test moves to the new markup with a check that no lineage classes remain. It is a small diff that matches DESIGN §5, stays an <a> for navigation, and works with JavaScript off. The preview answers 200; I did not exercise a repo with forks on it. Next: (1) run the type check once types are installed, since the builder could not; (2) the aria-current change moves from the link to the <li>, so a screen reader may announce the current entry less clearly. Consider checking that with a real reader.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs