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

The terminal line on the account and site pages draws §5's code and row, and .terminal-line leaves the markup #4249

Merged opened this

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

Merged

The terminal line on the account keys page and the site Terminal card no longer carries `.terminal-line` in its HTML. It's now drawn with §5's `.stack.stack-tight`, a `<code class="mono break">` for the command, and `.muted.small.break` for the host key. The tests I ran pass: `test/ssh-site.test.ts`, `test/design-lint.test.ts`, `test/apps.test.ts` and `test/studio`. I couldn't run the type check:…

shipped production is serving it deploy 058b6cf

opened this

The terminal line on the account keys page and the site Terminal card no longer carries .terminal-line in its HTML. It's now drawn with §5's .stack.stack-tight, a <code class="mono break"> for the command, and .muted.small.break for the host key. The tests I ran pass: test/ssh-site.test.ts, test/design-lint.test.ts, test/apps.test.ts and test/studio. I couldn't run the type check: bun x tsc --noEmit stops on "Cannot find type definition file for 'bun'" in this sandbox, and I saw no other type errors.

  • Shared helper: terminalLine() in src/web/ui.ts is also used by the app page, the previews page and the studio home, so those lose .terminal-line too. It now builds on a new terminalCommand(command, fingerprint?, extra?).
  • Account keys page: src/web/pages/account.ts wraps terminalCommand in <div class="mb" id="terminal">. The "terminal is off" paragraph is unchanged.
  • Site Terminal card: src/web/pages/site.ts passes the "SSH keys" link in as extra, so it now sits below the command instead of beside it.
  • Same words and links: The command is still printed verbatim from FORGE_APP_SSH inside the email_off markers.
  • No new rules: I added no CSS and no width rule, and I left style/content.ts and docs/DESIGN.md alone for part two. Inputs are untouched.
  • Not a §5 row: I did not use row(), because .row-title is single-line with an ellipsis and would truncate the command people copy.
  • Tests:

- test/ssh-site.test.ts previously asserted that the landing page contains terminal-line; it now asserts the opposite. - The keys-page test asserts terminal-line is absent and id="terminal", the host key and <code class="mono break"> are present. - A new test checks the dashboard card for the "SSH keys" link and the host key. - test/apps.test.ts:914 expected <code class="mono">; I updated it to mono break, since the markup is meant to change.

Closes #4242

commented

The terminal line on the account keys page and the site Terminal card no longer carries .terminal-line in its HTML. It's now drawn with §5's .stack.stack-tight, a <code class="mono break"> for the command, and .muted.small.break for the host key. The tests I ran pass: test/ssh-site.test.ts, test/design-lint.test.ts, test/apps.test.ts and test/studio. I couldn't run the type check: bun x tsc --noEmit stops on "Cannot find type definition file for 'bun'" in this sandbox, and I saw no other type errors.

  • Shared helper: terminalLine() in src/web/ui.ts is also used by the app page, the previews page and the studio home, so those lose .terminal-line too. It now builds on a new terminalCommand(command, fingerprint?, extra?).
  • Account keys page: src/web/pages/account.ts wraps terminalCommand in <div class="mb" id="terminal">. The "terminal is off" paragraph is unchanged.
  • Site Terminal card: src/web/pages/site.ts passes the "SSH keys" link in as extra, so it now sits below the command instead of beside it.
  • Same words and links: The command is still printed verbatim from FORGE_APP_SSH inside the email_off markers.
  • No new rules: I added no CSS and no width rule, and I left style/content.ts and docs/DESIGN.md alone for part two. Inputs are untouched.
  • Not a §5 row: I did not use row(), because .row-title is single-line with an ellipsis and would truncate the command people copy.
  • Tests:

- test/ssh-site.test.ts previously asserted that the landing page contains terminal-line; it now asserts the opposite. - The keys-page test asserts terminal-line is absent and id="terminal", the host key and <code class="mono break"> are present. - A new test checks the dashboard card for the "SSH keys" link and the host key. - test/apps.test.ts:914 expected <code class="mono">; I updated it to mono break, since the markup is meant to change.

Approved

Approved. The command now wraps (.break, overflow-wrap:anywhere) inside a column .stack, so a long ssh line and host key no longer push a 360px phone sideways. The link drops under the command, which is fine for a thumb. Output stays escaped, the command is still the verbatim FORGE_APP_SSH, no JS is involved, and the tests assert the new markup. The preview shows no terminal block (none is configured there), so I judged the markup from the source and tests.

Next two: (1) part two should delete the now-dead .terminal-line rule (style/content.ts:409) and its entry in docs/DESIGN.md line 396; (2) name terminalCommand and its stack-plus-code composition in docs/design/areas/ so the next page reuses it instead of hand-rolling another <code class="mono break">.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs