Skip to content

chore(deps): upgrade @pierre/diffs to 1.5.2 and @pierre/trees to beta.6 - #16644

Merged
juliusmarminge merged 1 commit into
mainfrom
t3code/bump-pierre-diffs-1.5
Oct 7, 2026
Merged

juliusmarminge merged 1 commit into
mainfrom
t3code/bump-pierre-diffs-1.5

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Problem

We pinned @pierre/diffs at 1.3.0-beta.10 with a five-hunk local patch, and @pierre/trees at 1.0.0-beta.4. Since then Pierre shipped 1.3 through 1.5.2, with parser, worker and virtualization fixes. 1.4 also replaced the editor API that the editable Files panel uses.

Bumping it directly causes two regressions:

Change

  • Bump: @pierre/diffs 1.5.2 and @pierre/trees 1.0.0-beta.6.
  • Files editor: moved to the 1.4 edit API (@pierre/diffs/edit, edit, onEditChange, EditProvider createEditor).
    • The panel stays read-only until the worker's highlight has painted, then attaches the editor. The editor reuses that result, so no file is highlighted on the main thread.
    • Plain text, files past Pierre's tokenize limit, and failed worker highlights become editable immediately, as before.
    • The editor owns the draft. Our own saves echoing back keep the file's identity; a change from elsewhere replaces it.
  • Patch: cut from five hunks to two.
  • Quoted file names: the parser now decodes git-quoted names itself, including ---/+++-only patches. So resolveFileDiffPath and mobile reviewModel no longer unquote a second time. That second pass turned back\slash.txt into backslash.txt.

Upstream changes that come with the bump:

  • src/Dockerfile, build/Makefile, tools/BUILD, .star and .odin files get syntax highlighting.
  • Hunk counts in truncated patches are repaired.
  • A worker that fails to start gives up after 10 s instead of loading forever.

Scope and approval

Maintainer-requested dependency bump (Julius). It touches web and mobile only because they import the same Pierre packages. #10508 edits the old patch file and will need rebasing onto this one.

Verification

Main-thread time while opening the 11.7k-line ChatView.tsx in the Files panel. Measured with a longtask observer, same scratch repo, headless Chromium, three runs each.

Build Longest task while opening Becomes editable after click
main (beta.10) 228, 118, 110 ms immediately; highlight lands ~2 s later
this PR, editor attached on open 4403, 3868 ms ~4.5 s
this PR 156, 118, 109 ms when the highlight paints, ~2.2 s

Highlighting for a nested docker/Dockerfile. Same file and viewport.

Before (main) After
Before: docker/Dockerfile renders as plain text After: docker/Dockerfile is syntax highlighted

Real browser, scratch repo (no real files edited), with no console errors:

  • Typing saves to disk and focus stays in the editor.
  • An external edit on disk is adopted without a manual refresh.
  • Undo walks back the in-app edits and stops at the external change.
  • A review comment on L5–L7 follows its lines when lines are inserted above it, and the composer gets the matching chip.

Tests:

  • fileEditorVirtualization.test.ts: 29/29 pass with the patch; 15 fail without its wrapped-row hunks.
  • diffRendering.test.ts adds a literal-backslash case.
  • StyledDiffCodeView.test.tsx now expects Pierre's 10 s worker-start timeout for a held pool.
  • fileEditorHighlight.test.ts and fileEditorLanguageReadiness.test.ts are deleted. They exercised the two patch hunks upstream now owns, by driving renderer internals that 1.5 replaced.
  • Focused run: 104 tests across the 8 touched files pass. Web and mobile typecheck pass, the web production build passes, and no new lint warnings.

Not verified:

  • Mobile on a device. Covered only by typecheck and reviewModel/shikiReviewHighlighter tests.
  • A recording of the freeze. I couldn't capture one reliably headless, so the long-task table stands in for it.

Behavior change: the undo history no longer survives closing a file and reopening it; edits within a session undo as before.

🤖 Generated with Claude Code — Claude Opus 5.5 (1M context)


Devin Review

…0-beta.6

Move the editable Files surface to the 1.4 edit API. Pierre highlights an
edit session on the main thread, so the panel stays read-only until the
worker's highlight has painted, then attaches the editor.

