Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Revert "feat(providers): add context compaction across harnesses" - #9284

Merged
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command
Sep 2, 2026
Merged

Revert "feat(providers): add context compaction across harnesses"#9284
maria-rcks merged 1 commit into
mainfrom
revert-8808-t3code/add-compact-command

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Reverts #8808


Note

Medium Risk
Large surface-area revert across orchestration, provider contracts, and UI turn-start paths; risk is mainly regression in turn failures, Claude /compact, and context-meter behavior rather than auth or data loss.

Overview
Reverts the cross-provider context compaction feature: the shared compactThread path through ProviderService and provider adapters is removed, along with orchestration that treated /compact as a special turn, pending-compaction tracking, and synthesized thread.state.changed compaction events.

Compaction is no longer advertised or driven for Codex, Cursor, Grok, or OpenCode (slash commands, native APIs, and Codex contextCompaction → compacted mapping are dropped). Work-log compaction lines are simplified to "Context compacted" without token before/after counts, and ThreadStateChangedPayload no longer carries those fields.

Web and mobile gate the context-meter compact action to Claude (claudeAgent) and submit /compact as a normal message rather than calling a compaction API; composer menus no longer special-case hiding or gating /compact for non-Claude providers. Claude still lists /compact in provider slash commands; resume-compaction banners remain Claude-oriented.

Tests and docs are updated to match the slimmer behavior; Claude adapter tests use sendTurn with /compact instead of compactThread.

Reviewed by Cursor Bugbot for commit 57f0867. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Revert context compaction across provider harnesses

  • Removes the compactThread operation from ProviderService and all provider adapters (Claude, Codex, OpenCode) and session runtimes, along with native compaction routing and fallback compaction logic
  • Removes compact-command handling from the ProviderCommandReactor turn-start handler, including in-progress state, empty-conversation rejection, and blocking of subsequent turns; messages containing the compact command now follow the ordinary turn-send path
  • Removes beforeTokens and afterTokens fields from the ThreadStateChangedPayload schema in providerRuntime.ts; compacted thread-state events and context-compaction activities no longer carry token counts
  • Frontend ChatComposer and ChatViewContent now gate the compact-context action on the selected provider being claudeAgent rather than an advertised slash command, and show "Enable a Claude provider before compacting" when unavailable
  • Removes the /compact command from provider snapshots for Codex, Cursor, Grok, and OpenCode; Claude retains an inline compact descriptor
  • Behavioral Change: provider snapshots no longer advertise a compact slash command (except Claude); ThreadStateChangedPayload drops beforeTokens/afterTokens; ProviderCommandReactor no longer rejects turns during compaction or attaches request identifiers to turn-start failure activities; formatFailureDetail now formats ProviderAdapterValidationError via Cause.pretty instead of returning issue text directly; the applyProjectsProjection projector no longer deletes pending turn-start records on provider.turn.start.failed activities

Macroscope summarized 57f0867.

@github-actionsgithub-actionsBot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Sep 2, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire13.2 KiB13.1 KiB−86 B (−0.6%)15.1 KiB
CodexThread snapshot wire6.9 KiB6.9 KiB−2 B (−0.0%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB−84 B (−1.3%)7.8 KiB
CodexLive turn WebSocket decoded55.5 KiB54.7 KiB−822 B (−1.4%)66.4 KiB
CodexLive turn messages880 (0.0%)21
ClaudeTotal thread wire13.3 KiB13.2 KiB−154 B (−1.1%)15.1 KiB
ClaudeThread snapshot wire6.9 KiB6.9 KiB+2 B (+0.0%)7.3 KiB
ClaudeLive turn WebSocket wire6.4 KiB6.3 KiB−156 B (−2.4%)7.8 KiB
ClaudeLive turn WebSocket decoded56.4 KiB55.5 KiB−928 B (−1.6%)66.4 KiB
ClaudeLive turn messages108−2 (−20.0%)21

Baseline: fb93902 · PR result: 57f0867 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@maria-rcks
maria-rcks merged commit 63f334b into mainSep 2, 2026
23 checks passed
@maria-rcks
maria-rcks deleted the revert-8808-t3code/add-compact-command branch September 2, 2026 22:58
github-actionsBot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 3, 2026
## What's Changed
* feat(desktop): browser profiles for the preview browser by @juliusmarminge in pingdotgg/t3code#7254
* refactor(shared): move the node:sqlite Effect SQL client into shared by @juliusmarminge in pingdotgg/t3code#7272
* feat(web): add opt-in panel animations by @maria-rcks in pingdotgg/t3code#8830
* feat(projects): automatically pull clean default branches by @maria-rcks in pingdotgg/t3code#9277
* fix(web): show pull request state icons in tabs by @flamboh in pingdotgg/t3code#9112
* feat(providers): add context compaction across harnesses by @maria-rcks in pingdotgg/t3code#8808
* feat(web): add proactive panels by @maria-rcks in pingdotgg/t3code#9276
* fix(web): unify control sizing across settings pages by @juliusmarminge in pingdotgg/t3code#9281
* fix(web): offer browser profiles from the empty-panel launcher by @juliusmarminge in pingdotgg/t3code#9279
* Revert "feat(providers): add context compaction across harnesses" by @maria-rcks in pingdotgg/t3code#9284
* fix(web): show scroll-to-end as soon as the last message slips under the composer by @juliusmarminge in pingdotgg/t3code#9280
* fix(cursor): honor auto and full access modes by @maria-rcks in pingdotgg/t3code#9283
* fix(desktop): detect installed Spectre libs for Windows builds by @juliusmarminge in pingdotgg/t3code#9285
* fix(pull-requests): missing features & better behaviour by @maria-rcks in pingdotgg/t3code#9188
* fix(providers): discover workspace skills everywhere by @maria-rcks in pingdotgg/t3code#9180
* fix(server): preserve automatic settlement timestamps by @eimexdev in pingdotgg/t3code#9254
* fix(opencode): show Reasoning selector for OpenCode models by @maria-rcks in pingdotgg/t3code#9287
* feat(web): preview document attachments in the file viewer by @juliusmarminge in pingdotgg/t3code#9292
* chore(ci): narrow the UI consistency check-run agent by @juliusmarminge in pingdotgg/t3code#9297
**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260902.1261...v0.0.39-nightly.20260903.1262
Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260903.1262
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL500-999 changed lines (additions + deletions).vouch:trustedPR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maria-rcks