feat: Codetether chat sidebar, SRP refactor tool, and session orchestration #24

Open
rileyseaburg wants to merge 11 commits from feature/enhance-llm into main
rileyseaburg commented 2026-05-12 21:52:38 +00:00 (Migrated from github.com)

Summary

This branch introduces the Codetether chat sidebar, an SRP modular refactor tool, a session transcript loading pipeline, and a richer sub-agent activity panel.

Commits

Core features

  • feat: add SRP modular refactor tool, bump version to 0.5.1, full build clean — New SRP-aware refactoring tool with LLM-powered planning (SrpRefactorTool, srp_refactor_tool.ts).
  • feat: add Codetether chat sidebar, fix E2BIG, redesign webview UI — Full chat sidebar webview (CodetetherChatViewProvider) with model selection, session management, speech/TTS, voice input, and sub-agent activity display. Also adds native Rust TTS/STT via NAPI bridge and fixes E2BIG argument-length errors.
  • feat: add language-aware Codetether documentation command — New aiDocGenerator command that generates documentation tailored to the detected language.

Enhancements

  • fix: address PR review feedback — Code review fixes from prior iteration.
  • Enhance Codetether chat sidebar workflows — Improved chat workflows, model list service, session service, and chat modes.
  • Refactor webview: Remove main.js and styles.css, update chat state and module extractor styles — Cleaned up legacy webview assets, updated state generation and styling.

TTS modularization

  • Extract TTS button and voice logic into dedicated webview modules — Split monolithic chat-sidebar-tts.js into focused modules: tts-buttons.js, tts-voice.js, and core tts.js.

Session transcript loading

  • Add session transcript loading pipeline for chat sidebar — Sessions now load in-place in the sidebar instead of opening a new VS Code window. New CodetetherSessionOpenService, CodetetherSessionTranscript, CodetetherSessionFileTranscript, CodetetherSessionLoader, and CodetetherSessionViewLoader classes. Webview gains clearMessages state action and sessionLoaded handler.

Sub-agent activity panel

  • Enrich sub-agent activity panel with counters, badges, and data sources — Panel now reads task journals, session ledgers, and memory writeback files. Displays counter chips, source/model/task badges, and Open/Copy actions per row. New snapshot() method for on-demand refresh.

Model discovery

  • Remove built-in model fallbacks; increase Codetether run timeout — Model discovery relies solely on the Codetether CLI. Removed BUILT_IN_MODELS constant and getModelListFallbacks(). Run timeout increased from 10 to 30 minutes.

Files changed

  • ~50 new source files across src/, src/sidebar/, media/, rust-backend/
  • New native Rust TTS/STT modules (tts.rs, stt.rs)
  • New NAPI bridge for native speech
  • New chat sidebar webview with modular JS modules
  • Updated package.json, Cargo.toml, build scripts

Test plan

  • Open VS Code with this extension installed
  • Verify Codetether chat sidebar renders and accepts input
  • Verify model discovery populates dropdown from CLI
  • Verify session list loads and session transcripts render in-place
  • Verify sub-agent panel shows counters, badges, and actions
  • Verify TTS read-aloud buttons and voice selector work
  • Verify SRP refactor tool produces valid module splits
## Summary This branch introduces the Codetether chat sidebar, an SRP modular refactor tool, a session transcript loading pipeline, and a richer sub-agent activity panel. ## Commits ### Core features - **feat: add SRP modular refactor tool, bump version to 0.5.1, full build clean** — New SRP-aware refactoring tool with LLM-powered planning (`SrpRefactorTool`, `srp_refactor_tool.ts`). - **feat: add Codetether chat sidebar, fix E2BIG, redesign webview UI** — Full chat sidebar webview (`CodetetherChatViewProvider`) with model selection, session management, speech/TTS, voice input, and sub-agent activity display. Also adds native Rust TTS/STT via NAPI bridge and fixes E2BIG argument-length errors. - **feat: add language-aware Codetether documentation command** — New `aiDocGenerator` command that generates documentation tailored to the detected language. ### Enhancements - **fix: address PR review feedback** — Code review fixes from prior iteration. - **Enhance Codetether chat sidebar workflows** — Improved chat workflows, model list service, session service, and chat modes. - **Refactor webview: Remove main.js and styles.css, update chat state and module extractor styles** — Cleaned up legacy webview assets, updated state generation and styling. ### TTS modularization - **Extract TTS button and voice logic into dedicated webview modules** — Split monolithic `chat-sidebar-tts.js` into focused modules: `tts-buttons.js`, `tts-voice.js`, and core `tts.js`. ### Session transcript loading - **Add session transcript loading pipeline for chat sidebar** — Sessions now load in-place in the sidebar instead of opening a new VS Code window. New `CodetetherSessionOpenService`, `CodetetherSessionTranscript`, `CodetetherSessionFileTranscript`, `CodetetherSessionLoader`, and `CodetetherSessionViewLoader` classes. Webview gains `clearMessages` state action and `sessionLoaded` handler. ### Sub-agent activity panel - **Enrich sub-agent activity panel with counters, badges, and data sources** — Panel now reads task journals, session ledgers, and memory writeback files. Displays counter chips, source/model/task badges, and Open/Copy actions per row. New `snapshot()` method for on-demand refresh. ### Model discovery - **Remove built-in model fallbacks; increase Codetether run timeout** — Model discovery relies solely on the Codetether CLI. Removed `BUILT_IN_MODELS` constant and `getModelListFallbacks()`. Run timeout increased from 10 to 30 minutes. ## Files changed - ~50 new source files across `src/`, `src/sidebar/`, `media/`, `rust-backend/` - New native Rust TTS/STT modules (`tts.rs`, `stt.rs`) - New NAPI bridge for native speech - New chat sidebar webview with modular JS modules - Updated `package.json`, `Cargo.toml`, build scripts ## Test plan - [ ] Open VS Code with this extension installed - [ ] Verify Codetether chat sidebar renders and accepts input - [ ] Verify model discovery populates dropdown from CLI - [ ] Verify session list loads and session transcripts render in-place - [ ] Verify sub-agent panel shows counters, badges, and actions - [ ] Verify TTS read-aloud buttons and voice selector work - [ ] Verify SRP refactor tool produces valid module splits
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2026-05-12 21:57:39 +00:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull request overview

Adds a Codetether-backed chat sidebar and refactors the Module Extractor webview UI, alongside native/NAPI and tooling updates intended to avoid CLI ARG_MAX (E2BIG) issues and improve build/publish flows.

Changes:

  • Introduces Codetether Chat sidebar (webview UI + model/session services) and VS Code chat participant/code actions.
  • Redesigns Module Extractor webview UI and restructures its browser code into smaller TS modules.
  • Expands native/NAPI bridge plumbing and build/publish scripts to support new functionality.

Reviewed changes

