From 646e2efa27c2db5037e27dfce75d3c8a6781b42f Mon Sep 17 00:00:00 2001 From: OrcaWin Date: Thu, 5 Nov 2026 03:04:29 -0800 Subject: [PATCH] perf(pi): skip rewriting current managed extensions on every terminal spawn (#38481) Each local terminal spawn with a Pi agent home rewrote three Orca-owned extension files (~54 KB) synchronously on the main thread even when their contents were already current. Compare the read we already do for the ownership check and write only when the content differs. Co-authored-by: m4air --- .../pi/titlebar-extension-service.test.ts | 15 +++++++++++++++ src/main/pi/titlebar-extension-service.ts | 19 ++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/pi/titlebar-extension-service.test.ts b/src/main/pi/titlebar-extension-service.test.ts index ea1551a1c25..027b4c0a0c7 100644 --- a/src/main/pi/titlebar-extension-service.test.ts +++ b/src/main/pi/titlebar-extension-service.test.ts @@ -10,7 +10,9 @@ import { readFileSync, readdirSync, rmSync, + statSync, symlinkSync, + utimesSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' @@ -512,6 +514,19 @@ describe('PiTitlebarExtensionService', () => { ) }) + it('leaves current Orca-owned extensions untouched on later spawns', () => { + const svc = new PiTitlebarExtensionService() + svc.buildPtyEnv('pty-current-1', piHome, 'pi') + const installed = ['orca-titlebar-spinner.ts', 'orca-prefill.ts', 'orca-agent-status.ts'].map( + (name) => join(piHome, 'extensions', name) + ) + installed.forEach((path) => utimesSync(path, 0, 0)) + + svc.buildPtyEnv('pty-current-2', piHome, 'pi') + + expect(installed.map((path) => statSync(path).mtimeMs)).toEqual([0, 0, 0]) + }) + it("does not overwrite a user's same-named Orca extension file", () => { const userStatusExtension = 'user-owned status extension' writeFileSync(join(piHome, 'extensions', 'orca-agent-status.ts'), userStatusExtension, 'utf-8') diff --git a/src/main/pi/titlebar-extension-service.ts b/src/main/pi/titlebar-extension-service.ts index 6d1b42060fc..d29701eee1a 100644 --- a/src/main/pi/titlebar-extension-service.ts +++ b/src/main/pi/titlebar-extension-service.ts @@ -87,16 +87,17 @@ export class PiTitlebarExtensionService { safeRemoveOverlay(overlayDir, this.getOverlayRoot(kind)) } - private canOverwriteManagedExtension(path: string): boolean { - try { - return readFileSync(path, 'utf8').includes(ORCA_MANAGED_EXTENSION_MARKER) - } catch { - return true - } - } - private writeManagedExtension(path: string, source: string): ManagedExtensionWriteResult { - if (existsSync(path) && !this.canOverwriteManagedExtension(path)) { + let installed: string | undefined + try { + installed = readFileSync(path, 'utf8') + } catch { + installed = undefined + } + if (installed === source) { + return 'written' + } + if (installed !== undefined && !installed.includes(ORCA_MANAGED_EXTENSION_MARKER)) { return 'skipped-user-owned' }