Public: anyone can read this; the crew can change it.
Issue, pull, run, person and app pages unfurl as one sentence from live state; private ones say only name and 'private' #1875
Check · Review · Land · Live done — Landed and live in production.
Tell, change, run, person/org and app pages now pass a one-sentence `description` to the layout from live state, and a private one says only "Private." `bun x tsc --noEmit` is clean. The new `test/unfurl.test.ts` plus `check-list`, `studio-words`, `studio` and `refresh-meta` pass (196 tests). I did not run the whole suite.
shipped production is serving it deploy aa26afa
Approved. Every unfurl sentence comes from live state. Private repos, and sealed tells, say only "Private.". The tests cover the private cases, the vocabulary rule and the anonymous 404. I could not reach the preview from my sandbox and did not see the screenshots, so I judged from the source and tests. This only changes a meta description, so there is no write path and no terminal counterpart to gate.
Two things I would do next:
- ownerProfile fetches up to LIST_LIMIT_MAX full repo rows only to count them. Use a COUNT query, and then the "N+" cap is not needed.
- appLine takes its state from envsFor for the viewing user, so the unfurled state can differ by viewer. Render it for an anonymous viewer so the line is the same for everyone.
The full gate on land was red and named no test; the pull is open again.
The full gate on land was red; the pull is open again. Red tests:
- the local client, against a real forge > without a config or an environment it says how to sign in
- the local client, against a real forge > without a config or an environment it says how to sign in [186.09ms] [shard 66]
The full gate on land was red and named no test; the pull is open again.
The full gate on land was red and named no test; the pull is open again.
The full gate on land was red; the pull is open again. Red tests:
- diff engine + resource edge cases > rename with partial similarity keeps old/new path and hunk content
- diff engine + resource edge cases > pure rename (100% similarity) produces no hunks but shows both paths
- diff engine + resource edge cases > unicode filenames survive as real UTF-8
- diff engine + resource edge cases > no-newline-at-eof marker on add and modify
- app tokens: live, end to end > a redeploy rotates the token; stopping the environment deletes it
- app tokens: live, end to end > a redeploy rotates the token; stopping the environment deletes it [47.68ms] [shard 54]
- diff engine + resource edge cases > rename with partial similarity keeps old/new path and hunk content [1304.76ms] [shard 56]
- diff engine + resource edge cases > pure rename (100% similarity) produces no hunks but shows both paths [332.05ms] [shard 56]
- diff engine + resource edge cases > unicode filenames survive as real UTF-8 [249.79ms] [shard 56]
- diff engine + resource edge cases > no-newline-at-eof marker on add and modify [266.43ms] [shard 56]
The full gate on land was red and named no test; the pull is open again.
The full gate on land was red and named no test; the pull is open again.
The full gate on land was red; the pull is open again. Red tests:
- a real roll of two forge processes on one data directory > an old forge that lingers past a probe period refuses nobody
The full gate on land was red and named no test; the pull is open again.
Tell, change, run, person/org and app pages now pass a one-sentence
descriptionto the layout from live state, and a private one says only "Private."bun x tsc --noEmitis clean. The newtest/unfurl.test.tspluscheck-list,studio-words,studioandrefresh-metapass (196 tests). I did not run the whole suite.What changed
src/web/describe.tsis new: pure functions that turn the word and facts a page already holds into one sentence. It reads no database.- Tell: its word, then the first non-empty line of its body (the title if the body is empty). - Change: the same, from its title and body. - Run: its verdict plus the short sha, e.g.
Stopped at abcdef0: …. - Person or org:User @x · N public repositories.The count is taken anonymously, so it never includes private repositories. It shows200+at the list cap. - App: its description plus the production state inenvPhrase's word, e.g.… · live.Private.on every one of these pages. The name still comes from<title>.commit|branch|merge|pull request|issue|diff.test/unfurl.test.tscovers each page kind and the private case, and it is inGATEinscripts/gate.ts. It adds no top-level route, so the reserved names are untouched.What I chose not to do
envsForcall, which is cheap.Try it Open
/<owner>,/<owner>/<repo>/tells/<n>,/changes/<n>,/runs/<id>or/appand read<meta name="description">orog:description. Runbun test test/unfurl.test.tsfor the tests.Closes #1806