Copilot reviewed 65 out of 71 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
webview-src/module-extractor/vscode-api.ts Centralizes acquireVsCodeApi() usage for the module extractor webview.
webview-src/module-extractor/types.ts Adds typed message/item shapes for module extractor webview protocol.
webview-src/module-extractor/tree-selection.ts Handles tree item activation + selection state updates.
webview-src/module-extractor/tree-renderer.ts Renders directory tree sections for module extractor UI.
webview-src/module-extractor/tree-parent-item.ts Creates synthetic “..” parent navigation item.
webview-src/module-extractor/tree-item-view.ts Renders tree items as accessible buttons.
webview-src/module-extractor/tree-info-view.ts Renders tree item text blocks (name/description/detail).
webview-src/module-extractor/tree-here-item.ts Creates “Create module here” synthetic selection item.
webview-src/module-extractor/text-span.ts Small helper for safe text-only spans.
webview-src/module-extractor/styles.css Replaces hardcoded colors with VS Code theme tokens + layout tweaks.
webview-src/module-extractor/status-message.ts Adds safe status/error message renderer.
webview-src/module-extractor/selection-label.ts Generates selection-related button labels/paths.
webview-src/module-extractor/selection-button.ts Updates extract button enabled state + label.
webview-src/module-extractor/selection-actions.ts Posts confirm/cancel messages to extension host.
webview-src/module-extractor/path-display.ts Updates current-path display copy.
webview-src/module-extractor/message-router.ts Routes extension → webview messages with error handling.
webview-src/module-extractor/logger.ts Sends warn/error logs to extension host and mirrors to console.
webview-src/module-extractor/loading-view.ts Renders loading spinner state without unsafe HTML.
webview-src/module-extractor/initialize.ts Bootstraps module extractor webview and posts ready.
webview-src/module-extractor/index.ts Replaces prior monolithic webview script with modular entrypoint.
webview-src/module-extractor/dom.ts Adds DOM element lookup helpers with strong diagnostics.
webview-src/module-extractor/directory-navigation.ts Posts directory navigation requests to host.
webview-src/module-extractor/directory-controller.ts Applies directory updates + triggers rerenders and UI updates.
webview-src/module-extractor/data-view.ts Renders module name + selected code preview.
webview-src/module-extractor/conversion-info.ts Toggles module conversion warning visibility via CSS class.
webview-src/module-extractor/breadcrumb-view.ts Renders breadcrumb navigation as buttons + separators.
webview-src/module-extractor/breadcrumb-separator.ts Adds codicon breadcrumb separator element.
webview-src/module-extractor/breadcrumb-segment.ts Computes breadcrumb segment labels/paths.
webview-src/module-extractor/breadcrumb-button.ts Creates breadcrumb navigation buttons that request directory changes.
webview-src/module-extractor/app-state.ts Centralizes transient webview state + clearSelection helper.
tsconfig.json Adds node and vscode types for TypeScript compilation.
target/rust-analyzer/flycheck0/stderr Adds a rust-analyzer build log artifact (should not be committed).
src/webview/ModuleExtractorPanel.ts Refactors panel coordination, message handling, CSP, and UI markup.
src/SrpRefactorTool.ts Exposes SRP refactor tool modules via re-exports.
src/sidebar/modelListService.ts Implements async-safe model discovery + UI status updates.
src/sidebar/editorContextCollector.ts Collects bounded editor context for Codetether prompts.
src/sidebar/codetetherSessions.ts Lists recent Codetether session folders for sidebar UI.
src/sidebar/CodetetherChatViewProvider.ts Hosts chat sidebar webview and routes UI messages to Codetether.
src/sidebar/chatWebviewHtml.ts Generates chat sidebar HTML/CSS/JS in a single TS renderer.
src/sidebar/chatTypes.ts Defines chat UI request types and shared payload shapes.
src/sidebar/chatModes.ts Normalizes chat mode/feature values and builds prompt instructions.
src/sidebar/chatConstants.ts Adds constants for system prompt, model discovery, context sizing, etc.
src/sidebar/agentPromptBuilder.ts Builds Codetether prompts from user input + mode/feature + context.
src/nativeBridge.ts Expands native loader candidates + adds model listing/path helpers.
src/modules/srp_interfaces/srp_interfaces.ts Adds shared SRP-related interface/types module.
src/languageModelTools.ts Adds SRP tool registration + returns registration summary.
src/fixWithCodetether.ts Adds CodeActions/commands to run Codetether-based diagnostic fixing.
src/ExtractToModuleTool.ts Avoids unnecessary rust-analyzer reloads + uses native path normalize.
src/extractor.ts Logging prefix change + import fallback + diagnostics settle improvements.
src/extension.ts Registers chat sidebar, participant, SRP command, code actions, new settings.
src/codetetherClient.native.ts Adds a native Codetether client implementation (appears backup/alt path).
src/codetetherClient.cli-backup.ts Adds a CLI backup client implementation (backup/alt path).
src/chatParticipant.ts Adds VS Code Chat participant backed by Codetether client.
src/aiDocGenerator.ts Selects fast vs full models based on task (generate/judge/summary).
scripts/package-dev.js Adds dev packaging script with timestamped alpha versioning.
scripts/copy-napi.js Adds helper to copy platform cdylib into expected .node filename(s).
rust-backend/src/lib.rs Adds extract_workspace_root NAPI-exported path utility.
rust-backend/napi_bridge/src/lib.rs Adds Codetether model listing + chat completion bridge APIs.
rust-backend/napi_bridge/Cargo.toml Adds async/NAPI deps + codetether-agent + serde_json.
package.json Adds Codetether sidebar contributions, commands, settings, scripts, version bump.
package-lock.json Updates lockfile version metadata.
images/codetether-chat.svg Adds activity bar icon for Codetether chat view container.
build.bat Adds build step for NAPI bridge and updates build flow.
AGENTS.md Adds repository-wide SRP/docs/80-col contributor rules.
.vscodeignore Ignores Codetether history + includes some NAPI binaries in package.
.github/workflows/publish.yml Copies NAPI bridge output into expected .node filename during publish.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

