Skip to content

fix(web): scheduled task model picker no longer shifts the dialog - #18940

Merged
Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
flamboh:t3/popup-layout-shift
Oct 13, 2026
Merged

Yash-Singh1 merged 1 commit into
pingdotgg:mainfrom
flamboh:t3/popup-layout-shift

Conversation

@flamboh

@flamboh flamboh commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Note

🤖 Claude Opus 5.5 on behalf of Oliver

Problem

Opening the Model picker in the scheduled task editor makes the dialog grow by about 5px and re-center, so every field jumps. While a Base UI popover is open, it inserts hidden focus guards right after its trigger. The picker was the last child of a space-y-1.5 field, so it stopped being the last child, picked up that spacing, and pushed everything below it.

Fix

The picker gets its own <div>, so the guards land inside it. The closed layout stays exactly the same.

The other fields in that dialog are Selects and a Combobox. Their hidden form input always renders after the trigger, so they were never affected.

Before

https://gh-file-drop-api-prod-galwoqjslzlnws6s.oliver-boorstein.workers.dev/f/144f82e053cfed9e/scheduled-task-model-picker-before.mp4

After

https://gh-file-drop-api-prod-galwoqjslzlnws6s.oliver-boorstein.workers.dev/f/295e09c6f8559fea/scheduled-task-model-picker-after.mp4

Validation

Measured every label's position in the dialog with headless Chromium. Before, each one moved 2.5px when the picker opened. After, none moved, and the closed positions match main exactly. A lint rule for this pattern is in a separate PR, #18943.

Made with Claude Opus 5.5 in Claude Code, running in T3 Code.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Oct 13, 2026
for (let index = meaningful.length - 1; index >= 0; index--) {
const child = meaningful[index]!;
found.push(
...(child.type === "JSXExpressionContainer" ? renderedBy(child.expression) : [child]),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium rules/no-popup-last-in-spaced-container.ts:126

A popup rendered inside a direct JSX fragment is not reported, so <div className="space-y-3"><><Menu /></></div> escapes the rule even though <Menu /> is the last rendered child. possiblyLast passes the fragment itself to elementName, which cannot identify its nested Menu; expand direct fragments with renderedBy before checking popup names.

Suggested change
...(child.type === "JSXExpressionContainer" ? renderedBy(child.expression) : [child]),
...(child.type === "JSXExpressionContainer"
? renderedBy(child.expression)
: child.type === "JSXFragment"
? possiblyLast(child.children)
: [child]),
🤖 Copy this AI Prompt to have your agent fix this:
In file @oxlint-plugin-t3code/rules/no-popup-last-in-spaced-container.ts around line 126:

A popup rendered inside a direct JSX fragment is not reported, so `<div className="space-y-3"><><Menu /></></div>` escapes the rule even though `<Menu />` is the last rendered child. `possiblyLast` passes the fragment itself to `elementName`, which cannot identify its nested `Menu`; expand direct fragments with `renderedBy` before checking popup names.

function mayRenderNothing(child: JsxChild) {
if (child.type !== "JSXExpressionContainer") return false;
const { expression } = child;
if (expression.type === "LogicalExpression" || expression.type === "CallExpression") return true;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium rules/no-popup-last-in-spaced-container.ts:106

A trailing {null} makes the rule miss <Menu /> as the last rendered child, so the spacing hazard goes unreported. mayRenderNothing recognizes null only inside a ternary, while renderedBy returns a standalone null literal and possiblyLast stops there; treat a null Literal as non-rendering too.

   if (expression.type === "LogicalExpression" || expression.type === "CallExpression") return true;
+  if (expression.type === "Literal" && expression.value === null) return true;
🤖 Copy this AI Prompt to have your agent fix this:
In file @oxlint-plugin-t3code/rules/no-popup-last-in-spaced-container.ts around line 106:

A trailing `{null}` makes the rule miss `<Menu />` as the last rendered child, so the spacing hazard goes unreported. `mayRenderNothing` recognizes null only inside a ternary, while `renderedBy` returns a standalone null literal and `possiblyLast` stops there; treat a null `Literal` as non-rendering too.

@macroscopeapp

macroscopeapp Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Would Approve

Macroscope's review found this PR approvable — This one-file change is a contained layout fix that prevents hidden popup focus guards from shifting the scheduled-task dialog, without changing model-picker behavior or closed-state layout. Separate unresolved Medium-severity findings in the supplied review comments remain blocking issues for the repository, although they concern a different lint-rule file.

Not approved because:

  • 2 blocking correctness issues found at or above your repo's Minimum Blocking Severity

Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Oct 13, 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: Advanced
  • Run ID: b3d222a5-1d28-49d8-b96e-22a8f581742f
📥 Commits

Reviewing files that changed from the base of the PR and between bbd98a5 and 1d4fc3f.

📒 Files selected for processing (5)
  • apps/web/src/components/settings/ScheduledTasksSettings.tsx
  • oxlint-plugin-t3code/index.ts
  • oxlint-plugin-t3code/rules/no-popup-last-in-spaced-container.test.ts
  • oxlint-plugin-t3code/rules/no-popup-last-in-spaced-container.ts
  • vite.config.ts

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

📝 Walkthrough

The pull request adds an Oxlint rule that detects popup roots that may render last in containers with spacing utilities. It registers and enables the rule, adds tests, and wraps the scheduled-task model picker in a div.

Changes: Popup spacing detection

Layer / File(s) Summary
Detect popups in spaced containers
oxlint-plugin-t3code/rules/no-popup-last-in-spaced-container.ts
The new rule analyzes popup imports, local components, JSX children, and spacing utilities. It reports popup roots that may render last in a spaced container.
Register, enable, and test the rule
oxlint-plugin-t3code/index.ts, vite.config.ts, oxlint-plugin-t3code/rules/no-popup-last-in-spaced-container.test.ts
The plugin registers the rule, the web-source lint override enables it as an error, and tests cover valid and invalid cases.
Wrap the scheduled-task model picker
apps/web/src/components/settings/ScheduledTasksSettings.tsx
The editor wraps ProviderModelPicker in a div. Its props and selection-update behavior remain unchanged.

Priority: ➖ Normal

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

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to 1d4fc

The popup-spacing rule and scheduled-task picker change are mergeable after normal checks; no actionable issue was established.

Pre-merge checks · Passed 4
Passed Passed checks (4 passed)
Check name Status Explanation
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.
Title check Passed The title clearly and concisely describes the primary UI fix. It uses a conventional commit format and matches the scheduled task model picker change.
Description check Passed The description clearly explains the problem, fix, affected behavior, and detailed verification with before-and-after evidence. It does not include a dedicated Scope and approval section, and it incor…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

Base UI inserts focus guards after an open popover's trigger, so the
scheduled task Model picker, the last child of a space-y field, picked up
that spacing and grew the dialog each time it opened. Give the picker its
own wrapper so the guards land inside it.
@flamboh
flamboh force-pushed the t3/popup-layout-shift branch from 1d4fc3f to 1330681 Compare October 13, 2026 05:52
@flamboh flamboh changed the title fix(web): open popups no longer push the content below them fix(web): scheduled task model picker no longer shifts the dialog Oct 13, 2026
@github-actions github-actions Bot added size:XS 0-9 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Oct 13, 2026
@Yash-Singh1
Yash-Singh1 merged commit e82a1ce into pingdotgg:main Oct 13, 2026
31 checks passed
vedprakash2302 added a commit to vedprakash2302/Cody that referenced this pull request Oct 13, 2026
Brings in upstream through pingdotgg#18940 (e82a1ce).

- Superseded: upstream's resolveBranchName (pingdotgg#18754) now turns a worktree's base ref (refs/heads/x, refs/remotes/<any remote>/x) into the PR base branch and skips commits and tags. It replaces Cody's createWorktree hunk from "fetch the selected base from its own remote"; Cody's fetch from the base's own remote stays. Added a test for a base on a non-primary remote (upstream/release/v2).
- Checked, no change needed: "update everything" (pingdotgg#18053, pingdotgg#18709) sends a remote Cody desktop to its own Cody update feed and only moves standalone servers to versions npm has, so it never installs official T3 over a Cody server.
- Adapted: none. Every other fork patch is untouched by this range.
AdEx-Partners-DE pushed a commit to AdEx-Partners-DE/t3code that referenced this pull request Oct 13, 2026
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 13, 2026
## What's Changed
* fix(server): apply confirmed Claude subagent outcomes by @Yash-Singh1 in pingdotgg/t3code#18778
* fix(mobile): Browser page no longer logs a duplicate key warning by @tris203 in pingdotgg/t3code#18776
* fix(web): a numeric q in the pull requests URL no longer crashes the page by @ScottN-PV in pingdotgg/t3code#18666
* fix(client): T3 Connect clients reconnect once a new tunnel is ready by @shivamhwp in pingdotgg/t3code#16554
* fix(web): leaving the home page while the app loads no longer bounces you to a new draft by @shivamhwp in pingdotgg/t3code#18672
* fix(mobile): attachment images no longer re-download on every reconnect by @shivamhwp in pingdotgg/t3code#18824
* fix(server): a migration id clash stops startup with a clear error instead of crash-looping by @shivamhwp in pingdotgg/t3code#15925
* fix(server): a thread with an event type from a newer build can still resync after a downgrade by @shivamhwp in pingdotgg/t3code#15937
* fix(server): Codex titles and branch names no longer start the user's MCP servers by @brycedbjork in pingdotgg/t3code#17058
* fix(server): Claude thinking before a tool call stays a collapsed Thought by @maria-rcks in pingdotgg/t3code#18887
* perf(server): cached branch PR lookups no longer start git processes by @SunkenInTime in pingdotgg/t3code#17063
* fix(web): compact merge buttons show when they need a second click by @TonybynMp4 in pingdotgg/t3code#18878
* fix(mobile): pull requests load from another environment when theirs is offline by @juliusmarminge in pingdotgg/t3code#18698
* perf(web): collect active tool calls without array shifts by @saphid in pingdotgg/t3code#18853
* fix(web): center the pace icon on the limit card's "left" label by @akash3444 in pingdotgg/t3code#18580
* fix(web): update everything includes npm-installed servers again by @ScottN-PV in pingdotgg/t3code#18709
* fix(server): review guides find Bitbucket heads reported by short hash by @ahilles107 in pingdotgg/t3code#18900
* fix(web): scheduled task model picker no longer shifts the dialog by @flamboh in pingdotgg/t3code#18940
* fix(ci): CodeRabbit reviews no longer request changes by @Yash-Singh1 in pingdotgg/t3code#18954

## New Contributors
* @brycedbjork made their first contribution in pingdotgg/t3code#17058

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3042...v0.0.46-nightly.20261013.3053

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261013.3053
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 13, 2026
## What's Changed
* fix(server): apply confirmed Claude subagent outcomes by @Yash-Singh1 in pingdotgg/t3code#18778
* fix(mobile): Browser page no longer logs a duplicate key warning by @tris203 in pingdotgg/t3code#18776
* fix(web): a numeric q in the pull requests URL no longer crashes the page by @ScottN-PV in pingdotgg/t3code#18666
* fix(client): T3 Connect clients reconnect once a new tunnel is ready by @shivamhwp in pingdotgg/t3code#16554
* fix(web): leaving the home page while the app loads no longer bounces you to a new draft by @shivamhwp in pingdotgg/t3code#18672
* fix(mobile): attachment images no longer re-download on every reconnect by @shivamhwp in pingdotgg/t3code#18824
* fix(server): a migration id clash stops startup with a clear error instead of crash-looping by @shivamhwp in pingdotgg/t3code#15925
* fix(server): a thread with an event type from a newer build can still resync after a downgrade by @shivamhwp in pingdotgg/t3code#15937
* fix(server): Codex titles and branch names no longer start the user's MCP servers by @brycedbjork in pingdotgg/t3code#17058
* fix(server): Claude thinking before a tool call stays a collapsed Thought by @maria-rcks in pingdotgg/t3code#18887
* perf(server): cached branch PR lookups no longer start git processes by @SunkenInTime in pingdotgg/t3code#17063
* fix(web): compact merge buttons show when they need a second click by @TonybynMp4 in pingdotgg/t3code#18878
* fix(mobile): pull requests load from another environment when theirs is offline by @juliusmarminge in pingdotgg/t3code#18698
* perf(web): collect active tool calls without array shifts by @saphid in pingdotgg/t3code#18853
* fix(web): center the pace icon on the limit card's "left" label by @akash3444 in pingdotgg/t3code#18580
* fix(web): update everything includes npm-installed servers again by @ScottN-PV in pingdotgg/t3code#18709
* fix(server): review guides find Bitbucket heads reported by short hash by @ahilles107 in pingdotgg/t3code#18900
* fix(web): scheduled task model picker no longer shifts the dialog by @flamboh in pingdotgg/t3code#18940
* fix(ci): CodeRabbit reviews no longer request changes by @Yash-Singh1 in pingdotgg/t3code#18954

## New Contributors
* @brycedbjork made their first contribution in pingdotgg/t3code#17058

**Full Changelog**: pingdotgg/t3code@v0.0.46-nightly.20261013.3042...v0.0.46-nightly.20261013.3053

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.46-nightly.20261013.3053
adampeterhiggins added a commit to adampeterhiggins/t3code that referenced this pull request Oct 13, 2026
* fix(gitlab): merge request details report their head commit (pingdotgg#18608)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(server): rename built-in models from settings (pingdotgg#18840)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): Git actions follow the selected thread (pingdotgg#18862)

* fix(desktop): preserve updater failure causes in diagnostics (pingdotgg#18864)

* fix(web): attach dropped threads to pending answers (pingdotgg#18789)

* fix(web): keep button text stable during press scaling (pingdotgg#18866)

* fix(bitbucket): preserve PR head commits for review guides (pingdotgg#18402)

* fix(server): return null for unresolved optional commands (pingdotgg#18871)

* fix: show computer-use action titles and align app icons (pingdotgg#18865)

* fix(server): apply confirmed Claude subagent outcomes (pingdotgg#18778)

* fix(mobile): Browser page no longer logs a duplicate key warning (pingdotgg#18776)

* fix(web): a numeric q in the pull requests URL no longer crashes the page (pingdotgg#18666)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client): T3 Connect clients reconnect once a new tunnel is ready (pingdotgg#16554)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): leaving the home page while the app loads no longer bounces you to a new draft (pingdotgg#18672)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): attachment images no longer re-download on every reconnect (pingdotgg#18824)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): a migration id clash stops startup with a clear error instead of crash-looping (pingdotgg#15925)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test>

* fix(server): a thread with an event type from a newer build can still resync after a downgrade (pingdotgg#15937)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test>

* fix(server): Codex titles and branch names no longer start the user's MCP servers (pingdotgg#17058)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>

* fix(server): Claude thinking before a tool call stays a collapsed Thought (pingdotgg#18887)

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

* perf(server): cached branch PR lookups no longer start git processes (pingdotgg#17063)

* fix(web): compact merge buttons show when they need a second click (pingdotgg#18878)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): pull requests load from another environment when theirs is offline (pingdotgg#18698)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(web): collect active tool calls without array shifts (pingdotgg#18853)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>

* fix(web): center the pace icon on the limit card's "left" label (pingdotgg#18580)

* fix(web): update everything includes npm-installed servers again (pingdotgg#18709)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): review guides find Bitbucket heads reported by short hash (pingdotgg#18900)

Co-authored-by: Pawel Mikolajczuk <pmikolajczuk@atlassian.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): scheduled task model picker no longer shifts the dialog (pingdotgg#18940)

* fix(ci): CodeRabbit reviews no longer request changes (pingdotgg#18954)

---------

Co-authored-by: Scott Norteman <snorteman@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Paweł Mikołajczuk <pawel@mikolajczuk.in>
Co-authored-by: Tristan Knight <admin@snappeh.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Bryce Bjork <brycedbjork@gmail.com>
Co-authored-by: maria <maria@kuuro.net>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Antony <97451137+TonybynMp4@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: Akash Moradiya <64416825+akash3444@users.noreply.github.com>
Co-authored-by: Pawel Mikolajczuk <pmikolajczuk@atlassian.com>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
aorwall added a commit to aorwall/t3code that referenced this pull request Oct 14, 2026
Merges `pingdotgg/t3code` up to `6002c5c68c` (42 commits, base
`5070a83a32`), using a merge commit. No open merge PR to stack on; this
branches from `main` at `882bb0a638`.

## Resolution

- **`package.json`** (conflict): dropped upstream's `tsc-rs` 0.6.0 bump
(pingdotgg#19187). The fork removed `tsc-rs`, and the `tsc-rs` tripwire holds
that. New path-policy entry: `root-package-json` (`decide`).
- **`pnpm-lock.yaml`** (conflict, `theirs`): took upstream's copy. Its
seven `tsc-rs@0.6.0` entries fail `minimumReleaseAge` before resolution
can prune them, so I stripped them and let `install.mjs` re-derive the
rest. The fork edges (`moatless-api`, `mermaid`) are back, and `verify
--only lockfile` passes.
- 14 other files that both sides touched merged without conflict.
`duplicate-adds` and `resolution-check` are both clean.
`FilePreviewPanel.tsx` (`decide`) took upstream's `threadRef` prop and
kept both fork deltas. The two unlisted files now have `converged`
entries: `terminal-drawer-open-in-editor` and `thread-shell-subtasks`.
In `threadShell.ts`, upstream's `isChildRunLive` and the fork's listing
filter merged together correctly.
- File counts: 136 files landed, against 136 in the upstream range. The
only differences are `package.json` (missing, because its one upstream
change was the dropped bump) and `docs/fork/inventory.json` (extra,
fork-only). The fork delta is 809 files.
- **Script fix:** Moatless replaced its dispatch match arms with a
`MethodTable` (moatless#1138). Because of that,
`unsupported-methods.mjs` found no arms and exited 2. It now reads
`.detached`/`.session`/`.stream` registrations and follows handlers
passed by name. Result: ADD 0, DROP 0, KEEP 2 (`vcs.switchRef`,
`git.preparePullRequestThread`), which matches `gaps.md`.

## Verification

`verify.mjs`: these checks pass: duplicate-adds, tripwires,
resolution-check, unsupported-methods (after the fix), lockfile, fmt,
lint, typecheck, build. `test` fails. Each of the failing files also
failed when run alone, and they are the same five files as in the
2026-10-13 merge, all caused by the sandbox: shared `AgentScope`, server
`ServerBrowserPage` (no Playwright browser), `AcpAdapterV2`,
`OrchestratorReplayFixtures`, and `OpenCodeServerLedger`.

## Usable as-is

- Full-screen visual replies with zoom (pingdotgg#17561). Links inside HTML
renders open the way chat links do (pingdotgg#18897). App shortcuts keep working
after you click into an HTML render (pingdotgg#18898).
- Touch-scrolling in terminal output (pingdotgg#11305). Fixed: answering a
question reset the editor caret (pingdotgg#11337). Links in agent questions are
now clickable (pingdotgg#19197).
- Fixed: "Subagent needs input" stayed after the subagent finished
(pingdotgg#18996). This is client-side and uses `activityRunStatus` with a
fallback to `status`.
- Slash skill search now works mid-message (pingdotgg#19107). Fixed: removing a
project opened a new thread for it (pingdotgg#15864). Settings now warn when an
environment silently drops a setting (pingdotgg#18334).
- Smaller fixes: context handoff details use the available width
(pingdotgg#19098), pace icon alignment (pingdotgg#18580), tool-call collection perf
(pingdotgg#18853), git file paths keep whitespace in the contract schema
(pingdotgg#12465), Android beta links (pingdotgg#18955).
- Pending context-handoff preview when you pick a model (pingdotgg#18369). It is
computed on the client from `server.providers`
(`requiresNewThreadForModelChange`, `continuation.groupKey`). If
Moatless does not report those fields, the preview shows a handoff on
every provider switch.

## Unsupported in Moatless / needs implementation

- Delegated tasks in separate worktrees (pingdotgg#19102): `isolation:
"worktree"` on the orchestrator MCP `delegate_task`, and
`workspaceStrategy` on the child-launch command. Moatless does not
create worktrees (`FEATURES.worktreeSelection`).
- These land behind flags that are already gated: scheduled-task dialog
fix (pingdotgg#18940, `scheduledTasks`), PR merge/auto-merge button sizing
(pingdotgg#18478, pingdotgg#19111, `pullRequestSurface`), remembering editor selections
(pingdotgg#19078, `openInEditor`), device tool startup failures (pingdotgg#18502,
`deviceHub`), npm "update everything" (pingdotgg#18709, `serverUpdateBanner`),
clone folder names in the welcome wizard (pingdotgg#12474), Cmd+Enter
create-project in the palette (pingdotgg#18901).
- No new RPC methods (ADD 0).

## Backend behavior to consider reproducing in Moatless

I added these to the "Runtime fixes upstream made to its own server"
entry in `docs/fork/gaps.md`:
- Worktree isolation for delegated tasks (pingdotgg#19102).
- Snoozed threads still take queued automatic wakes (pingdotgg#19099).
- Indexed failed-thread error lookup (pingdotgg#18628).
- SQLite: no fsync on every commit, and planner stats collected on open
(pingdotgg#19205, pingdotgg#18471).
- Distinct CI checks with overlapping names (pingdotgg#19162).
- Bitbucket short-hash heads in review guides (pingdotgg#18900).
- Webhook template backtracking (pingdotgg#19160).
- OpenCode timeout formatting (pingdotgg#12469).
- Pi tool schemas and turn-start queueing (pingdotgg#18643, pingdotgg#18639).
- Usage hubs without a host, and Antigravity accounts deduplicated
(pingdotgg#11368, pingdotgg#19207).
- Haiku 5.5 as the default for background text generation (pingdotgg#18781).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/db18f6dc-70c1-4d89-ada7-cd4b4f19a247
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 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.

2 participants