FitAddon's proposeDimensions() always subtracts a phantom scrollbar width even when CSS hides the scrollbar — losing one column of usable width. fitFull() divides host clientWidth/clientHeight by the renderer's reported cell size directly. Also POSTs the resized cols/rows back to /api/term/.../resize on initial mount and after fonts.ready so bash/opencode get the correct PTY size before the user types.