## Pull request overview Adds a Codetether-backed chat sidebar and refactors the Module Extractor webview UI, alongside native/NAPI and tooling updates intended to avoid CLI ARG_MAX (E2BIG) issues and improve build/publish flows. **Changes:** - Introduces Codetether Chat sidebar (webview UI + model/session services) and VS Code chat participant/code actions. - Redesigns Module Extractor webview UI and restructures its browser code into smaller TS modules. - Expands native/NAPI bridge plumbing and build/publish scripts to support new functionality. ### Reviewed changes Copilot reviewed 65 out of 71 changed files in this pull request and generated 7 comments. <details> <summary>Show a summary per file</summary> | File | Description | | ---- | ----------- | | webview-src/module-extractor/vscode-api.ts | Centralizes acquireVsCodeApi() usage for the module extractor webview. | | webview-src/module-extractor/types.ts | Adds typed message/item shapes for module extractor webview protocol. | | webview-src/module-extractor/tree-selection.ts | Handles tree item activation + selection state updates. | | webview-src/module-extractor/tree-renderer.ts | Renders directory tree sections for module extractor UI. | | webview-src/module-extractor/tree-parent-item.ts | Creates synthetic “..” parent navigation item. | | webview-src/module-extractor/tree-item-view.ts | Renders tree items as accessible buttons. | | webview-src/module-extractor/tree-info-view.ts | Renders tree item text blocks (name/description/detail). | | webview-src/module-extractor/tree-here-item.ts | Creates “Create module here” synthetic selection item. | | webview-src/module-extractor/text-span.ts | Small helper for safe text-only spans. | | webview-src/module-extractor/styles.css | Replaces hardcoded colors with VS Code theme tokens + layout tweaks. | | webview-src/module-extractor/status-message.ts | Adds safe status/error message renderer. | | webview-src/module-extractor/selection-label.ts | Generates selection-related button labels/paths. | | webview-src/module-extractor/selection-button.ts | Updates extract button enabled state + label. | | webview-src/module-extractor/selection-actions.ts | Posts confirm/cancel messages to extension host. | | webview-src/module-extractor/path-display.ts | Updates current-path display copy. | | webview-src/module-extractor/message-router.ts | Routes extension → webview messages with error handling. | | webview-src/module-extractor/logger.ts | Sends warn/error logs to extension host and mirrors to console. | | webview-src/module-extractor/loading-view.ts | Renders loading spinner state without unsafe HTML. | | webview-src/module-extractor/initialize.ts | Bootstraps module extractor webview and posts `ready`. | | webview-src/module-extractor/index.ts | Replaces prior monolithic webview script with modular entrypoint. | | webview-src/module-extractor/dom.ts | Adds DOM element lookup helpers with strong diagnostics. | | webview-src/module-extractor/directory-navigation.ts | Posts directory navigation requests to host. | | webview-src/module-extractor/directory-controller.ts | Applies directory updates + triggers rerenders and UI updates. | | webview-src/module-extractor/data-view.ts | Renders module name + selected code preview. | | webview-src/module-extractor/conversion-info.ts | Toggles module conversion warning visibility via CSS class. | | webview-src/module-extractor/breadcrumb-view.ts | Renders breadcrumb navigation as buttons + separators. | | webview-src/module-extractor/breadcrumb-separator.ts | Adds codicon breadcrumb separator element. | | webview-src/module-extractor/breadcrumb-segment.ts | Computes breadcrumb segment labels/paths. | | webview-src/module-extractor/breadcrumb-button.ts | Creates breadcrumb navigation buttons that request directory changes. | | webview-src/module-extractor/app-state.ts | Centralizes transient webview state + clearSelection helper. | | tsconfig.json | Adds `node` and `vscode` types for TypeScript compilation. | | target/rust-analyzer/flycheck0/stderr | Adds a rust-analyzer build log artifact (should not be committed). | | src/webview/ModuleExtractorPanel.ts | Refactors panel coordination, message handling, CSP, and UI markup. | | src/SrpRefactorTool.ts | Exposes SRP refactor tool modules via re-exports. | | src/sidebar/modelListService.ts | Implements async-safe model discovery + UI status updates. | | src/sidebar/editorContextCollector.ts | Collects bounded editor context for Codetether prompts. | | src/sidebar/codetetherSessions.ts | Lists recent Codetether session folders for sidebar UI. | | src/sidebar/CodetetherChatViewProvider.ts | Hosts chat sidebar webview and routes UI messages to Codetether. | | src/sidebar/chatWebviewHtml.ts | Generates chat sidebar HTML/CSS/JS in a single TS renderer. | | src/sidebar/chatTypes.ts | Defines chat UI request types and shared payload shapes. | | src/sidebar/chatModes.ts | Normalizes chat mode/feature values and builds prompt instructions. | | src/sidebar/chatConstants.ts | Adds constants for system prompt, model discovery, context sizing, etc. | | src/sidebar/agentPromptBuilder.ts | Builds Codetether prompts from user input + mode/feature + context. | | src/nativeBridge.ts | Expands native loader candidates + adds model listing/path helpers. | | src/modules/srp_interfaces/srp_interfaces.ts | Adds shared SRP-related interface/types module. | | src/languageModelTools.ts | Adds SRP tool registration + returns registration summary. | | src/fixWithCodetether.ts | Adds CodeActions/commands to run Codetether-based diagnostic fixing. | | src/ExtractToModuleTool.ts | Avoids unnecessary rust-analyzer reloads + uses native path normalize. | | src/extractor.ts | Logging prefix change + import fallback + diagnostics settle improvements. | | src/extension.ts | Registers chat sidebar, participant, SRP command, code actions, new settings. | | src/codetetherClient.native.ts | Adds a native Codetether client implementation (appears backup/alt path). | | src/codetetherClient.cli-backup.ts | Adds a CLI backup client implementation (backup/alt path). | | src/chatParticipant.ts | Adds VS Code Chat participant backed by Codetether client. | | src/aiDocGenerator.ts | Selects fast vs full models based on task (generate/judge/summary). | | scripts/package-dev.js | Adds dev packaging script with timestamped alpha versioning. | | scripts/copy-napi.js | Adds helper to copy platform cdylib into expected `.node` filename(s). | | rust-backend/src/lib.rs | Adds `extract_workspace_root` NAPI-exported path utility. | | rust-backend/napi_bridge/src/lib.rs | Adds Codetether model listing + chat completion bridge APIs. | | rust-backend/napi_bridge/Cargo.toml | Adds async/NAPI deps + codetether-agent + serde_json. | | package.json | Adds Codetether sidebar contributions, commands, settings, scripts, version bump. | | package-lock.json | Updates lockfile version metadata. | | images/codetether-chat.svg | Adds activity bar icon for Codetether chat view container. | | build.bat | Adds build step for NAPI bridge and updates build flow. | | AGENTS.md | Adds repository-wide SRP/docs/80-col contributor rules. | | .vscodeignore | Ignores Codetether history + includes some NAPI binaries in package. | | .github/workflows/publish.yml | Copies NAPI bridge output into expected `.node` filename during publish. | </details> --- 💡 <a href="/RustyRoad/rusty-refactor/new/main?filename=.github/instructions/*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:38 +00:00

