From ddb3413dcca1a1e81f01a68e3f67b3529a202a7f Mon Sep 17 00:00:00 2001 From: ferologics Date: Sat, 24 Jan 2026 00:06:09 +0100 Subject: [PATCH] feat(coding-agent): /reload now re-renders entire scrollback For extension development, reloading now rebuilds the full chat history so updated component rendering is visible immediately, not just in new messages. Also removes broken test for deleted chalk-logger.ts extension (npm dependency resolution is already covered by with-deps test). --- packages/coding-agent/CHANGELOG.md | 1 + .../src/modes/interactive/interactive-mode.ts | 1 + .../coding-agent/test/extensions-discovery.test.ts | 13 ------------- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 05f33b1b..3ae35a75 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -23,6 +23,7 @@ ### Changed +- `/reload` now re-renders the entire scrollback so updated extension components are visible immediately - Skill, prompt template, and theme discovery now use settings and CLI path arrays instead of legacy filters ([#645](https://github.com/badlogic/pi-mono/issues/645)) ### Fixed diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index 48674319..47fb46bb 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -3361,6 +3361,7 @@ export class InteractiveMode { if (runner) { this.setupExtensionShortcuts(runner); } + this.rebuildChatFromMessages(); restoreEditor(); this.showLoadedResources({ extensionPaths: runner?.getExtensionPaths() ?? [], force: true }); const modelsJsonError = this.session.modelRegistry.getError(); diff --git a/packages/coding-agent/test/extensions-discovery.test.ts b/packages/coding-agent/test/extensions-discovery.test.ts index a8c32fcd..a6955bfc 100644 --- a/packages/coding-agent/test/extensions-discovery.test.ts +++ b/packages/coding-agent/test/extensions-discovery.test.ts @@ -297,19 +297,6 @@ describe("extensions discovery", () => { expect(result.extensions[0].path).toContain("my-ext.ts"); }); - it("resolves 3rd party npm dependencies (chalk)", async () => { - // Load the real chalk-logger extension from examples - const chalkLoggerPath = path.resolve(__dirname, "../examples/extensions/chalk-logger.ts"); - - const result = await discoverAndLoadExtensions([chalkLoggerPath], tempDir, tempDir); - - expect(result.errors).toHaveLength(0); - expect(result.extensions).toHaveLength(1); - expect(result.extensions[0].path).toContain("chalk-logger.ts"); - // The extension registers event handlers, not commands/tools - expect(result.extensions[0].handlers.size).toBeGreaterThan(0); - }); - it("resolves dependencies from extension's own node_modules", async () => { // Load extension that has its own package.json and node_modules with 'ms' package const extPath = path.resolve(__dirname, "../examples/extensions/with-deps");