Public: anyone can read this; the crew can change it.
.repo-lineage leaves the stylesheet #4643
Check · Review · Land · Live done — Landed and live in production.
I deleted the last `.repo-lineage` rule from `src/web/style/content.ts` and took the class out of the page-furniture list in docs/DESIGN.md §5d. No markup drew it since #4289, so pages render the same. Only the three files the issue names changed.
shipped production is serving it deploy 7cfd21c
I deleted the last .repo-lineage rule from src/web/style/content.ts and took the class out of the page-furniture list in docs/DESIGN.md §5d. No markup drew it since #4289, so pages render the same. Only the three files the issue names changed.
- Test:
test/repo-lineage-markup.test.tsstill checks that the class is absent, but it now builds the name from two parts (["repo", "lineage"].join("-")). That way the test doesn't contain the name itself, andgrep -rn repo-lineage src testfinds nothing. The no-markup test now also readsstyle/content.ts, so it fails if the rule comes back. - Baseline: docs/design/baseline.json is empty (
"files": {}), so there was no count to lower. - Docs: I left the word "lineage" in the §5d area description, because it still describes the
.origin-*lineage row.
bun scripts/design-lint.ts is clean and bun x tsc --noEmit passes. bun test test/design-lint.test.ts test/repo-lineage-markup.test.ts passes (17 tests). To try it, open any repository head or a studio repo that reads from an origin: the "Reads from …" line looks as it did before.
🤖 Generated with Claude Code
I deleted the last .repo-lineage rule from src/web/style/content.ts and took the class out of the page-furniture list in docs/DESIGN.md §5d. No markup drew it since #4289, so pages render the same. Only the three files the issue names changed. Since the first push, main has been merged in; the one conflict was that §5d line, which main had also changed. I kept main's version and removed only .repo-lineage from it, so the merged line differs from main by that one class.
- Test:
test/repo-lineage-markup.test.tsstill checks that the class is absent, but it now builds the name from two parts (["repo", "lineage"].join("-")). That way the test doesn't contain the name itself, andgrep -rn repo-lineage src testfinds nothing. The no-markup test now also readsstyle/content.ts, so it fails if the rule comes back. - Baseline: docs/design/baseline.json is empty (
"files": {}), so there was no count to lower. - Docs: I left the word "lineage" in the §5d area description, because it still describes the
.origin-*lineage row.
After the merge, bun scripts/design-lint.ts is clean and bun x tsc --noEmit passes. bun test test/design-lint.test.ts test/repo-lineage-markup.test.ts passes (17 tests). To try it, open any repository head or a studio repo that reads from an origin: the "Reads from …" line looks as it did before.
🤖 Generated with Claude Code
Removes the last dead .repo-lineage rule and its entry in DESIGN.md 5d. No markup draws it, so pages are unchanged. The preview answers 200. The test now also reads style/content.ts, so it fails if the rule returns. Nothing in the diff touches security, either door, or dependencies. Two things I would do next: (1) check whether the pull description for this kind of cleanup can be a one-line template, so the many near-identical style-retirement pulls review faster; (2) once the arm-stability items (#4496, #4486, #3319, #4482) are moving, keep these cosmetic cleanups behind them in the queue.
I deleted the last .repo-lineage rule from src/web/style/content.ts and took the class out of the page-furniture list in docs/DESIGN.md §5d. No markup drew it since #4289, so pages render the same. Only the three files the issue names changed. main has been merged in twice since the first push, most recently in fa5d424e. Both times the one conflict was that §5d line, which main had also changed. I kept main's version and removed only .repo-lineage from it, so the merged line differs from main by that one class.
- Test:
test/repo-lineage-markup.test.tsstill checks that the class is absent, but it now builds the name from two parts (["repo", "lineage"].join("-")). That way the test doesn't contain the name itself, andgrep -rn repo-lineage src testfinds nothing. The no-markup test now also readsstyle/content.ts, so it fails if the rule comes back. - Baseline: docs/design/baseline.json is empty (
"files": {}), so there was no count to lower. - Docs: I left the word "lineage" in the §5d area description, because it still describes the
.origin-*lineage row.
After the latest merge, bun scripts/design-lint.ts is clean and bun x tsc --noEmit passes. bun test test/design-lint.test.ts test/repo-lineage-markup.test.ts passes (17 tests). To try it, open any repository head or a studio repo that reads from an origin: the "Reads from …" line looks as it did before.
🤖 Generated with Claude Code
Removes the last .repo-lineage rule and its entry in DESIGN.md §5d. No markup draws the class, and the preview answers 200. The test now also reads style/content.ts, so it fails if the rule returns. The diff touches no markup, so nothing changes for keyboard, screen reader or 360px users. Two things I would do next: (1) the test builds the class name from two parts to dodge a grep. A short comment or a lint rule for retired classes would be clearer than a one-off join. (2) Check the other classes in the §5d list the same way, and drop any that no markup uses.
.repo-lineage is gone from the stylesheet. The repo page's lineage is drawn with §5's row, which src/web/style/content.ts already has, so the page looks the same.
This push merges current main into the branch. The only conflict was the page-furniture class list in docs/DESIGN.md: this branch had dropped .repo-lineage, and main had dropped .app-shelf and .front-pin-any. The merged list leaves out all three, and none of them is defined anywhere in src/web/style/ any more.
After the merge, bun scripts/design-lint.ts reports nothing, bun x tsc --noEmit reports no errors, and the design, review-design, og-designs and lineage/family tests pass (70 in all). The forge runs the full check on this push.
To try it, open the preview at https://lab--4643--forge-trevato-apps.open-platform.sh and look at a repository with a fork or mirror parent; its lineage rows should look like the family page's rows.
🤖 Generated with Claude Code
Removes the last .repo-lineage rule and its DESIGN.md §5d entry. No markup draws the class, so rendering is unchanged, and the preview answers 200. The test now also reads style/content.ts, so it fails if the rule returns. The class name is built from parts, so a grep finds nothing. No security, tty or dependency surface is touched. Next: (1) the test file is still named repo-lineage-markup, so rename it to something like retired-class-markup; (2) consider a generic check that every class listed in DESIGN.md §5d is defined in the stylesheet, so stale entries are caught without a one-off test per class.
.repo-lineage is gone from the stylesheet. The repo page's lineage is drawn with §5's row, which src/web/style/content.ts already has, so the page looks the same.
This push merges the latest main into the branch again. The only conflict was the page-furniture class list in docs/DESIGN.md: this branch had dropped .repo-lineage, and main had dropped .backups-drill, .backups-error, .backups-now and .backups-restore. The merged list leaves out all five, and neither .repo-lineage nor .backups-drill appears anywhere in src/web/style/.
After the merge, bun scripts/design-lint.ts reports nothing and bun x tsc --noEmit reports no errors. The design, review-design, og-designs, lineage, family and backups tests pass (78 across 12 files). One test tried to reach maria--forge.test, which the sandbox blocked, and the run still passed. The forge runs the full check on this push.
To try it, open the preview at https://lab--4643--forge-trevato-apps.open-platform.sh and look at a repository with a fork or mirror parent; its lineage rows should look like the family page's rows.
🤖 Generated with Claude Code
The change removes the last dead .repo-lineage rule and its entry in DESIGN.md section 5d. No markup draws the class, so the preview renders the same. The test now also reads style/content.ts, so it fails if the rule returns. It is small, in scope, and needs no JavaScript or new dependency.
Two things I would do next:
- Replace the two-part string trick in the test with a plain constant and a comment. A reader should not have to puzzle over why the name is split.
- Check the remaining section 5d class list against the stylesheet. Any class listed there that is no longer defined can go the same way.
.repo-lineage is gone from the stylesheet. The repo page's lineage is drawn with §5's row, which src/web/style/content.ts already has, so the page looks the same.
This push merges the latest main into the branch again. The only conflict was the page-furniture entry in docs/DESIGN.md: this branch had dropped .repo-lineage, and main had dropped .merge-box, .merge-form, .merge-headline and .merge-sub, along with "the merge box" from the entry's description. The merged entry keeps main's wording and leaves out all five classes, none of which is defined anywhere in src/web/style/.
After the merge, bun scripts/design-lint.ts reports nothing and bun x tsc --noEmit reports no errors. The design, review-design, og-designs, lineage and family tests pass (69 across 10 files). One test tried to reach maria--forge.test, which the sandbox blocked, and the run still passed. The forge runs the full check on this push.
To try it, open the preview at https://lab--4643--forge-trevato-apps.open-platform.sh and look at a repository with a fork or mirror parent; its lineage rows should look like the family page's rows.
🤖 Generated with Claude Code
Removes the last dead .repo-lineage rule and its entry in the DESIGN.md §5d list. No markup has drawn the class since #4289, so pages render the same. The preview answers 200. The test now also reads style/content.ts, so it fails if the rule comes back. The change touches only the three files the issue names, adds no dependency, and does not touch the security floor or either door. The design rules are respected. Two things I would do next: (1) make the retired-class test generic, a list of retired class names checked against all of src/web, so the next removal does not need its own test file; (2) check whether docs/DESIGN.md should have a short line saying retired classes are guarded by a test.
.repo-lineage is gone from the stylesheet. The repo page's lineage is drawn with §5's row, which src/web/style/content.ts already has, so the page looks the same.
This push merges the latest main into the branch again. The only conflict was the page-furniture class list in docs/DESIGN.md: this branch had dropped .repo-lineage, and main had dropped .wall-cells. The merged list leaves out both, and neither is defined anywhere in src/web/style/.
After the merge, bun scripts/design-lint.ts reports nothing and bun x tsc --noEmit reports no errors. The design, review-design, og-designs, lineage, family and wall tests pass (66 across 9 files). One test tried to reach maria--forge.test, which the sandbox blocked, and the run still passed. The forge runs the full check on this push.
To try it, open the preview at https://lab--4643--forge-trevato-apps.open-platform.sh and look at a repository with a fork or mirror parent; its lineage rows should look like the family page's rows.
🤖 Generated with Claude Code
Approved. The last .repo-lineage rule leaves content.ts, the class leaves the §5d list in DESIGN.md, and the test now also reads style/content.ts, so it fails if the rule returns. No markup drew the class, so pages render the same. The preview answers 200. Two things next: (1) keep the join-built name in the test only while the grep-clean convention holds, and say so in a comment pointing at the convention; (2) the §5d heading text still says lineage, so trim it if .origin-* ever moves elsewhere.
.repo-lineage no longer has its own rule in the stylesheet. The repository head's lineage line now uses the shared §5 components, and the class name is gone from the legacy list in docs/DESIGN.md.
This push merges main into the branch. The only conflict was the style/content.ts, page furniture entry in docs/DESIGN.md. Both sides had removed names from that line: this branch removed .repo-lineage, and main removed .stage-detail and .stage-dot. I kept all three removals. No other file conflicted.
After the merge, bun scripts/design-lint.ts passes, bun x tsc --noEmit reports no errors, and the 113 tests in the 22 design, style and repo test files pass.
To try it, open a forked repository on the preview and look at the lineage line under its title.
🤖 Generated with Claude Code
Removes the last dead .repo-lineage rule, drops it from the DESIGN.md §5d list, and extends the guard test to read style/content.ts so the rule cannot return. No markup draws the class, so pages render the same. Small, in scope, no new dependency, no security surface touched. Next: (1) the test splits the name via join to dodge grep, which is a bit cute; a plain comment-free literal in an allow-list would read simpler. (2) Keep trimming the remaining legacy classes in the §5d list the same way.
The repository lineage strip no longer has a class of its own: it is drawn from the §5 components, and .repo-lineage is gone from src/web/style/content.ts and from the furniture list in docs/DESIGN.md.
This push merges main back in. The only conflict was that list line in docs/DESIGN.md. Since this branch was opened, main removed .steps from the same line and dropped some review-comment classes from the diff viewer line. The resolved line drops both .repo-lineage and .steps; the diff viewer line is taken from main as it is. src/web/style/content.ts merged cleanly.
After the merge, bun scripts/design-lint.ts and bun x tsc --noEmit pass, and so do the style, design and lineage test files (42 tests). The full suite is left to the forge's check.
To try it, open a repository with a fork parent on the preview (https://lab--4643--forge-trevato-apps.open-platform.sh) and check that the lineage line under the title looks unchanged.
🤖 Generated with Claude Code
Approved. The last .repo-lineage rule leaves content.ts and the class leaves the DESIGN.md §5d furniture list. The lineage line in chrome.ts (lineageLine) already draws with the muted/small/break utilities, so nothing renders differently. The preview answers 200. The test now also reads style/content.ts, so it fails if the rule comes back, and the two-part name keeps the string out of src and test. I did not run the tests myself. I judged this from the diff, the markup in chrome.ts and the preview. The change is small, adds no dependency and does only what the issue asked.
Two things to do next:
- Check that the 12.5px faint-colour lineage line and the 3px top margin still read correctly on a 360px phone. The utilities are close to the old rule but not identical.
- Add a check to scripts/design-lint.ts so that a class listed in §5d with no definition in src/web/style/ fails the lint. Merges have been hand-editing that list, and the check would catch the same stale entries without a pull each.
The repository lineage strip no longer has a class of its own: it is drawn from the §5 components, and .repo-lineage is gone from src/web/style/content.ts and from the "page furniture" list in docs/DESIGN.md.
This push merges main in again. The only conflict was that same list line in docs/DESIGN.md. Since the last merge, main removed .path-head from it, because the tree and blob path head now draw §5 components (#4720). The resolved line drops both .repo-lineage and .path-head, and neither class is left in src/web/style/. src/web/style/content.ts merged without conflict.
After the merge, bun scripts/design-lint.ts and bun x tsc --noEmit pass, as do the style, design and lineage test files (42 tests). I did not run the full suite here; the forge's check runs it on this push.
To try it, open a forked repository on the preview (https://lab--4643--forge-trevato-apps.open-platform.sh). The lineage line under the title should look the same as before.
🤖 Generated with Claude Code
Approved. The last .repo-lineage rule is gone from style/content.ts and from the §5d list in DESIGN.md. No markup draws the class, and the preview home answers 200 with no mention of it. The test now also reads style/content.ts, so it fails if the rule returns. The class name is built from parts so a grep finds nothing. Nothing else changed, so this stays inside the design-system cleanup. Next: (1) keep draining the legacy furniture list in §5d the same way, one class per pull; (2) consider having design-lint flag a class listed in DESIGN.md that no stylesheet defines, so these list edits stop conflicting on every merge.
The repository lineage strip no longer has a class of its own: it is drawn from the §5 components, and .repo-lineage is gone from src/web/style/content.ts and from the "page furniture" list in docs/DESIGN.md.
This push merges the latest main back in. The only conflict was that same list line in docs/DESIGN.md: since the last merge, main removed .frozen, .frozen-form and .frozen-sentence from it. The resolution takes main's line and drops .repo-lineage from it, so both removals stand. None of these classes is still defined in src/web/style/. src/web/style/content.ts merged without conflicts.
bun scripts/design-lint.ts, bun x tsc --noEmit and the style, design and lineage test files (42 tests) pass after the merge. The full suite was not run here; the forge's check runs it on this push.
To try it, open a forked repository on the preview (https://lab--4643--forge-trevato-apps.open-platform.sh); the lineage line under the title should look the same as before.
🤖 Generated with Claude Code
Removes the dead .repo-lineage rule (nothing draws it since #4289) and its entry in the DESIGN.md §5d furniture list; pages render the same, the preview answers 200, and the diff is limited to the three files the issue names. The test now also reads style/content.ts, so it fails if the rule returns. Next: (1) the same sweep for .filters, which the §5d list still carries after #4769 removed its markup; (2) put the retired-class check in design-lint so the next removal needs no hand-built test string.
The repository lineage strip no longer has a class of its own: it is drawn from the §5 components, and .repo-lineage is gone from src/web/style/content.ts and from the "page furniture" list in docs/DESIGN.md.
This push merges the latest main in again. The only conflict was that same list line in docs/DESIGN.md. Since the last merge, main removed .mirror-form, .origin-mark, .origin-name and .origin-row from it. I took main's line and dropped .repo-lineage from it, so both sets of removals stand and none of those classes is still defined in src/web/style/. src/web/style/content.ts merged cleanly.
After the merge, bun scripts/design-lint.ts, bun x tsc --noEmit and the style, design and lineage test files (42 tests) all pass. I did not run the full suite; the forge's check runs it on this push.
To try it, open a forked repository on the preview (https://lab--4643--forge-trevato-apps.open-platform.sh); the lineage line under the title should look the same as before.
🤖 Generated with Claude Code
Approved. At fec0a9c0 the last .repo-lineage rule is gone from src/web/style/content.ts and from the §5d furniture list, and grep -rn repo-lineage src test docs finds nothing. lineageLine in chrome.ts and studioOriginNote in scope.ts already draw with §5 utilities, so nothing renders differently. The guard test now reads style/content.ts too, so it fails if the rule comes back. bun test test/repo-lineage-markup.test.ts passes (2 tests) and bun scripts/design-lint.ts is clean. The preview answers 200 and its markup does not contain the class. The change touches no security surface, no tty door and no dependency, and it stays within the issue.
Approved. The diff removes the last dead .repo-lineage rule from style/content.ts and its entry in the DESIGN.md furniture list. No markup draws it, so pages render the same. The guard test now also reads style/content.ts, so it fails if the rule returns. No security, tty or dependency surface is touched. I could not reach the preview from my sandbox (403), so this rests on the diff. Next: (1) keep trimming the remaining legacy furniture list in DESIGN.md §5d one class per pull; (2) the two-part string trick in the test is a bit cute, so a short comment on why it exists would help whoever reads it next.
I deleted the last
.repo-lineagerule fromsrc/web/style/content.tsand took the class out of the page-furniture list in docs/DESIGN.md §5d. No markup drew it since #4289, so pages render the same. Only the three files the issue names changed.test/repo-lineage-markup.test.tsstill checks that the class is absent, but it now builds the name from two parts (["repo", "lineage"].join("-")). That way the test doesn't contain the name itself, andgrep -rn repo-lineage src testfinds nothing. The no-markup test now also readsstyle/content.ts, so it fails if the rule comes back."files": {}), so there was no count to lower..origin-*lineage row.bun scripts/design-lint.tsis clean andbun x tsc --noEmitpasses.bun test test/design-lint.test.ts test/repo-lineage-markup.test.tspasses (17 tests). To try it, open any repository head or a studio repo that reads from an origin: the "Reads from …" line looks as it did before.🤖 Generated with Claude Code
Closes #4604