The package includes only win32-x64 and linux-x64 NAPI binaries, but the runtime loader also searches for linux-arm64 and darwin artifacts. Either include the additional .node binaries here (and in the build/publish pipeline) or remove the extra candidates so installs on those platforms fail fast with a clear message.

The package includes only win32-x64 and linux-x64 NAPI binaries, but the runtime loader also searches for linux-arm64 and darwin artifacts. Either include the additional `.node` binaries here (and in the build/publish pipeline) or remove the extra candidates so installs on those platforms fail fast with a clear message.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:37 +00:00

npm run build runs build:napi (cargo build) but does not run the new scripts/copy-napi.js step, so the platform-specific .node file that src/nativeBridge.ts looks for may not be produced during local builds. Consider chaining node scripts/copy-napi.js after build:napi (or as a postbuild step) so the JS loader and build scripts stay in sync.

`npm run build` runs `build:napi` (cargo build) but does not run the new `scripts/copy-napi.js` step, so the platform-specific `.node` file that `src/nativeBridge.ts` looks for may not be produced during local builds. Consider chaining `node scripts/copy-napi.js` after `build:napi` (or as a postbuild step) so the JS loader and build scripts stay in sync.
@ -13,2 +18,4 @@
codetether-agent = { path = "../../../programming/codetether-agent", optional = true }
serde_json = "1.0.149"
[build-dependencies]
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:37 +00:00

