SIGN IN SIGN UP

๐Ÿš€ 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