Skip to content

fix(clients): honor project default models in new threads - #6011

Merged
shivamhwp merged 6 commits into
pingdotgg:mainfrom
anirudhsama:t3code/investigate-default-model-settings
Aug 28, 2026
Merged

fix(clients): honor project default models in new threads#6011
shivamhwp merged 6 commits into
pingdotgg:mainfrom
anirudhsama:t3code/investigate-default-model-settings

Conversation

@anirudhsama

@anirudhsama anirudhsama commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Closes #5796

Problem

Projects with a configured default model did not reliably start fresh drafts with it. Web wrote the currently viewed thread or globally sticky model before the project fallback could apply. Mobile retained a project-local override after submission, so it also continued to beat a configured default.

Fix

Both clients now use the same fresh-draft precedence:

  1. Explicit selection in the currently unsent draft
  2. Configured project default
  3. Last manually selected sticky model
  4. Provider default

Web and desktop resolve the target project's configured model before carried/sticky state. Mobile now separates the unsent draft override from an app-wide persisted sticky selection and clears only the draft-local model after successful submission. Dismissing an unsent draft still preserves its explicit choice; switching to another project does not let that choice beat the other project's configured default.

Validation

  • vp lint apps/web/src/hooks/useHandleNewThread.ts
  • vp test run apps/web/src/composerDraftStore.test.ts (76 tests)
  • vp run --filter @t3tools/web typecheck
  • vp test run apps/mobile/src/state/use-composer-drafts.test.ts apps/mobile/src/lib/modelOptions.test.ts apps/mobile/src/features/threads/new-task-project-selection.test.ts (23 tests)
  • vp run --filter @t3tools/mobile typecheck
  • Integrated browser pass: a GPT-5.6-Sol source thread opened a new draft with the target project's Claude Fable 5 default

Built with GPT-5.6-Sol through the Codex harness in T3 Code.


Note

Medium Risk
Touches persisted composer state on both clients (storage v9 migration and mobile draft file semantics); incorrect precedence or migration could change which model users see on new threads, but behavior is heavily tested and scoped to draft seeding—not send/runtime model binding.

Overview
Aligns web and mobile so fresh new-thread / new-task composers resolve models in the same order: unsent draft pick → project default → app-wide sticky → provider default, instead of letting carried or draft-local state beat a configured project model.

Web adds modelSelectionExplicit on composer drafts so only real picker/trait edits block re-seeding; new-thread flow uses resolveNewThreadModelSelectionOverride (project default over carried model, no self-carry). Storage bumps to v9 and strips non-explicit model seeds from empty draft sessions on upgrade; applyStickyState replaces stale seeded models.

Mobile persists a global sticky model alongside drafts, uses resolveNewTaskModelSelection in the new-task flow, updates sticky on manual model changes, and after a successful send clears draft-local model and workspace so the next task re-resolves defaults. Composer draft persistence waits for hydration before writing to avoid clobbering disk.

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

Note

Honor project default models in new threads via explicit selection tracking

  • Introduces a modelSelectionExplicit flag on composer drafts to distinguish user-picked model selections from seeded defaults. Picker writes and trait edits mark the draft explicit; seed writes do not.
  • New-thread model selection now resolves with precedence: explicit draft pick > project default > sticky selection > carried selection > provider default. Project default wins over carried selection when both exist. See useHandleNewThread.ts and modelOptions.ts.
  • Adds app-wide sticky model selection on mobile via stickyComposerModelSelectionAtom and setStickyComposerModelSelection, persisted alongside drafts. User model changes in the new-task flow update the sticky selection.
  • Strips stale seeded model selections from empty drafts during storage migration (bumps COMPOSER_DRAFT_STORAGE_VERSION to 9 on web). Receipt-only drafts and drafts with content or explicit picks are preserved.
  • Clears draft-local model selection when a new-task flow completes so subsequent tasks re-resolve defaults.
  • Risk: composerDraftStore.applyStickyState now replaces non-explicit draft model selections (including options) with sticky state and may clear the draft entirely if sticky is empty and the draft only carried a non-explicit selection. Reviewers should verify applyStickyState and stripLegacyModelSeedsFromEmptyDraftSessions in composerDraftStore.ts against any consumers expecting seeded models to survive.

Macroscope summarized d7a5d31.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9de7e8b9-1856-4286-8468-5d74454bfd45

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Aug 10, 2026
@anirudhsama anirudhsama changed the title fix(web): honor project default models in new threads fix(clients): honor project default models in new threads Aug 10, 2026
@github-actions github-actions Bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Aug 10, 2026
Comment thread apps/mobile/src/lib/modelOptions.ts
Comment thread apps/mobile/src/state/use-composer-drafts.ts
Comment thread apps/mobile/src/state/use-composer-drafts.ts
@anirudhsama
anirudhsama marked this pull request as ready for review August 10, 2026 16:03
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Comment thread apps/mobile/src/state/use-composer-drafts.ts
@macroscopeapp

macroscopeapp Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes model resolution and draft persistence across web and mobile, adding explicit-selection tracking, sticky model storage, storage migration, and new cleanup and hydration behavior. Because these cross-cutting changes affect which models new threads use and how drafts survive reloads, the scope exceeds a straightforward bug fix.

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

zucram commented Aug 13, 2026

Copy link
Copy Markdown

I reproduced the desktop/web upgrade edge case that is not covered by this patch yet.

Environment: macOS desktop 0.0.34-nightly.20260813.1082, remote project with a verified explicit custom Claude/Opus default. The composer still showed GPT-5.6-Sol after reload. Persisted client state had an empty draft session with activeProvider: "codex" and a GPT model selection, while both sticky fields were empty.

The useHandleNewThread precedence change here is necessary and fixes newly initialized/reopened drafts, but COMPOSER_DRAFT_STORAGE_VERSION remains 8 and hydration restores the legacy draft-local model. If that draft is already the routed empty draft, the same-draft reuse path leaves it alone, so ChatComposer continues to let the persisted activeProvider beat the project default.

Suggested follow-up in this PR:

  • bump the web composer storage version;
  • during migration, only for keys that are draft sessions, strip modelSelectionByProvider / activeProvider from legacy empty drafts;
  • define empty using all user-content surfaces (prompt, attachments, terminal/element contexts, preview annotations, review comments);
  • preserve server-thread composer state, runtime/interaction mode, and every draft with user content;
  • add a hydration/migration test proving a legacy empty GPT draft falls through to the project's Claude default while a typed draft keeps its explicit selection.

This is the desktop/web equivalent of the stale mobile-draft review finding, and it is observable in a released desktop build—not just a theoretical upgrade case.

Comment thread apps/mobile/src/state/use-composer-drafts.ts Outdated
Comment thread apps/mobile/src/state/use-composer-drafts.ts Outdated
Comment thread apps/web/src/hooks/useHandleNewThread.ts Outdated
Comment thread apps/web/src/hooks/useHandleNewThread.ts
Comment thread apps/mobile/src/state/use-composer-drafts.ts Outdated
@anirudhsama
anirudhsama force-pushed the t3code/investigate-default-model-settings branch from 6d3c1dd to 5500e58 Compare August 22, 2026 13:46
Comment thread apps/web/src/composerDraftStore.ts
Comment thread apps/web/src/composerDraftStore.ts
Comment thread apps/web/src/hooks/useHandleNewThread.ts
@anirudhsama
anirudhsama force-pushed the t3code/investigate-default-model-settings branch from 5500e58 to 946268c Compare August 22, 2026 15:20

@cursor cursor Bot left a comment

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.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 946268c. Configure here.

Comment thread apps/web/src/hooks/useHandleNewThread.ts
Comment thread apps/web/src/composerDraftStore.ts
@shivamhwp
shivamhwp merged commit 84b9d9b into pingdotgg:main Aug 28, 2026
25 of 26 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 29, 2026
## What's Changed
* fix(grok): improve skills, plans, usage, and turn reliability by @t3dotgg in pingdotgg/t3code#8358
* fix(server): recover stale Codex approval callbacks by @luckyPipewrench in pingdotgg/t3code#5195
* test(server): remove duplicate missing worktree test by @t3-code[bot] in pingdotgg/t3code#8252
* fix(server): replay all un-applied events during projection bootstrap by @krutftw in pingdotgg/t3code#7538
* test: remove low-signal test files by @t3-code[bot] in pingdotgg/t3code#8397
* test: prune trivial error and layout tests by @t3-code[bot] in pingdotgg/t3code#8400
* Fix Android adaptive launcher icon by @colonelpanic8 in pingdotgg/t3code#4332
* feat(web): split provider settings into list and editor by @t3dotgg in pingdotgg/t3code#8380
* fix(codex): accept Codex 0.150 account plans by @gsimone in pingdotgg/t3code#8447
* fix(tooling): allow ignored-only staged changes by @juliusmarminge in pingdotgg/t3code#8468
* fix(mobile): keep iOS home header stable by @juliusmarminge in pingdotgg/t3code#8467
* fix(web): stop showing red x summaries for ordinary tool failures by @t3dotgg in pingdotgg/t3code#8395
* fix(mobile): refine Git action toast glass styling by @juliusmarminge in pingdotgg/t3code#8399
* fix(desktop): allow preview automation in agent-created threads by @t3dotgg in pingdotgg/t3code#8483
* test(web): remove redundant cache key test by @t3-code[bot] in pingdotgg/t3code#8484
* fix(release): move nightly schedule to minute 38 by @t3dotgg in pingdotgg/t3code#8509
* fix(web): stabilize the provider settings editor by @t3dotgg in pingdotgg/t3code#8472
* fix(web): open GitHub pull requests in browser when loading fails by @t3dotgg in pingdotgg/t3code#8507
* fix(codex): show sub-agent models by @t3dotgg in pingdotgg/t3code#8502
* feat(analytics): report connected client platforms by @t3dotgg in pingdotgg/t3code#8481
* feat(server): accept PDF, ZIP, and other file uploads up to 50MB by @t3dotgg in pingdotgg/t3code#8235
* feat(web): toggle a thread's pin from the keyboard by @ipanasenko in pingdotgg/t3code#8440
* fix(web): add back button to project settings by @StiensWout in pingdotgg/t3code#8168
* refactor(mobile): compile semantic themes for Uniwind by @juliusmarminge in pingdotgg/t3code#7327
* fix(desktop): Cache Runtime locally on WSL Filesystem, dramatically improving launch times  by @ikifar2012 in pingdotgg/t3code#5769
* fix(mobile): show OpenCode model sources in picker by @juliusmarminge in pingdotgg/t3code#8573
* fix(clients): honor project default models in new threads by @anirudhsama in pingdotgg/t3code#6011
* fix(mobile): show file actions on Android by @none23 in pingdotgg/t3code#8215
* fix(connect): explain DPoP connection failures by @extoci in pingdotgg/t3code#8351
* feat(web): make the sidebar project filter a searchable combobox by @SunkenInTime in pingdotgg/t3code#5931
* fix(server): a draft can retry its first send after a failed bootstrap by @shivamhwp in pingdotgg/t3code#8226
* fix(desktop): stop hidden previews draining battery by @Bil0000 in pingdotgg/t3code#8567
* fix(desktop): oauth popups open from the browser preview by @walid-baharwal in pingdotgg/t3code#8435
* fix(web): keep long task drawers usable on small screens by @shivamhwp in pingdotgg/t3code#8313
* fix(opencode): handle child approvals, stops, and model catalogs by @t3dotgg in pingdotgg/t3code#8480
* fix: make thread auto-settling opt-in by @shivamhwp in pingdotgg/t3code#8321
* fix(web): stop session activity timing test from blocking releases by @t3dotgg in pingdotgg/t3code#8585
* fix(mobile): show composer menus when starting a task by @juliusmarminge in pingdotgg/t3code#8587
* fix(web): show the configured stash shortcut by @UtkarshUsername in pingdotgg/t3code#8437
* feat(web): add toggleable confirmation before unpinning a thread by @UtkarshUsername in pingdotgg/t3code#7313
* fix: restore automatic thread settling defaults by @t3dotgg in pingdotgg/t3code#8596
* fix(mobile): restore composer glass and rounded shadows by @juliusmarminge in pingdotgg/t3code#8597

## New Contributors
* @luckyPipewrench made their first contribution in pingdotgg/t3code#5195
* @krutftw made their first contribution in pingdotgg/t3code#7538
* @colonelpanic8 made their first contribution in pingdotgg/t3code#4332
* @ikifar2012 made their first contribution in pingdotgg/t3code#5769
* @walid-baharwal made their first contribution in pingdotgg/t3code#8435

**Full Changelog**: pingdotgg/t3code@v0.0.35...v0.0.36

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.36
aorwall added a commit to aorwall/t3code that referenced this pull request Aug 29, 2026
Merges 58 upstream commits (`badae6a5c` → `6a9d9f988`, upstream v0.0.34
→ v0.0.36) through the `fork-upstream-merge` skill.

`merge-stats.mjs` reconciles exactly: **431 files landed** against **431
in the upstream range**, no gap to explain. Fork delta is 611 files.

## Conflicts

Three, plus one git resolved silently and wrongly.

- **`Sidebar.tsx`** — upstream replaced the project picker's
`Menu`/`MenuRadioGroup` with a searchable `Combobox` (pingdotgg#5931). Took
upstream's structure and re-applied only the
`FEATURES.projectManagement` gate on "New project", now carrying the `//
Fork:` marker it had been missing. Upstream has since grown the mobile
touch-target span itself, so the Mobile Touch Delta has nothing left to
re-apply here — one convergence, unprompted.
- **`ProviderSettingsPanel.tsx`** — upstream split provider settings
into list and editor (pingdotgg#8380, pingdotgg#8472), moving `ProviderLastChecked` and
the refresh button out of `headerAction` into the list footer. Took
upstream's and re-applied the gate as `!readOnly &&
FEATURES.serverAdministration`.
- **`pnpm-lock.yaml`** — took upstream's and re-ran `vp i`, which
restored the fork's `@t3tools/moatless-api` workspace edge.
- **`packages/contracts/src/orchestration.test.ts`** — auto-merged, no
marker, broken. Both sides appended `OrchestrationMessage` to the same
import list and the same `decodeOrchestrationMessage` const at different
offsets, so git took both. Surfaced as a parse error in lint, typecheck
and test at once. This is the case `merge-stats.mjs`'s
conflict-candidate list exists to catch.

`HostedBrowserFrame.tsx` (fork-only) also needed the `renderingActive`
prop pingdotgg#8567 made required. Upstream suspends a parked webview unless
background audio, PiP or a recording still needs it painted; a frame has
none of those to read and is the app's only copy of the preview page, so
it passes `true` and keeps today's behavior.

## Sweep

Five keyword hits, all false positives:

- `apps/web/src/connection/clientMetadata.ts` + test — reports the
client's OS/browser/device on connect (pingdotgg#8481). Auth-adjacent, but it
rides `ClientPresentation` on the relay and remote-bearer bootstraps;
the fork's primary environment sends none of it.
- `packages/client-runtime/src/relay/errorPresentation.ts` + test,
`connection/errors.test.ts` — explain DPoP failures (pingdotgg#8351). Relay only,
and T3 Connect is decided out.

## Feature classification

**Usable as-is**

- Searchable project-filter combobox in the sidebar (pingdotgg#5931).
- Long task drawers stay usable on small screens (pingdotgg#8313) — directly
relevant, the fork's phone story is `apps/web` in mobile Safari/Chrome.
- Toggleable confirmation before unpinning a thread (pingdotgg#7313); toggle
thread pin from the keyboard.
- Back button in project settings (pingdotgg#8168); the configured stash shortcut
is shown (pingdotgg#8437).
- No more red-x summaries for ordinary tool failures (pingdotgg#8395); PRs open
in the browser when loading fails (pingdotgg#8507).
- Project default models are honored in new threads (pingdotgg#6011).
- Provider settings split into list and editor (pingdotgg#8380, pingdotgg#8472) — landed,
though `/settings/providers` is itself gated behind
`serverAdministration`.

**Unsupported in Moatless / needs implementation**

- **Non-image file attachments** (pingdotgg#8235) — a turn may now carry any file
up to 50MB, advertised as `capabilities.fileAttachments.maxUploadBytes`
and sized by `PROVIDER_SEND_TURN_MAX_FILE_BYTES`. Moatless advertises
neither this nor `attachmentUploads`, so the composer's attach
affordance stays off. Costs nothing today (upstream's own web composer
offers images only; `ChatAttachment` widened just far enough to
typecheck), but it is the second capability key to report when uploads
land. Extends the existing **Attachment uploads** entry in
`docs/fork/gaps.md`.
- **Connected-client platform analytics** (pingdotgg#8481) and **DPoP failure
explanations** (pingdotgg#8351) — relay and T3 Connect surfaces, already decided
out of the fork.

No new WS methods entered the contract in this range, so no new
`UnsupportedMethodError` union entries. `unsupported-methods.mjs`
reports `ADD 0`, `DROP 1` (`scripts.run`), `KEEP 2`. The `scripts.run`
DROP is **not** actioned — it is the documented exception in the gaps
register: that union entry answers for `apps/server`, which still stubs
the method (verified surviving in `ws.ts`), not for Moatless.

**Backend behavior to consider reproducing in Moatless**

- **Replay all un-applied events during projection bootstrap** (pingdotgg#7538) —
a one-line pipeline fix upstream; Moatless runs its own projection and
the same class of bug applies.
- **A draft can retry its first send after a failed bootstrap** (pingdotgg#8226)
— Moatless owns turn start, and a draft wedged by a failed bootstrap is
the same dead end here.
- **Recover stale Codex approval callbacks** (pingdotgg#5195) — Moatless owns the
agent runtime in the sandbox.
- **Stop querying Claude context usage after turns** (pingdotgg#8610) — a cheap
correctness/cost fix in the same place Moatless polls.
- **Server-side accept and size-limit non-image uploads** (pingdotgg#8235), the
other half of the gap above.
- Auto-settling churn (pingdotgg#8321 made it opt-in, pingdotgg#8596 reverted) nets to no
change — noted so the next merge does not re-derive it.

## Verification

`verify.mjs`: `tripwires`, `fmt:check`, `lint`, `typecheck` pass. `test`
reports `@t3tools/web` **flaky, passed alone** — in the full run
`MessagesTimeline.test.tsx` skipped all 34 tests on a 30s module-import
timeout under `ChatMarkdown.tsx`; alone the package is 297 files / 3117
tests green. Load, not the merge. `inventory-check.mjs` clean.

Model: Claude Opus 5, via Claude Code in a Moatless sandbox.

---
Moatless task:
https://moatless.soaplabstest.com/tasks/a0c041bb-1426-4591-9296-6a4b0cfa2eff
aaditagrawal added a commit to aaditagrawal/t3code that referenced this pull request Aug 29, 2026
* fix(grok): improve skills, plans, usage, and turn reliability (pingdotgg#8358)

Co-authored-by: Dara Adedeji <daraadedeji07@gmail.com>
Co-authored-by: Ahmed Besic <ahmed-besic@users.noreply.github.com>
Co-authored-by: Michael Brown <michaeltbrown.mtb@gmail.com>
Co-authored-by: Lars Nieuwenhuis <35393046+lnieuwenhuis@users.noreply.github.com>
Co-authored-by: Guilherme Barros <gbarros1095@gmail.com>
Co-authored-by: PC <pc@localhost>
Co-authored-by: 1xpixi <157762409+1xpixi@users.noreply.github.com>

* fix(server): recover stale Codex approval callbacks (pingdotgg#5195)

* test(server): remove duplicate missing worktree test (pingdotgg#8252)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>

* fix(server): replay all un-applied events during projection bootstrap (pingdotgg#7538)

Co-authored-by: Theo Browne <me@t3.gg>

* test: remove low-signal test files (pingdotgg#8397)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>

* test: prune trivial error and layout tests (pingdotgg#8400)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>

* Fix Android adaptive launcher icon (pingdotgg#4332)

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

* feat(web): split provider settings into list and editor (pingdotgg#8380)

* fix(codex): accept Codex 0.150 account plans (pingdotgg#8447)

* fix(tooling): allow ignored-only staged changes (pingdotgg#8468)

* fix(mobile): keep iOS home header stable (pingdotgg#8467)

Co-authored-by: Julius Marminge <julius@mac.lan>

* fix(web): stop showing red x summaries for ordinary tool failures (pingdotgg#8395)

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

* fix(mobile): refine Git action toast glass styling (pingdotgg#8399)

* fix(desktop): allow preview automation in agent-created threads (pingdotgg#8483)

* test(web): remove redundant cache key test (pingdotgg#8484)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>

* fix(release): move nightly schedule to minute 38

Recent scheduled nightlies have been delayed or skipped.

Move the nightly cron from minute 7 to minute 38. Keep the existing three-hour interval. This tests a different point in each three-hour window without claiming it will fix GitHub schedule delivery.

Authored by GPT-5.6 Sol with the Codex harness.

* fix(web): stabilize the provider settings editor (pingdotgg#8472)

* fix(web): open GitHub pull requests in browser when loading fails (pingdotgg#8507)

* fix(codex): show sub-agent models (pingdotgg#8502)

* feat(analytics): report connected client platforms (pingdotgg#8481)

* feat(server): accept PDF, ZIP, and other file uploads up to 50MB (pingdotgg#8235)

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

* feat(web): toggle thread pin from the keyboard

Add a mod+shift+p shortcut that pins or unpins the active thread. Ignore the shortcut during terminal focus and when the server does not support thread pinning.

* fix(web): add back button to project settings (pingdotgg#8168)

* refactor(mobile): compile semantic themes for Uniwind (pingdotgg#7327)

Co-authored-by: codex <codex@users.noreply.github.com>

* fix(desktop): Cache Runtime locally on WSL Filesystem, dramatically improving launch times  (pingdotgg#5769)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>

* fix(mobile): show OpenCode model sources in picker (pingdotgg#8573)

Co-authored-by: Julius Marminge <julius@mac.lan>

* fix(clients): honor project default models in new threads (pingdotgg#6011)

Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>

* fix(mobile): show file actions on Android (pingdotgg#8215)

Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>

* fix(connect): explain DPoP connection failures (pingdotgg#8351)

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

* feat(web): make the sidebar project filter a searchable combobox (pingdotgg#5931)

* fix(server): a draft can retry its first send after a failed bootstrap (pingdotgg#8226)

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

* fix(desktop): stop hidden previews draining battery (pingdotgg#8567)

* fix(desktop): oauth popups open from the browser preview (pingdotgg#8435)

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

* fix(web): keep long task drawers usable on small screens (pingdotgg#8313)

* fix(opencode): handle child approvals, stops, and model catalogs (pingdotgg#8480)

* fix: make thread auto-settling opt-in (pingdotgg#8321)

* fix(web): stop session activity timing test from blocking releases (pingdotgg#8585)

* fix(mobile): show composer menus when starting a task (pingdotgg#8587)

Co-authored-by: Julius Marminge <julius@mac.lan>

* fix(web): show the configured stash shortcut (pingdotgg#8437)

Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>

* feat(web): add toggleable confirmation before unpinning a thread (pingdotgg#7313)

Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>

* fix: restore automatic thread settling defaults (pingdotgg#8596)

* fix(mobile): restore composer glass and rounded shadows (pingdotgg#8597)

Co-authored-by: Julius Marminge <julius@mac.lan>

* Remove Messages Glass Lab experiment (pingdotgg#8599)

* chore(release): prepare v0.0.36

---------

Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Dara Adedeji <daraadedeji07@gmail.com>
Co-authored-by: Ahmed Besic <ahmed-besic@users.noreply.github.com>
Co-authored-by: Michael Brown <michaeltbrown.mtb@gmail.com>
Co-authored-by: Lars Nieuwenhuis <35393046+lnieuwenhuis@users.noreply.github.com>
Co-authored-by: Guilherme Barros <gbarros1095@gmail.com>
Co-authored-by: PC <pc@localhost>
Co-authored-by: 1xpixi <157762409+1xpixi@users.noreply.github.com>
Co-authored-by: Josh <gitlucky@pipelab.org>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Tradi3 <56069280+krutftw@users.noreply.github.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
Co-authored-by: Ivan Malison <IvanMalison@gmail.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Gianmarco <gianmarcosimone89@gmail.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Illia Panasenko <hello@ipanasenko.me>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Matheson Steplock <ikifar2012@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Anirudh Coontoor <anirudh@gosupernova.live>
Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Muhammad Waleed <114993336+walid-baharwal@users.noreply.github.com>
bcotrim pushed a commit to bcotrim/mognet that referenced this pull request Aug 30, 2026
…6011)

Co-authored-by: Shivam Sharma <91240327+shivamhwp@users.noreply.github.com>
(cherry picked from commit 84b9d9b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Project default model is ignored for new threads when another model was selected in a different project

3 participants