The napi_bridge crate depends on codetether-agent via a relative path (../../../programming/codetether-agent), but that directory does not exist in this repository. This will break cargo build in CI and for other contributors. Consider switching to a workspace member, a git/crates.io dependency, or making the dependency optional behind a feature so builds don’t require an external checkout.

The napi_bridge crate depends on `codetether-agent` via a relative path (`../../../programming/codetether-agent`), but that directory does not exist in this repository. This will break `cargo build` in CI and for other contributors. Consider switching to a workspace member, a git/crates.io dependency, or making the dependency optional behind a feature so builds don’t require an external checkout.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:37 +00:00

codetetherListModelsNative() checks for native.codetetherListModels, but napi-rs exports functions using the Rust identifier by default (snake_case), and the bridge defines codetether_list_models. As written this will usually return [] even when the native function exists. Update the wrapper to call the exported name (or explicitly set js_name in the Rust bridge).

`codetetherListModelsNative()` checks for `native.codetetherListModels`, but napi-rs exports functions using the Rust identifier by default (snake_case), and the bridge defines `codetether_list_models`. As written this will usually return `[]` even when the native function exists. Update the wrapper to call the exported name (or explicitly set `js_name` in the Rust bridge).
@ -0,0 +1,117 @@
import * as vscode from 'vscode';
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:38 +00:00

The chat sidebar webview relies on inline <style> and inline <script>, which forces the CSP to allow style-src 'unsafe-inline'. For a VS Code webview this is avoidable: move CSS/JS into bundled files referenced via webview.asWebviewUri (or apply a nonce to styles if you must inline) and tighten the CSP to remove unsafe-inline.

