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

Design: an app's address in the app strip uses §5's link styles, and app-url leaves §5d #4031

Merged opened this

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

Merged

scout/forge:scout/3961-design-an-app-s-address-in-the-app-strip → main 3 commits fork

  • Merged. scout/3961-design-an-app-s-address-in-the-app-strip was merged into main as 28a3f84.

Review

Sign in to review this change.
4 files changed +4 −6
docs/DESIGN.md +1 −1
@@ -396,7 +396,7 @@ gone, so this list only shrinks.
396396 - **`style/content.ts`, code view** — the source view and the syntax-highlight token classes `highlight-html.ts` builds as `tok-${kind}`: `.blob-view` `.ln` `.tok-attribute` `.tok-comment` `.tok-constant` `.tok-decorator` `.tok-deleted` `.tok-emphasis` `.tok-function` `.tok-heading` `.tok-inserted` `.tok-keyword` `.tok-link` `.tok-meta` `.tok-number` `.tok-operator` `.tok-plain` `.tok-property` `.tok-punctuation` `.tok-regex` `.tok-string` `.tok-tag` `.tok-type` `.tok-variable`
397397 - **`style/content.ts`, prose (markdown)** — table cell alignment, built by `markdown.ts` as `ta-${align}`: `.ta-c` `.ta-r`
398398 - **`style/content.ts`, diff viewer** — the diff table: its gutters, line kinds, file head and inline review comments: `.add` `.del` `.dh` `.diff` `.diff-body` `.diff-head` `.diff-note` `.diff-path` `.diff-stat` `.diff-stub` `.diff-summary` `.diff-table` `.dl` `.dl-review` `.dn` `.dn-comment` `.nonl` `.rc-hidden` `.rc-resolve` `.rc-resolved` `.wd`
399 - **`style/content.ts`, apps, runs, and the crew** — run pages, their logs and checks (a pull's look is §5's **look**): `.app-url` `.ln-forge` `.ln-pulse` `.ln-say` `.ln-tool` `.ln-you` `.log-tail-row` `.pinned-failures` `.pinned-slot` `.run-actions` `.run-jump` `.run-live` `.run-steer` `.run-summary` `.tests-bar` `.tests-words` `.txt` `.who`
399 - **`style/content.ts`, apps, runs, and the crew** — run pages, their logs and checks (a pull's look is §5's **look**): `.ln-forge` `.ln-pulse` `.ln-say` `.ln-tool` `.ln-you` `.log-tail-row` `.pinned-failures` `.pinned-slot` `.run-actions` `.run-jump` `.run-live` `.run-steer` `.run-summary` `.tests-bar` `.tests-words` `.txt` `.who`
400400 - **`style/content.ts`, search results** — search results, the inbox's ask cards, the client list and the claim link: `.ask-acts` `.ask-card` `.ask-group` `.ask-kind` `.ask-meta` `.ask-more-acts` `.ask-pick` `.ask-pick-hit` `.ask-short` `.ask-waiting` `.claim-link-box` `.forges-sent` `.live-toggle` `.needs-you` `.no-hits`
401401 - **`pages/board.ts`** — the spend tables `spend.ts` draws, first on the board (the board itself is §5's **board**): `.spend-table` `.spend-totals`
402402 - **`pages/map.ts`** — the map of what waits for what: `.map-ask` `.map-breath` `.map-canvas` `.map-card` `.map-counts` `.map-dot` `.map-edge` `.map-edge-crit` `.map-edge-done` `.map-empty` `.map-list` `.map-main` `.map-meta` `.map-node` `.map-pillars` `.map-rule` `.map-svg` `.map-title` `.map-tool` `.map-tools` `.map-who` `.map-who-i` `.map-who-n` `.map-word` `.map-wrap`
src/web/pages/apps.ts +1 −1
@@ -553,7 +553,7 @@ export function appStrip(ctx: Ctx, repo: Repo): Html {
553553 url,
554554 (u) =>
555555 html`<a
556 class="app-url"
556 class="mono truncate"
557557 href="${base}/app/production/open"
558558 title="Open ${u}"
559559 >${u}</a
src/web/style/content.ts −4
@@ -781,10 +781,6 @@ form.inline { display: inline; margin-left: auto; }
781781 background: var(--card); border: 1px solid var(--border); border-radius: var(--radius);
782782 }
783783 .app-strip > .ico { color: var(--muted-fg); flex: none; }
784 .app-strip .app-url {
785 min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
786 font-family: var(--mono); font-size: 12.5px;
787 }
788784 .app-strip .spacer { flex: 1; }
789785 /* One environment: name and state in the head, the facts and the reason it
790786 failed in the body. A card rather than a row so a deploy error has a whole
test/web-apps.test.ts +2
@@ -323,6 +323,8 @@ describe("apps, runs and the crew on the web", () => {
323323 files.indexOf("</div>", files.indexOf('class="app-strip"')),
324324 );
325325 expect(strip).not.toContain(">App<");
326 // The address wears §5's utilities, not a page-local class.
327 expect(files).not.toContain("app-url");
326328 // bob reads the public app but cannot write it; a visitor neither.
327329 expect(await (await web(studio(bob), "/alice/hello")).text()).not.toContain(
328330 "— Tell the crew",

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs