Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
fa13472
feat(condense): add core types and interfaces for provider pattern
jsboige Oct 2, 2025
c15c883
feat(condense): add base provider abstract class
jsboige Oct 2, 2025
02a2f5a
feat(condense): add provider registry for managing providers
jsboige Oct 2, 2025
30068a8
feat(condense): add native condensation provider
jsboige Oct 2, 2025
f70e54a
feat(condense): add condensation manager
jsboige Oct 2, 2025
86f64d5
feat(condense): integrate provider system in sliding-window
jsboige Oct 2, 2025
999747c
docs(condense): Add comprehensive English documentation for Context C…
jsboige Oct 3, 2025
d2a1953
feat(condense): add file deduplication logic for lossless provider
jsboige Oct 3, 2025
0309492
feat(condense): add tool result consolidation for lossless provider
jsboige Oct 3, 2025
de92fe3
feat(condense): implement lossless provider with dual-strategy optimi…
jsboige Oct 3, 2025
5f4f160
feat(condense): integrate lossless provider with registry and add e2e…
jsboige Oct 3, 2025
594ec0e
feat(condense): add truncation provider with fast chronological trunc…
jsboige Oct 3, 2025
2564c27
test(condense): add natural conversation fixtures for real-world testing
jsboige Oct 3, 2025
ddc391d
test(condense): add synthetic conversation fixtures for targeted testing
jsboige Oct 3, 2025
c45c0ed
test(condense): add synthetic task data for file write testing
jsboige Oct 3, 2025
281a307
docs(condense): add fixtures documentation and metadata
jsboige Oct 3, 2025
8ef4f03
test(condense): add real-world test framework for fixture validation
jsboige Oct 3, 2025
3ac7eb2
docs(condense): update README with Phase 3 completion status
jsboige Oct 3, 2025
508cad3
test(condense): implement complete real-world test suite
jsboige Oct 3, 2025
8cb44a5
feat(condense): implement Smart Provider pass-based with corrected logic
jsboige Oct 4, 2025
ae13e2e
test(condense): comprehensive Smart Provider pass-based tests
jsboige Oct 4, 2025
8b63617
feat(condense): add message-level thresholds and realistic values
jsboige Oct 4, 2025
2a84d7b
test(ui): add comprehensive UI tests for CondensationProviderSettings
jsboige Oct 5, 2025
8b03b78
feat(types): add shared types for condensation provider settings
jsboige Oct 5, 2025
c16860c
feat(backend): add condensation provider backend handlers
jsboige Oct 5, 2025
41f752b
test(backend): add integration tests for condensation settings
jsboige Oct 5, 2025
74e8b01
docs(condense): consolidate Smart Provider documentation
jsboige Oct 5, 2025
0c57083
docs(condense): update README with Phases 4-5 completion
jsboige Oct 5, 2025
89d5500
docs(condense): update ARCHITECTURE with Phases 2-5
jsboige Oct 5, 2025
576dc87
chore: add changeset for context condensation provider system
jsboige Oct 5, 2025
8405b52
test(ui): fix CondensationProviderSettings test suite
jsboige Oct 5, 2025
976f70b
refactor(condense): move 'context grew' check from NativeProvider to …
jsboige Oct 6, 2025
9c450aa
feat(condense): add loop-guard attempt counter with cooldown
jsboige Oct 6, 2025
069a448
feat(condense): add exponential back-off on provider failures
jsboige Oct 6, 2025
ac4e804
feat(condense): add PassMetrics interface for per-pass telemetry
jsboige Oct 6, 2025
7c8175a
feat(condense): add per-pass telemetry for Smart Provider
jsboige Oct 6, 2025
2c119a4
feat(condense): add hierarchical provider-specific thresholds
jsboige Oct 7, 2025
543e199
fix(ui): update condensation provider UI - default to native, add pre…
jsboige Oct 8, 2025
d748c18
fix(condensation): Add debouncing mechanism to prevent radio button s…
jsboige Oct 16, 2025
2ee7720
fix(condensation): Resolve radio button state race condition with ref…
jsboige Oct 16, 2025
bd3e4aa
fix: resolve F5 debug PowerShell double -Command issue
jsboige Oct 19, 2025
47ba806
fix: improve UI layout and radio button behavior in settings
jsboige Oct 19, 2025
f6c1460
docs: final preparation for PR submission
jsboige Oct 20, 2025
5b6bcde
fix: add missing presetConfigJson property
jsboige Oct 20, 2025
c207bc6
fix: remove PR tracking files from workspace - moved to external trac…
jsboige Oct 20, 2025
beabe3e
fix: resolve CI/CD failures with comprehensive UI test fixes
jsboige Oct 21, 2025
6fd6d60
test: add missing test for ProviderRegistry.clear() method
jsboige Oct 22, 2025
f00e24a
test: add functional test for UI component with static analysis
jsboige Oct 22, 2025
5c273ae
feat: enhance Smart Condensation Provider with improved logic
jsboige Oct 22, 2025
c1b972e
feat: update UI components and test configuration
jsboige Oct 22, 2025
34c6532
docs: update main condensation README with provider information
jsboige Oct 22, 2025
4d99961
feat(test): Update test dependencies and fix ESLint issues
jsboige Oct 25, 2025
6795c56
fix(test): Improve Vitest snapshot configuration
jsboige Oct 25, 2025
94e5cbe
fix(test): Corrections des tests React avec renderHook et contexte
jsboige Oct 25, 2025
bdd3d70
feat(test): Add simple working tests as snapshot workaround
jsboige Oct 25, 2025
2c6ab3b
test: add React test files and update vitest setup
jsboige Oct 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .changeset/context-condensation-providers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
"roo-cline": minor
---

Add provider-based context condensation system with 4 strategies and UI integration

This major feature introduces a flexible, extensible provider-based architecture for context condensation, offering 4 distinct strategies:

- **Native Provider**: Backward-compatible wrapper of existing system (LLM-based summarization)
- **Lossless Provider**: Zero information loss via deduplication (40-60% reduction, $0 cost, <100ms)
- **Truncation Provider**: Fast mechanical truncation (70-85% reduction, <10ms, $0 cost)
- **Smart Provider**: Intelligent multi-pass condensation with 3 configurable presets (60-95% reduction, variable cost)

**UI Integration:**

- New CondensationProviderSettings component in Settings panel
- Provider selection dropdown with real-time validation
- Smart Provider preset configuration (CONSERVATIVE, BALANCED, AGGRESSIVE)
- Complete internationalization support (9 languages)

**Architecture:**

- Template Method pattern for consistent provider behavior
- Registry pattern for provider management
- Singleton pattern for centralized configuration
- Provider (Strategy) pattern for interchangeable algorithms

**Testing:**

- 110+ backend tests (100% passing)
- 45 UI tests (100% passing)
- 7 real-world conversation fixtures
- Complete integration coverage

**Documentation:**

- 8,000+ lines of technical documentation
- Architecture guides, ADRs, contributing guides
- Provider-specific documentation

**Breaking Changes:** None - Native Provider ensures 100% backward compatibility

**Performance:** All providers tested with real-world data, metrics tracking built-in
10 changes: 9 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,13 @@
},
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
"typescript.tsc.autoDetect": "off",
"vitest.disableWorkspaceWarning": true
"vitest.disableWorkspaceWarning": true,
// Fix for preLaunchTask with PowerShell 7 (Issue #241255)
// Use Windows PowerShell for automation tasks instead of pwsh.exe
// See: docs/guides/vscode-extension-debug-powershell-configuration.md
// FIXED: Removed args ["-Command"] to prevent double -Command error
// VSCode automatically adds -Command to tasks, so we don't specify it
"terminal.integrated.automationProfile.windows": {
"path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
}
}
1 change: 0 additions & 1 deletion apps/vscode-e2e/src/types/global.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import type { RooCodeAPI } from "@roo-code/types"

declare global {
// eslint-disable-next-line no-var
var api: RooCodeAPI
}

Expand Down
1 change: 1 addition & 0 deletions apps/web-evals/next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
6 changes: 6 additions & 0 deletions packages/types/src/global-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ export const globalSettingsSchema = z.object({

condensingApiConfigId: z.string().optional(),
customCondensingPrompt: z.string().optional(),
smartProviderSettings: z
.object({
preset: z.enum(["conservative", "balanced", "aggressive"]),
customConfig: z.string().optional(),
})
.optional(),

autoApprovalEnabled: z.boolean().optional(),
alwaysAllowReadOnly: z.boolean().optional(),
Expand Down
Loading
Loading