Public: anyone can read this; the crew can change it.
"Look" means three things, two of them on the same page #176
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/172-look-means-three-things-two-of-them-on-t → main 1 commit fork
3 files
changed +21
−4
docs/STUDIO.md +6 −1
| @@ -196,7 +196,7 @@ a tell's dependencies and the change that closes it, a run's own tell, the | ||
| 196 | 196 | search box and the command palette — so a person is never handed two |
| 197 | 197 | addresses for one thing. The app page's own footer (`the map · everything |
| 198 | 198 | told · every change`, and *Every run* above **Now**) and the repository |
| 199 | header's tabs (`Told`, `Look`, in place of dev's `Issues`, `Pulls`) link | |
| 199 | header's tabs (`Told`, `Changes`, in place of dev's `Issues`, `Pulls`) link | |
| 200 | 200 | to `/tells` and `/changes`; dev's `Commits`/`Branches` stay dev's alone. |
| 201 | 201 | `/runs` has no second noun — the studio and dev share the one address |
| 202 | 202 | there. What a page *posts* to never moves with the noun: ship, close, |
| @@ -204,6 +204,11 @@ comment and decide keep posting under `/issues/:number` and | ||
| 204 | 204 | `/pulls/:number`, which is what `form-action 'self'` and the same-origin |
| 205 | 205 | checks are written against. |
| 206 | 206 | |
| 207 | *Look* is spoken for by the five-word table above (a pull green and ready | |
| 208 | for a person's own look) and by the picture card on one (`lookCard`, | |
| 209 | docs/APPS.md, *The look*); the tab to this list, and the list itself, use | |
| 210 | *change* instead, so the word never means a third thing on the same page. | |
| 211 | ||
| 207 | 212 | A row's word comes from `tellWord`, `pullWord` or `runWord` — the one place |
| 208 | 213 | each is decided, never re-derived here. `?word=told|working|look|shipped| |
| 209 | 214 | stopped` is a link at the top of each list, never a form, so a filtered |
src/web/chrome.ts +5 −2
| @@ -173,9 +173,12 @@ export function scopeHeader( | ||
| 173 | 173 | shortcut: "g i", |
| 174 | 174 | }, |
| 175 | 175 | { |
| 176 | label: studio ? "Look" : "Pulls", | |
| 176 | // "Look" is the five-word state a green pull is in, and the name of | |
| 177 | // the picture card on one — not the noun for this list, which is the | |
| 178 | // same one `/changes` and "Every change" already use. | |
| 179 | label: studio ? "Changes" : "Pulls", | |
| 177 | 180 | href: studio ? changesHref(base) : `${base}/pulls`, |
| 178 | icon: studio ? "eye" : "pull", | |
| 181 | icon: "pull", | |
| 179 | 182 | ...(facts.openPulls === null ? {} : { count: facts.openPulls }), |
| 180 | 183 | current: active === "pulls", |
| 181 | 184 | shortcut: "g p", |
test/studio-words.test.ts +10 −1
| @@ -434,7 +434,16 @@ describe("dev's vocabulary never reaches a studio page", () => { | ||
| 434 | 434 | // same path — and nothing else in this file changes. |
| 435 | 435 | pages = [ |
| 436 | 436 | { word: "home", path: "/" }, |
| 437 | { word: "app", path: repoPath }, | |
| 437 | { | |
| 438 | // The repo header's tab strip (every studio page carries it): the | |
| 439 | // tab to the changes list names its own noun, never the five-word | |
| 440 | // "look" a green pull earns, and never that word's own eye icon — | |
| 441 | // both stay the picture card's and the word badge's alone (#172). | |
| 442 | word: "app", | |
| 443 | path: repoPath, | |
| 444 | shows: [`href="#i-pull"/></svg>Changes`], | |
| 445 | hides: [`href="#i-eye"/></svg>Look`, `>Look<`], | |
| 446 | }, | |
| 438 | 447 | { |
| 439 | 448 | word: "tell", |
| 440 | 449 | path: `${repoPath}/issues/${tellNumber}`, |
new above
offline