gsxdsm
d4d7623ee0
FN-6749: rebaseline i18n lint guardrail
...
Rebaseline the i18n hardcoded-string lint guardrail for shipping dashboard surfaces.
- Add scoped i18n lint ignores for non-shipping tests, stories, and deferred source-copy files with follow-up rationale.
- Localize remaining plugin/view copy and replace technical glyph literals that should not be linted as prose.
- Refresh synced locale catalogs and generated resource types, and document the lint baseline policy.
Files changed:
.changeset/fn-6749-i18n-lint-rebaseline.md | 5 +
docs/i18n-contributing.md | 14 +
i18next.config.ts | 96 ++
.../dashboard/app/components/AgentDetailView.tsx | 4 +-
.../app/components/ConversationHistory.tsx | 4 +-
.../app/components/DockerNodeOnboardingModal.tsx | 8 +-
.../components/MilestoneSliceInterviewModal.tsx | 4 +-
.../app/components/MissionInterviewModal.tsx | 4 +-
.../app/components/ModelSelectionModal.tsx | 4 +-
.../dashboard/app/components/NodeDetailModal.tsx | 15 +-
.../dashboard/app/components/PlanningModeModal.tsx | 4 +-
.../dashboard/app/components/SessionTerminal.tsx | 15 +-
.../app/components/SubtaskBreakdownModal.tsx | 4 +-
packages/dashboard/app/components/TaskForm.tsx | 4 +-
.../dashboard/app/components/TerminalModal.tsx | 18 +-
.../dashboard/app/plugins/pluginViewRegistry.tsx | 7 +-
packages/i18n/locales/en/app.json | 890 +++++++++---
packages/i18n/locales/en/common.json | 82 +-
packages/i18n/locales/es/app.json | 986 ++++++++++---
packages/i18n/locales/es/common.json | 82 +-
packages/i18n/locales/fr/app.json | 986 ++++++++++---
packages/i18n/locales/fr/common.json | 82 +-
packages/i18n/locales/ko/app.json | 1482 ++++++++++++++------
packages/i18n/locales/ko/cli.json | 8 +-
packages/i18n/locales/ko/common.json | 82 +-
packages/i18n/locales/zh-CN/app.json | 1482 ++++++++++++++------
packages/i18n/locales/zh-CN/cli.json | 8 +-
packages/i18n/locales/zh-CN/common.json | 82 +-
packages/i18n/locales/zh-TW/app.json | 1482 ++++++++++++++------
packages/i18n/locales/zh-TW/cli.json | 8 +-
packages/i18n/locales/zh-TW/common.json | 82 +-
packages/i18n/src/resources.d.ts | 459 +++---
32 files changed, 6055 insertions(+), 2438 deletions(-)
Fusion-Task-Id: FN-6749
Fusion-Task-Lineage: 789a7cbb-fdf8-4190-8cd2-6bf7d5e2d552
2026-06-19 22:14:57 -07:00
gsxdsm
11c4120705
FN-6659: keep xterm font metrics symbols-free
...
Keep terminal wide-glyph fallback out of xterm's measured font path while preserving Nerd Font symbols in DOM rendering.
- Split terminal font resolution into symbols-free xterm font families and scoped glyph fallback families.
- Apply the glyph fallback CSS variable to both TerminalModal and SessionTerminal surfaces.
- Update regression coverage and the documented mobile xterm wide-glyph recurrence analysis.
Files changed:
.changeset/fn-6659-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 22 +++++++-----
.../dashboard/app/__tests__/terminal-input.test.ts | 42 +++++++++++++---------
.../dashboard/app/components/SessionTerminal.css | 8 +++++
.../dashboard/app/components/SessionTerminal.tsx | 21 +++++++++--
.../dashboard/app/components/TerminalModal.css | 8 +++++
.../dashboard/app/components/TerminalModal.tsx | 13 ++++++-
.../__tests__/SessionTerminal.mobile.test.tsx | 6 ++--
.../components/__tests__/SessionTerminal.test.tsx | 14 ++++----
.../components/__tests__/TerminalModal.test.tsx | 9 +++--
.../utils/__tests__/terminalPreferences.test.ts | 2 +-
.../dashboard/app/utils/terminalPreferences.ts | 16 +++++----
12 files changed, 117 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-6659
Fusion-Task-Lineage: e29a709d-9d9d-4a90-9616-8f08c41b126d
2026-06-18 15:59:34 -07:00
gsxdsm
16b6e5decb
FN-6638: stabilize mobile terminal font metrics
...
Stabilize terminal font metric remeasurement across mobile and attach surfaces.
- Add a shared terminal font metric wait helper that falls back from full font stacks to concrete individual font families before remeasurement.
- Reapply font options, refit, resize, and refresh SessionTerminal after font metrics settle to cover attached CLI terminals.
- Pin text-size adjustment on xterm measurement subtrees so mobile WebKit cannot inflate ASCII cell metrics.
- Extend terminal preference and rendering tests, documentation, and changeset coverage for the recurrence.
Files changed:
.changeset/fn-6638-terminal-render.md | 5 +
.../xterm-async-font-remeasure-paste-dedupe.md | 20 +++-
.../dashboard/app/__tests__/terminal-input.test.ts | 26 +++++
.../dashboard/app/components/SessionTerminal.css | 10 ++
.../dashboard/app/components/SessionTerminal.tsx | 29 ++++++
.../dashboard/app/components/TerminalModal.css | 10 ++
.../dashboard/app/components/TerminalModal.tsx | 24 ++---
.../components/__tests__/SessionTerminal.test.tsx | 41 +++++++-
.../components/__tests__/TerminalModal.test.tsx | 38 ++++++++
.../utils/__tests__/terminalPreferences.test.ts | 29 +++++-
.../dashboard/app/utils/terminalPreferences.ts | 107 +++++++++++++++++++++
11 files changed, 319 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6638
Fusion-Task-Lineage: edbf071d-a0c1-4955-95ff-83e6996f4674
2026-06-18 13:19:43 -07:00
gsxdsm
1bd8f6de6f
FN-6603: fix mobile terminal font measurement
...
Stabilize terminal glyph measurement by keeping monospace text fonts ahead of symbols fallbacks.
- Move the Fusion Terminal Nerd Font Symbols face behind real monospace fonts in the shared xterm font stack and terminal presets.
- Document the mobile WebKit cell-measurement hazard and keep SessionTerminal aligned with the shared preference path.
- Add regression coverage for mobile wide-glyph spacing, preference presets, and terminal input rendering.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6603-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 17 ++++++---
.../dashboard/app/__tests__/terminal-input.test.ts | 42 ++++++++++++++++++++--
.../dashboard/app/components/SessionTerminal.tsx | 3 ++
.../dashboard/app/components/TerminalModal.css | 5 ++-
.../__tests__/SessionTerminal.mobile.test.tsx | 22 +++++++++++-
.../components/__tests__/SessionTerminal.test.tsx | 23 ++++++++++--
.../dashboard/app/utils/terminalPreferences.ts | 14 +++++---
8 files changed, 115 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6603
Fusion-Task-Lineage: b5d90064-1bfd-4da9-8d89-c95cf6fcec0c
2026-06-17 18:48:53 -07:00
gsxdsm
bd328f2282
FN-6536: apply terminal preferences to sessions
...
Extend embedded session terminals to reuse the saved TerminalModal preferences while preserving replay safety.
- Apply shared font, font size, cursor style, cursor blink, and renderer preferences when SessionTerminal initializes.
- Live-apply font and cursor preference changes from storage events without remounting the terminal.
- Keep cursor blink disabled for read-only, idle, and ended sessions, and skip WebGL on mobile viewports.
- Add desktop and mobile tests plus dashboard documentation for embedded session preference behavior.
Files changed:
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/SessionTerminal.tsx | 96 +++++++++---
.../__tests__/SessionTerminal.mobile.test.tsx | 53 ++++++-
.../components/__tests__/SessionTerminal.test.tsx | 166 +++++++++++++++++++--
4 files changed, 286 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-6536
Fusion-Task-Lineage: 836eafd7-923d-45b7-9cf6-e1236af8f168
2026-06-17 01:15:20 -07:00
gsxdsm
02ae5a9340
FN-6213: prevent keyboard from forcing mobile layout
...
Keep tablet and desktop layouts stable when the virtual keyboard shrinks viewport height.
- Gate short-height mobile detection on phone-class physical screen size.
- Reuse the shared mobile viewport helper across board, terminal, and workflow editor layout decisions.
- Cover tablet keyboard and landscape phone viewport behavior with regression tests and document the UI bug pattern.
- Preserve quarantine exclusions while resolving the squash merge conflict.
Files changed:
.../ui-bugs/tablet-keyboard-viewport-mode-flip.md | 54 +++++++++++++
packages/dashboard/app/components/Board.tsx | 4 +-
.../dashboard/app/components/SessionTerminal.tsx | 16 +---
.../app/components/WorkflowNodeEditor.tsx | 41 +++++-----
.../__tests__/SessionTerminal.mobile.test.tsx | 57 ++++++++++----
.../app/hooks/__tests__/useViewportMode.test.ts | 90 +++++++++++++++++++++-
packages/dashboard/app/hooks/useViewportMode.ts | 26 ++++++-
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 5 ++
9 files changed, 239 insertions(+), 55 deletions(-)
Fusion-Task-Id: FN-6213
Fusion-Task-Lineage: 01af6489-8c34-4318-9cff-1bceb1fa5a5d
2026-06-11 19:37:25 -07:00
gsxdsm
7a80d29d4c
feat(dashboard): mobile terminal input bar with sticky Ctrl accessory keys (U13)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 02:27:46 -07:00
gsxdsm
e10db81393
feat(dashboard): cli-agent terminal UI, task-card states, and notification banner support (U11)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 01:16:13 -07:00