diff --git a/frontend/src/composables/useTerminal.ts b/frontend/src/composables/useTerminal.ts index 0b70345..1e8bdcf 100644 --- a/frontend/src/composables/useTerminal.ts +++ b/frontend/src/composables/useTerminal.ts @@ -58,7 +58,7 @@ export function useTerminal(sessionId: string): UseTerminalReturn { const terminal = new Terminal({ theme: defaultTheme, - fontFamily: "'JetBrains Mono', 'Cascadia Code', 'Fira Code', Menlo, Monaco, monospace", + fontFamily: "'Cascadia Mono', 'Cascadia Code', Consolas, 'JetBrains Mono', 'Fira Code', Menlo, Monaco, 'Courier New', monospace", fontSize: 14, lineHeight: 1.2, cursorBlink: true, @@ -138,7 +138,14 @@ export function useTerminal(sessionId: string): UseTerminalReturn { function mount(container: HTMLElement): void { terminal.open(container); - fitAddon.fit(); + + // Wait for fonts to load before measuring cell dimensions. + // If the font (JetBrains Mono etc.) isn't loaded when fitAddon.fit() + // runs, canvas.measureText() uses a fallback font and gets wrong + // cell widths — producing tiny dashes and 200+ column terminals. + document.fonts.ready.then(() => { + fitAddon.fit(); + }); // Right-click paste on the terminal's DOM element terminal.element?.addEventListener("contextmenu", handleRightClickPaste); diff --git a/internal/updater/service.go b/internal/updater/service.go index ca3651e..0f9e4ea 100644 --- a/internal/updater/service.go +++ b/internal/updater/service.go @@ -133,7 +133,8 @@ func (u *UpdateService) CheckForUpdate() (*UpdateInfo, error) { } // Newer version is available — fetch version.json for SHA256 + download URL. - tagVersion := release.TagName // e.g. "v0.6.0" or "0.6.0" + // Use the stripped version (no "v" prefix) because CI uploads packages under "0.8.3" not "v0.8.3" + tagVersion := latestVer versionInfoURL := fmt.Sprintf( "%s/api/packages/%s/generic/%s/%s/version.json", u.baseURL, u.owner, u.pkg, tagVersion,