chore: re-sync upstream main - #166
Conversation
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Julius Marminge <julius@mac.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
PRs #8437 and #8236 crossed: one made stashShortcutLabel a required ComposerStashMenu prop, the other added a test case without it, so main fails web typecheck. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf44a47611
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const composerFilesSnapshot = [...composerFiles]; | ||
| const composerAttachmentsSnapshot = [...composerImagesSnapshot, ...composerFilesSnapshot]; |
There was a problem hiding this comment.
Render file attachments in the mobile thread feed
When a web or desktop user sends one of the newly included generic files and later opens that thread on mobile, apps/mobile/src/features/threads/ThreadFeed.tsx:1037-1039 filters every non-image attachment out, so the mobile client provides neither the filename nor a download action; a file-only turn instead exposes only the synthetic attachment bootstrap text. Add a mobile file row/download path before making these attachments part of dispatched messages.
AGENTS.md reference: AGENTS.md:L67-L76
Useful? React with 👍 / 👎.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bdb2518ffd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const standaloneSlashCommand = | ||
| settings.planModeEnabled && | ||
| composerImages.length === 0 && | ||
| composerFiles.length === 0 && |
There was a problem hiding this comment.
Exclude file-bearing drafts from
/goal parsing
When a Codex draft contains a generic file and text such as /goal set ..., the following goal-command parser remains eligible because it checks only composerImages. The goal branch then clears the composer before issuing the goal request, so the file is neither sent nor restored—and its pending upload is left behind. Apply the same composerFiles.length === 0 guard used here to the /goal path.
Useful? React with 👍 / 👎.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 80e4a5b1d0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
| className="flex shrink-0 flex-nowrap items-center justify-end gap-2" | ||
| > | ||
| {fileStagingLimit !== null && pendingUserInputs.length === 0 ? ( |
There was a problem hiding this comment.
Keep the image picker available for older servers
When the connected server predates attachmentUploads or advertises image uploads without fileAttachments, fileStagingLimit becomes null, so this condition removes the only click/touch attachment picker. Images remain supported in this configuration—addComposerAttachments accepts them and onSend deliberately falls back to inline data URLs—so version-skewed and remote users can attach images only through drag or paste. Keep the picker visible for images and reject unsupported generic files in the existing validation path.
Useful? React with 👍 / 👎.
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep it up! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
c329467 to
9c4f978
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9c4f978184
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| { | ||
| "name": "t3", | ||
| "version": "2026.8.2900", | ||
| "version": "2026.8.2700", |
There was a problem hiding this comment.
Restore the current fork release version
When this commit is built or installed, the server now advertises 2026.8.2700 even though its immediate parent is the stable-release commit for 2026.8.2900; the same downgrade occurs in the web, desktop, and contracts manifests. Because ServerEnvironment and the service launcher use this manifest value for version-skew and update comparisons, newer code can be treated as an older release and rejected or offered incorrect update behavior. Preserve 2026.8.2900 during the upstream sync rather than reverting the release bump.
Useful? React with 👍 / 👎.
9c4f978 to
9f5c949
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9f5c949dab
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -462,7 +462,7 @@ importers: | |||
| dependencies: | |||
| '@anthropic-ai/claude-agent-sdk': | |||
| specifier: ^0.3.170 | |||
| version: 0.3.220(@anthropic-ai/sdk@0.93.0(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(zod@4.4.3) | |||
| version: 0.3.170(@anthropic-ai/sdk@0.93.0(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(zod@4.4.3) | |||
There was a problem hiding this comment.
Keep the resolved Claude SDK at 0.3.220
Fresh installs now resolve @anthropic-ai/claude-agent-sdk to 0.3.170 instead of the parent commit's 0.3.220 even though apps/server/package.json still allows the newer release. This silently rolls the Claude provider back by 50 patch releases—and discards their runtime fixes and protocol behavior—while the accompanying adapter changes are intended to align the fork with the current SDK. Preserve the existing 0.3.220 lock resolution when regenerating the merged lockfile.
Useful? React with 👍 / 👎.
9f5c949 to
65c54fd
Compare
|
@codex review |
65c54fd to
b2a333f
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
What Changed
Synchronize the fork after PR #164 through upstream commit
053affbed2659f90cd1b1efaaa7a75865c4131c7.This keeps the fork-owned thread delta subscription and Codex protocol behavior, restores LF-only JSONL framing, aligns the fork's Claude adapter with the current SDK types, renders generic file attachments with signed downloads in the mobile thread feed, and updates the Nix pnpm dependency hash for the fork's patched lockfile.
Why
The sync merge exposed three code regressions: mobile users could not see or open generic file attachments, carriage returns inside Codex JSON frames were misread as record separators, and stale fork-only Claude SDK assumptions broke typecheck. The lockfile changes also required the generated Nix dependency hash to be refreshed.
Validation
Authored by GPT-5.6 Sol with the Codex harness.