The chat sidebar webview relies on inline `<style>` and inline `<script>`, which forces the CSP to allow `style-src 'unsafe-inline'`. For a VS Code webview this is avoidable: move CSS/JS into bundled files referenced via `webview.asWebviewUri` (or apply a nonce to styles if you must inline) and tighten the CSP to remove unsafe-inline.
@ -576,0 +923,4 @@
* The nonce is stored so the CSP and script tag use the same value without
* leaking any additional mutable state into callers.
*/
private _nonce(): string {
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:38 +00:00

_splitPath() accepts path segments like .. and _toUri() joins them onto the workspace URI. Since webview messages are untrusted input, a compromised webview could attempt path traversal outside the workspace. Consider rejecting ./.. segments and validating the resolved URI stays within the workspace folder before calling workspace.fs.readDirectory.

`_splitPath()` accepts path segments like `..` and `_toUri()` joins them onto the workspace URI. Since webview messages are untrusted input, a compromised webview could attempt path traversal outside the workspace. Consider rejecting `.`/`..` segments and validating the resolved URI stays within the workspace folder before calling `workspace.fs.readDirectory`.
copilot-pull-request-reviewer[bot] (Migrated from github.com) commented 2026-05-12 21:57:38 +00:00

This looks like a local rust-analyzer/cargo build log under target/ and should not be committed to the repository. Please remove it from the PR and ensure target/ artifacts are ignored so future builds don’t dirty the working tree.

This looks like a local rust-analyzer/cargo build log under `target/` and should not be committed to the repository. Please remove it from the PR and ensure `target/` artifacts are ignored so future builds don’t dirty the working tree.
rileyseaburg commented 2026-05-21 19:34:29 +00:00 (Migrated from github.com)

Addressed the review feedback in 1db46cd.

Updated:

  • externalized the chat sidebar JS/CSS into media/ and tightened the webview CSP
  • hardened ModuleExtractorPanel path handling to reject unsafe input and keep reads inside the workspace
  • made the native Codetether bridge optional behind a Cargo feature so the NAPI build no longer requires an external checkout
  • fixed native model listing to use the exported snake_case symbol
  • aligned the native loader with the actually packaged platforms and improved the missing-binary error
  • wired uild:napi to run copy-napi.js
  • removed the committed arget/rust-analyzer artifacts from the PR

Validation:

pm run build:napi

pm run build

There is still one pre-existing bundler warning around dynamic
equire() in src/nativeBridge.ts, but the build succeeds.

Addressed the review feedback in 1db46cd. Updated: - externalized the chat sidebar JS/CSS into media/ and tightened the webview CSP - hardened ModuleExtractorPanel path handling to reject unsafe input and keep reads inside the workspace - made the native Codetether bridge optional behind a Cargo feature so the NAPI build no longer requires an external checkout - fixed native model listing to use the exported snake_case symbol - aligned the native loader with the actually packaged platforms and improved the missing-binary error - wired uild:napi to run copy-napi.js - removed the committed arget/rust-analyzer artifacts from the PR Validation: - pm run build:napi - pm run build There is still one pre-existing bundler warning around dynamic equire() in src/nativeBridge.ts, but the build succeeds.
rileyseaburg commented 2026-05-22 02:28:49 +00:00 (Migrated from github.com)

Added and validated the language-aware Document with Codetether right-click command in 531ecc1.

Validation performed:

  • built with
    pm run build:ts
  • packaged and installed
    usty-refactor-0.6.23.vsix
  • inspected the packaged VSIX manifest:
    • command:
      ustyRefactor.documentWithCodetether
    • title: Rusty Refactor: Document with Codetether
    • editor context menu when: editorHasSelection
  • inspected the installed extension manifest from disk and confirmed the same command/menu contribution is installed
  • confirmed the compiled extension bundle registers
    ustyRefactor.documentWithCodetether and calls the language-aware generateSelectionDocumentationWithCodetether path

VS Code CLI does not expose a general command runner for invoking an editor command with an active selection, so this validates the API contribution contract that VS Code uses to render and register the command.

Added and validated the language-aware Document with Codetether right-click command in 531ecc1. Validation performed: - built with pm run build:ts - packaged and installed usty-refactor-0.6.23.vsix - inspected the packaged VSIX manifest: - command: ustyRefactor.documentWithCodetether - title: Rusty Refactor: Document with Codetether - editor context menu when: editorHasSelection - inspected the installed extension manifest from disk and confirmed the same command/menu contribution is installed - confirmed the compiled extension bundle registers ustyRefactor.documentWithCodetether and calls the language-aware generateSelectionDocumentationWithCodetether path VS Code CLI does not expose a general command runner for invoking an editor command with an active selection, so this validates the API contribution contract that VS Code uses to render and register the command.
This pull request has changes conflicting with the target branch.
  • package-lock.json
  • package.json
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/enhance-llm:feature/enhance-llm
git switch feature/enhance-llm

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/enhance-llm
git switch feature/enhance-llm
git rebase main
git switch main
git merge --ff-only feature/enhance-llm
git switch feature/enhance-llm
git rebase main
git switch main
git merge --no-ff feature/enhance-llm
git switch main
git merge --squash feature/enhance-llm
git switch main
git merge --ff-only feature/enhance-llm
git switch main
git merge feature/enhance-llm
git push origin main
Sign in to join this conversation.
No description provided.