Why: The terminal is fixed at one font size. On a phone some people want denser output; on a desktop monitor some want it bigger. A simple S / M / L choice in Settings would cover both.
Where:
packages/web/src/settings/SettingsPanel.tsx — add a "Terminal font size" control (three buttons or a <select>: Small 12 / Medium 14 / Large 16).
packages/web/src/pwa/theme.ts or a new tiny module — persist the choice in localStorage under roamcode.termfont (follow the pattern of roamcode.theme in theme.ts: load with a validated fallback).
packages/web/src/chat/TerminalView.tsx — read the stored value when constructing the xterm Terminal({ fontSize }), and call term.options.fontSize = n + refit when it changes (listen the same way theme changes are handled).
Acceptance criteria:
- New sessions open with the chosen size; changing it applies to open terminals without a reload.
- Choice survives a page reload (localStorage).
- Default stays exactly as today (Medium/14) for existing users.
pnpm typecheck && pnpm -C packages/web test pass; add a small test following packages/web/src/pwa/theme.test.ts.
Hints: grep for fontSize in TerminalView.tsx to find the xterm construction; the Settings panel already has grouped controls you can copy the markup from.
Why: The terminal is fixed at one font size. On a phone some people want denser output; on a desktop monitor some want it bigger. A simple S / M / L choice in Settings would cover both.
Where:
packages/web/src/settings/SettingsPanel.tsx— add a "Terminal font size" control (three buttons or a<select>: Small 12 / Medium 14 / Large 16).packages/web/src/pwa/theme.tsor a new tiny module — persist the choice inlocalStorageunderroamcode.termfont(follow the pattern ofroamcode.themeintheme.ts: load with a validated fallback).packages/web/src/chat/TerminalView.tsx— read the stored value when constructing the xtermTerminal({ fontSize }), and callterm.options.fontSize = n+ refit when it changes (listen the same way theme changes are handled).Acceptance criteria:
pnpm typecheck && pnpm -C packages/web testpass; add a small test followingpackages/web/src/pwa/theme.test.ts.Hints: grep for
fontSizeinTerminalView.tsxto find the xterm construction; the Settings panel already has grouped controls you can copy the markup from.