Upstream now covers the stale-highlight, grammar-readiness and
option-forcing hunks of our patch. The rest shrinks to the subpath exports
and the wrapped-row height retention from #10018.

The parser now decodes git-quoted names itself, so drop our second decode,
which turned a literal backslash into nothing.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Oct 7, 2026
@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 7, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This dependency upgrade also rewires the production file editor and diff renderer, including worker-highlight readiness, edit synchronization, virtualization, and cache behavior. The changes span user-facing web and mobile review paths and are broader than routine dependency maintenance.

You can add or adjust custom eligibility rules. Learn more.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB −24 B (−0.5%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB −24 B (−2.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB −41 B (−0.2%) 29.3 KiB ✅
Claude Live turn messages 2 1 −1 (−50.0%) 8 ✅

Baseline: 517188b · PR result: 799d365 · 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: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

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

@coderabbitai

coderabbitai Bot commented Oct 7, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Team
  • Run ID: 22351285-37c9-441d-a84b-bb0c4958b680
📥 Commits

Reviewing files that changed from the base of the PR and between 517188b and 799d365.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (21)
  • apps/mobile/package.json
  • apps/mobile/src/features/review/reviewModel.ts
  • apps/web/package.json
  • apps/web/src/components/diffs/AnnotatableCodeView.tsx
  • apps/web/src/components/diffs/StyledDiffCodeView.test.tsx
  • apps/web/src/components/diffs/StyledDiffCodeView.tsx
  • apps/web/src/components/files/FilePreviewPanel.tsx
  • apps/web/src/components/files/ReadOnlySourcePreview.tsx
  • apps/web/src/components/files/fileContentRevision.test.ts
  • apps/web/src/components/files/fileContentRevision.ts
  • apps/web/src/components/files/fileEditorHighlight.test.ts
  • apps/web/src/components/files/fileEditorLanguageReadiness.test.ts
  • apps/web/src/components/files/fileEditorVirtualization.test.ts
  • apps/web/src/components/files/projectFilesQueryState.ts
  • apps/web/src/components/pullRequest/PullRequestCodeTab.tsx
  • apps/web/src/lib/diffRendering.test.ts
  • apps/web/src/lib/diffRendering.ts
  • apps/web/vite.config.ts
  • patches/@pierre%2Fdiffs@1.3.0-beta.10.patch
  • patches/@pierre%2Fdiffs@1.5.2.patch
  • pnpm-workspace.yaml
💤 Files with no reviewable changes (4)
  • apps/web/src/components/files/fileEditorHighlight.test.ts
  • apps/web/src/components/files/fileContentRevision.ts
  • apps/web/src/components/files/fileEditorLanguageReadiness.test.ts
  • patches/@pierre%2Fdiffs@1.3.0-beta.10.patch

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The PR upgrades Pierre packages and updates their local diff patch. It migrates editable file previews to the edit API, updates diff viewer types, and changes mobile and web review path mapping to use parser-provided names directly.

Changes

Pierre editor and diff integration

Layer / File(s) Summary
Upgrade Pierre packages and patch
apps/mobile/package.json, apps/web/package.json, pnpm-workspace.yaml, patches/*, apps/web/vite.config.ts, apps/web/src/components/files/fileEditorVirtualization.test.ts
The @pierre/diffs catalog version changes to 1.5.2, and its local patch is updated with partial layout-cache invalidation, resize reconciliation, and package exports. The app dependency and Vite entry point are updated. Virtualization tests use the new edit API.
Update diff viewer types and tests
apps/web/src/components/diffs/*, apps/web/src/components/files/ReadOnlySourcePreview.tsx, apps/web/src/components/pullRequest/PullRequestCodeTab.tsx
Diff viewer props, handles, and callback types specify undefined as the second generic argument. The worker initialization timeout test expects a rejection.
Migrate editable file previews
apps/web/src/components/files/FilePreviewPanel.tsx, apps/web/src/components/files/projectFilesQueryState.ts, apps/web/src/components/files/fileContentRevision*, apps/web/src/components/files/fileEditor*Readiness.test.ts, apps/web/src/components/files/fileEditorHighlight.test.ts
FilePreviewPanel uses the edit API and tracks editor changes and highlight readiness. Query state exposes the current project file contents. The editor-specific cache-key helper and two editor test files are removed.
Preserve parser-provided Git paths
apps/mobile/src/features/review/reviewModel.ts, apps/web/src/lib/diffRendering.ts, apps/web/src/lib/diffRendering.test.ts
Mobile and web path mapping no longer unquotes parser-provided names. A web test checks that a quoted path containing an escaped backslash resolves with a literal backslash.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Other

Sequence Diagram(s)

sequenceDiagram
  participant FilePreviewPanel
  participant WorkerPool
  participant FileRenderer
  participant ProjectFileQuery
  participant SaveQueue
  FilePreviewPanel->>WorkerPool: Prime highlighting
  WorkerPool->>FilePreviewPanel: Return highlight result
  FilePreviewPanel->>FileRenderer: Provide file contents and edit readiness
  FileRenderer->>FilePreviewPanel: Send editor change
  FilePreviewPanel->>ProjectFileQuery: Update optimistic contents
  FilePreviewPanel->>SaveQueue: Queue changed contents
Loading

Suggested reviewers: t3dotgg, maria-rcks

Merge Risk: ⚪ Minimal · up to 799d3

No actionable merge-blocking issue remains after the reviewed changes and normal checks.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely identifies the dependency upgrades, which are the primary changes in the pull request.
Description check ✅ Passed The description covers the problem, changes, scope and approval, verification results, unverified items, and the undo-history behavior change. It provides focused test and build results and includes U…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@juliusmarminge
juliusmarminge merged commit f8ed2a0 into main Oct 7, 2026
34 of 35 checks passed
@juliusmarminge
juliusmarminge deleted the t3code/bump-pierre-diffs-1.5 branch October 7, 2026 01:07
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 7, 2026
## What's Changed
* fix(web): show attempted paths in file preview errors by @maria-rcks in pingdotgg/t3code#15628
* fix(vcs): passive sidebar rows stop retaining remote pollers by @maria-rcks in pingdotgg/t3code#15666
* feat(web): group keybindings settings by area with a page toolbar by @maria-rcks in pingdotgg/t3code#12822
* feat(web): stop T3-owned subagents from Lineage by @Bil0000 in pingdotgg/t3code#15211
* feat(web): add fast actions to linked pull requests by @maria-rcks in pingdotgg/t3code#16627
* feat(web): open right panel tab menu with Mod+T by @Bil0000 in pingdotgg/t3code#15686
* fix(server): provider sessions clean up when their start is interrupted by @juliusmarminge in pingdotgg/t3code#15571
* fix(web): show "No project" near the top of the new thread picker by @juliusmarminge in pingdotgg/t3code#16628
* refactor(server): instrument WS RPCs in group middleware by @juliusmarminge in pingdotgg/t3code#15548
* chore(deps): upgrade @pierre/diffs to 1.5.2 and @pierre/trees to beta.6 by @juliusmarminge in pingdotgg/t3code#16644
* fix(relay): a host restarting onto a deleted tunnel gets a new one by @juliusmarminge in pingdotgg/t3code#16649
* fix(server): recover a deleted tunnel when Cloudflare says "Tunnel not found" by @juliusmarminge in pingdotgg/t3code#16648
* fix(web): iPhone Duo fold controls follow the phone's orientation by @gabrielelpidio in pingdotgg/t3code#16630
* fix(web): keep workspace options when expanding lineage by @maria-rcks in pingdotgg/t3code#16635
* fix(web): preserve bare anchor placeholders in markdown by @maria-rcks in pingdotgg/t3code#16637
* fix(pi): preserve provider identity in discovered models by @maria-rcks in pingdotgg/t3code#16661
* fix(auth): preserve explicitly granted pairing scopes by @juliusmarminge in pingdotgg/t3code#9785
* feat(auth): separate environment administration permissions by @juliusmarminge in pingdotgg/t3code#9786
* feat(auth): separate source control write permissions by @juliusmarminge in pingdotgg/t3code#9787
* feat(auth): separate filesystem read and write permissions by @juliusmarminge in pingdotgg/t3code#9788
* feat(auth): separate browser preview control permissions by @juliusmarminge in pingdotgg/t3code#9789
* feat(auth): separate diagnostics and usage permissions by @juliusmarminge in pingdotgg/t3code#9790
* feat(auth): allow passive terminal observation by @juliusmarminge in pingdotgg/t3code#9791
* fix(auth): keep old clients connected across scope changes by @juliusmarminge in pingdotgg/t3code#10298
* feat(server): hosted agents like ChatGPT can sign in to the T3 MCP server by @juliusmarminge in pingdotgg/t3code#16718


**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261006.2752...v0.0.46-nightly.20261007.2761

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261007.2761
Andrey170170 added a commit to Andrey170170/t3code that referenced this pull request Oct 9, 2026
…raming (#28)

* fix(server): forks no longer merge into their upstream repo's project group (pingdotgg#16353)

Fixes pingdotgg#4880. Originally pingdotgg#14639 by @Project516.

Co-authored-by: Project516 <138796702+Project516@users.noreply.github.com>

* fix(server): stop the startup project sync from delaying the app window (pingdotgg#14912)

* fix(web): avoid blocking image preparation conversions (pingdotgg#13342)

* fix(server): return partial workspace index on timeout (pingdotgg#11500)

* fix(server): probe project favicon candidates concurrently (pingdotgg#12543)

* fix(observability): a failing trace disk no longer stalls the server (pingdotgg#13758)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): status polling no longer locks the git index (pingdotgg#14718)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(shared): scan PATH once per command before spawning, not on every spawn (pingdotgg#12600)

* fix(server): main's startup auto-pull test compiles again (pingdotgg#16357)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): project favicons stop being rescanned every minute (pingdotgg#16206)

Favicons in ProjectEnrichmentService now keep for 15 minutes. Repository identity keeps its 1-minute TTL, so remote changes still show within a minute.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Claude limits load again for users with large transcript histories (pingdotgg#16358)

The Claude capabilities probe now asks for usage with skipBehaviors, so it no longer scans every local transcript and misses its 4 s deadline. Takes over pingdotgg#14456.

Co-authored-by: Ashkaan <a@ashkaan.me>

* Add esthor to the list of GitHub users

* fix(server): caches and ids are written atomically (pingdotgg#16242)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): one-shot initializers no longer race (pingdotgg#16260)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): the PR cache sweep only removes real entry files (pingdotgg#16285)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore: keep one copy each of undici 8 and ws 8 (pingdotgg#16211)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(shared): DrainableWorker keeps running after a failed item (pingdotgg#16223)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): metrics count interrupted work on the monotonic clock (pingdotgg#16207)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* refactor(web): import connection storage as a namespace in its test (pingdotgg#16315)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(contracts): trimmed IDs round-trip (pingdotgg#16300)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): main's settings, keybindings and session tests compile again (pingdotgg#16363)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(lint): catch known tags with Effect.catchTags (pingdotgg#16361)

* fix(observability): T3 Connect tracing stops at the relay boundary (pingdotgg#16314)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(relay): error and deadline responses carry CORS headers (pingdotgg#16253)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): bring back the live shimmer on work log rows (pingdotgg#16372)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* refactor: Effect code gets UUIDs and SHA-256 from Effect's Crypto (pingdotgg#16377)

* fix(relay): export traces through one tracer, one request span each (pingdotgg#16382)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Pi thread titles use linked PR context (pingdotgg#16210)

* fix(desktop): retry transient bearer bootstrap and degrade on session fetch failure (pingdotgg#12919)

* fix(server): avoid scanning completed history for pending secrets (pingdotgg#16409)

* fix(orchestration-v2): let Stop recover stalled runs (pingdotgg#15442)

* fix(release): resolve version-qualified catalog overrides (pingdotgg#16411)

* fix(web): type in front of bold that starts a composer line (pingdotgg#13217)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): prevent browser screenshot filename collisions (pingdotgg#14784)

* fix(server): end clone options before the repository URL (pingdotgg#14781)

* fix(web): queued messages no longer split the composer notice stack (pingdotgg#16400)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* fix(server): reject invalid explicit Bitbucket repositories (pingdotgg#15876)

* fix(desktop): use the crypto service for screenshot IDs (pingdotgg#16415)

* fix(shared): find versioned JetBrains macOS app bundles (pingdotgg#16246)

* fix(server): OpenCode 2 threads get T3 Code's MCP tools (pingdotgg#16142)

* feat(preview): run the browser on the environment server (pingdotgg#15328)

* fix: restore service references breaking ci (pingdotgg#16495)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* fix(mcp): mark declared tool failures as errors (pingdotgg#15617)

* fix(release): unblock nightly browser tests and cli builds (pingdotgg#16515)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* fix(mcp): preserve thread command rejection reasons (pingdotgg#15627)

* chore(deps): upgrade @effect/tsgo to 0.46.1 (pingdotgg#16360)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(orchestration-v2): show reported subagent models (pingdotgg#14108)

Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* fix(web): Apple logo no longer dips below the device host label (pingdotgg#14825)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): show subagent effort and speed in hover cards (pingdotgg#13056)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* feat(web): reopen closed tabs across the app (pingdotgg#15207)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(web): stop wide ordered list markers from clipping (pingdotgg#16523)

* fix(desktop): build AppImage with the static runtime toolset (fixes libfuse2 launch failure) (pingdotgg#7765)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(mobile): keep usage-limit notice opaque (pingdotgg#15602)

* feat(server): GitHub API transport that uses gh only for the token (pingdotgg#16319)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(server): pull requests talk to GitHub's API instead of the gh CLI (pingdotgg#16320)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(server): source control, media and discovery use GitHub's API instead of gh (pingdotgg#16321)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: choose the GitHub account per host, save a GitHub token, and fewer reads per PR action (pingdotgg#16322)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Rebase stack moves each layer onto the rebased layer below it (pingdotgg#16551)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): diff panel keeps the chosen scope while a turn runs (pingdotgg#16571)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(desktop): honor the telemetry opt-out from the shell profile (pingdotgg#16563)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs(marketing): disclose product usage data in the privacy policy (pingdotgg#16562)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): note anonymous usage data in onboarding and link the privacy policy (pingdotgg#16564)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(web): diff panel no longer re-renders every file header each time a patch arrives (pingdotgg#16033)

Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(server): every T3 MCP tool declares who may call it (pingdotgg#16335)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(server): outside agents sign in to the T3 MCP server with OAuth (pingdotgg#16336)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): copy an environment's MCP URL for outside agents (pingdotgg#16337)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(tsconfig): turn off the Schema-over-JSON diagnostic in test files (pingdotgg#16375)

Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(review): CodeRabbit gates outside contributors' pull requests (pingdotgg#16332)

* fix(desktop): include Linux package license and app metadata (pingdotgg#16597)

* fix(server): one failing RPC handler no longer ends the client's other requests (pingdotgg#15515)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(contracts): a context record that cannot be encoded no longer fails the send (pingdotgg#16398)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): open pull request row actions on right-click (pingdotgg#16612)

* fix(web): show attempted paths in file preview errors (pingdotgg#15628)

* fix(vcs): passive sidebar rows stop retaining remote pollers (pingdotgg#15666)

* feat(web): group keybindings settings by area with a page toolbar (pingdotgg#12822)

* feat(web): stop T3-owned subagents from Lineage (pingdotgg#15211)

* feat(web): add fast actions to linked pull requests (pingdotgg#16627)

* feat(web): open right panel tab menu with Mod+T (pingdotgg#15686)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): provider sessions clean up when their start is interrupted (pingdotgg#15571)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): show "No project" near the top of the new thread picker (pingdotgg#16628)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* refactor(server): instrument WS RPCs in group middleware (pingdotgg#15548)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(deps): upgrade @pierre/diffs to 1.5.2 and @pierre/trees to beta.6 (pingdotgg#16644)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(relay): a host restarting onto a deleted tunnel gets a new one (pingdotgg#16649)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): recover a deleted tunnel when Cloudflare says "Tunnel not found" (pingdotgg#16648)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): iPhone Duo fold controls follow the phone's orientation (pingdotgg#16630)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): keep workspace options when expanding lineage (pingdotgg#16635)

* fix(web): preserve bare anchor placeholders in markdown (pingdotgg#16637)

* fix(pi): preserve provider identity in discovered models (pingdotgg#16661)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>

* fix(auth): preserve explicitly granted pairing scopes (pingdotgg#9785)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(auth): separate environment administration permissions (pingdotgg#9786)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(auth): separate source control write permissions (pingdotgg#9787)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(auth): separate filesystem read and write permissions (pingdotgg#9788)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(auth): separate browser preview control permissions (pingdotgg#9789)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(auth): separate diagnostics and usage permissions (pingdotgg#9790)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(auth): allow passive terminal observation (pingdotgg#9791)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(auth): keep old clients connected across scope changes (pingdotgg#10298)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(server): hosted agents like ChatGPT can sign in to the T3 MCP server (pingdotgg#16718)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs: connect Claude Code, Codex, ChatGPT and bots over MCP (pingdotgg#16741)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): thread details card gives titles room to read (pingdotgg#16746)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(mcp): agent HTML pages stop painting slab backgrounds (pingdotgg#16752)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: composer picks up new project skills without a server restart (pingdotgg#16750)

* feat(server): run a project action when a worktree thread settles (pingdotgg#16290)

Co-authored-by: spoukyii <61633921+spoukyii@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): old Claude threads compact on send instead of stacking notices (pingdotgg#16631)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): settled threads stop polling their pull requests (pingdotgg#16762)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): stop storing tool image bytes no client reads (pingdotgg#16652)

* fix(server): status refresh no longer pegs CPU in repos with thousands of untracked files (pingdotgg#16771)

Co-authored-by: Braulio Oliveira <brauliobo@gmail.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>

* perf(server): background branch lookups share one GitHub query per sweep (pingdotgg#16760)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): threads settle as soon as a client sees their PR merge (pingdotgg#16761)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(server,web,mobile): agents see snooze state and link to threads (pingdotgg#16782)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(release): Forgejo build resolves version-qualified catalog overrides

Upstream now pins overrides such as undici@^8 to the catalog; the packaging
script looked up the whole selector and failed. Mirrors upstream pingdotgg#16411.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): HTML renders and PDFs load behind a proxy that forbids framing

Clients frame asset documents from the environment's origin, which is
often not their own. A reverse proxy that adds X-Frame-Options: SAMEORIGIN
blanked every HTML render and PDF preview in that setup. Inline HTML and
PDF asset responses now carry `frame-ancestors *`, which browsers honour
in place of X-Frame-Options.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): desktop renderer may frame asset documents

CSP's `*` matches only http(s) ancestors, so the desktop app's custom
scheme origins are listed explicitly.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Project516 <138796702+Project516@users.noreply.github.com>
Co-authored-by: Igor Makowski <56691628+Mnigos@users.noreply.github.com>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Michel Liao <107891771+Michel-Liao@users.noreply.github.com>
Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: ahalekelly <7078138+ahalekelly@users.noreply.github.com>
Co-authored-by: SkiTee3000 <39069192+SkiTee3000@users.noreply.github.com>
Co-authored-by: Ashkaan <a@ashkaan.me>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Erik Thorelli <ethorelli@gmail.com>
Co-authored-by: James Villarrubia <8172873+jamesvillarrubia@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tristan Manchester <108270628+tristanmanchester@users.noreply.github.com>
Co-authored-by: Arav Jain <aravhawk@gmail.com>
Co-authored-by: Sypher760-gif <sayffadil@gmail.com>
Co-authored-by: Nikita Koynov <43469098+nkoynov@users.noreply.github.com>
Co-authored-by: maria <maria@kuuro.net>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Lorenzo <150276837+Bombatomica64@users.noreply.github.com>
Co-authored-by: Benedikt Rump <bjrump@gmail.com>
Co-authored-by: Stevan Borus <steva.borus@gmail.com>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: spoukyii <61633921+spoukyii@users.noreply.github.com>
Co-authored-by: Derek Trimm <275381468+derektrimm@users.noreply.github.com>
Co-authored-by: Braulio Oliveira <brauliobo@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews size:XL 500-999 changed lines (additions + deletions). vouch:trusted PR 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