๐ Release v2.2.3 โ Idle review prompt, session-scoped deferral & provider refactor (#121)
## Change Log / Overview Release `v2.2.3`. This PR ships the idle-time Marketplace review prompt for engaged users, a session-scoped "Maybe Later" deferral with a race-condition fix, and a refactor of the provider base into focused helper modules. ### โจ Features - **๐ฌ Idle-time review prompt** โ After 10 successful chat turns and 5 minutes of idle time, the extension offers a non-modal notification to leave a Marketplace review. Users can **Leave a Review**, **Maybe Later** (suppresses for the rest of the active VS Code session via `sessionId`, in-memory only), or **Don't Ask Again** (permanently opts out via `globalState`). No user-identifying telemetry is sent. (`src/engagement/reviewPromptService.ts`) - **๐ ๏ธ Dev-only review prompt reset command** โ `litellm-connector.dev.resetReviewPrompt` clears durable review-prompt state for local testing. Gated on a `litellm-connector.isDevBuild` context key that is `true` only for `-devN` builds. (`src/commands/devTools.ts`, `package.json`) - **๐ Session-scoped "Maybe Later" suppression** โ Deferring the prompt now suppresses it for the remainder of the active VS Code session only (tracked in memory via `vscode.env.sessionId`), so a restart restarts the eligibility cycle. ### ๐ Fixes - **๐ก๏ธ Stop re-prompting after "Maybe Later" when a chat starts during the displayed notification** โ `showPromptIfEligible()` now re-checks session deferral at the display boundary as defense-in-depth. Previously, a 5-minute idle timer armed while the notification was already on screen (e.g. a chat started during the `await showInformationMessage()` window) could fire after the user deferred and re-prompt despite the "Maybe Later" choice. (`src/engagement/reviewPromptService.ts`) ### ๐ง Tweaks - **๐ Marketplace review deep-link** โ The "Leave a Review" action now opens the `#review-details` anchor so users land directly on the rating/review form. (`src/engagement/reviewPromptService.ts`) ### ๐ง Provider & Telemetry - Typed telemetry capture methods `captureReviewPromptEligible` / `captureReviewPromptChoice` added to `TelemetryService`. - `LiteLLMProviderBase` exposes `setReviewPromptService()` for optional dependency injection. - `LiteLLMChatProvider` calls `recordChatRequestStarted()` on request start and `recordSuccessfulChatTurn()` after success metric reporting (failed/cancelled/commit paths excluded). - `ReviewPromptService` instantiated and injected into the chat provider during activation. ### โป๏ธ Refactor - Split provider base logic into focused helper modules to keep `LiteLLMProviderBase` thinner and easier to test: - `src/providers/base/callConfig.ts` โ call-time config resolution - `src/providers/base/parameterFiltering.ts` โ capability-aware parameter filtering - `src/providers/base/quotaRedaction.ts` โ quota failure redaction ### ๐งน Chores - Bump extension version `2.2.3-dev3` โ `2.2.3` (`package.json`, `package-lock.json`). - Promote `CHANGELOG.md` `[Unreleased]` โ `## [2.2.3] - 2026-07-31`; repoint footer `[Unreleased]` link to `rel/v2.2.3...HEAD`. - Update "What's New" sections in `README.md` and `README.marketplace.md` to 2.2.3. - Memory profiler test excluded from CI execution to prevent flaky interactions with concurrent Mocha runs. (`.vscode-test.mjs`) - Update VS Code engine guidance in `AGENTS.md` to reflect `^1.125.0` target. ## Related Issues, Builds, Pipeline Runs, etc. - Replaces closed Dependabot PRs #79 and #111 (sinon bumps deferred โ no open PR; will need separate testing in a future release). - Follows the v2.2.2 reasoning-metadata release (tag `rel/v2.2.2`). ## Pull Request Pre-check - [x] Linting Validation Passed - [x] Formatting Validation Passed - [x] Unit Testing Passes - [x] Documentation Updated **Validation summary:** `npm run compile` โ ยท `npm run lint` (0 errors) โ ยท `npm run format` โ ยท `npm run test:coverage` โ **918 passing**, exit 0 (Statements 90.13%, Branches 81.15%, Functions 87.72%, Lines 90.13%).
A
amwdrizz committed
4985ef448c11a1171d89354e9d4c3b05bb393318
Parent: 05c1d13
Committed by GitHub <noreply@github.com>
on 7/31/2026, 1:18:03 PM