Skip to content

chore: merge upstream/main while preserving fork features - #13

Merged
Fryuni merged 51 commits into
mainfrom
t3code/merge-upstream-keeping-fork-features
Sep 16, 2026
Merged

Fryuni merged 51 commits into
mainfrom
t3code/merge-upstream-keeping-fork-features

Conversation

@Fryuni

@Fryuni Fryuni commented Sep 16, 2026

Copy link
Copy Markdown
Owner

What Changed

Syncs this fork with upstream/main while keeping fork-only work intact. The merge brings in the latest upstream fixes and features, including:

Fork features preserved on top:

  • Customizable soft-tint project monograms (feat: add customizable soft-tint project monograms pingdotgg/t3code#11845) and related mobile row/alignment fixes
  • scripts/mobile-native-client.ts plus the updated test-t3-mobile / ios-debugger-agent skill workflow treating a stale native client as a build step, not a blocker
  • Macroscope check-run agents now report a neutral conclusion and drop labels

Why

Keeps the fork current with upstream so future merges stay cheap, without giving up fork-specific functionality. Conflicts were resolved to adopt upstream refactors while re-applying fork behavior where the two overlap.

UI Changes

No new fork UI in this merge. Upstream contributes visible fixes (sidebar brand/button alignment, PR controls in narrow panels, composer focus handling, mobile command palette and keyboard shortcuts); their before/after evidence lives in the referenced upstream PRs.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Generated by opencode (glm-5.3-flash).

juliusmarminge and others added 30 commits September 14, 2026 18:16
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Removed labels from effect service conventions.
Removed labels from UI consistency configuration.
…ad (pingdotgg#11836)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…tgg#11679)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ead (pingdotgg#11852)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ingdotgg#11883)

Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
…dotgg#11906)

Co-authored-by: T3 Code Test <t3code-test@example.com>
kridaydave and others added 21 commits September 15, 2026 10:46
…gg#11381)

Co-authored-by: yashranaway <yashranaway@users.noreply.github.com>
…ngdotgg#8309)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
…tgg#11958)

Co-authored-by: Antony <tnybyn@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…folders (pingdotgg#12008)

The health probe launched the PyInstaller ACP binary every minute and force killed it, leaving about 1 GB of _MEI files per run. The probe now resolves the install on disk without spawning. Each ACP process gets its own temp directory under the profile that is removed when the runtime closes, and the driver sweeps the profile temp root on create.

Continues pingdotgg#11657 by Vita Skacel. Owned temp directory approach from pingdotgg#9626 by ariszz.

Co-authored-by: Vita Skacel <skacel.vita@gmail.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Merge upstream/main (8c18b5b) into the fork. Conflicts resolved to keep
the fork's Forgejo provider, OhMyPi provider, --public-url, wake command,
existing-branch worktree checkout, and trimmed CI workflows:

- knip.jsonc: keep both smoke-cli-archive.ts and upstream's new
  mobile-native-client.ts as script entries.
- PullRequestService.ts: adopt upstream's JSON.stringify ref scope and
  refCacheKey-based diff key, using the fork's Forgejo-aware repository
  normalization.
- PullRequestService.test.ts: mock both `get` (fork) and `resolveLink`
  (upstream) on the source control registry.
- SourceControlProviderRegistry.test.ts: keep the fork's listLogins mock
  and Forgejo refinement test alongside upstream's github/gitlab mocks
  and link-routing test.
- mobile-eas-production.yml stays deleted (fork removed org-only
  workflows).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 16, 2026 02:29
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-16T02:36:30.705651Z 7db37d3 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7db37d34c7

ℹ️ 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".

Comment on lines +143 to +144
if (!queue || queue.length === 0) {
return EMPTY_QUEUE;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Bump the cancellation generation after the queue was taken

When the only queued message has already been removed by take() and is awaiting an attachment upload, pressing Stop calls drain() on an empty queue and returns here without incrementing drainGeneration. The in-flight replay therefore passes the generation check in ChatView and starts a new turn after the interrupt, contrary to Stop's promise to cancel queued messages. Record the drain/cancellation even when no queued entry remains.

Useful? React with 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Unresolved critical and moderate review findings remain.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

This pull request syncs the fork with upstream/main while preserving fork-specific mobile, UI, tooling, and Macroscope functionality.

Changes:

  • Adds protocol compatibility, unsupported-environment handling, and usage/setup/title updates.
  • Adds queued follow-ups, monograms, keyboard/navigation features, and native-client workflows.
  • Updates web, mobile, desktop, server, source-control, linting, documentation, and build tooling.
File summaries
File Change / review note
vite.config.ts Updates Hermes API linting.
patches/react-native-gesture-handler@2.32.0.patch Fixes gesture-handler hover cleanup and typings.
packages/shared/src/keybindings.ts Adds queued-message shortcut.
packages/contracts/src/worktreeSetup.ts Defines setup activity identity.
packages/contracts/src/settings.ts Adds follow-up behavior settings.
packages/contracts/src/settings.test.ts Tests follow-up settings.
packages/contracts/src/keybindings.ts Registers steering command.
packages/contracts/src/environment.ts Adds protocol metadata.
packages/client-runtime/src/work-log/presentation.ts Hides setup activity records.
packages/client-runtime/src/state/usage.ts Adds usage refresh cooldown.
packages/client-runtime/src/state/usage.test.ts Tests cooldown behavior.
packages/client-runtime/src/state/threads-pagination.test.ts Tests pagination replacement.
packages/client-runtime/src/state/threads-atoms.test.ts Updates supervisor test shape.
packages/client-runtime/src/state/threadReducer.ts Projects title state.
packages/client-runtime/src/state/pullRequestRouting.ts Adds read timeouts and routing fallback.
packages/client-runtime/src/state/presentation.ts Presents unsupported environments.
packages/client-runtime/src/connection/presentation.ts Adds unsupported phase. Finding (moderate, 1 vote): Legacy classifiers must treat unsupported as terminal to avoid indefinite spinners and futile reconnect paths.
packages/client-runtime/src/connection/presentation.test.ts Tests unsupported presentation.
packages/client-runtime/src/connection/onboarding.ts Rejects incompatible pairing targets.
packages/client-runtime/src/connection/onboarding.test.ts Tests pairing rejection.
packages/client-runtime/src/connection/layer.ts Watches compatibility during discovery.
packages/client-runtime/src/connection/index.ts Exports compatibility helper.
packages/client-runtime/src/connection/compatibility.ts Implements protocol checks.
packages/client-runtime/src/connection/compatibility.test.ts Tests protocol handling.
packages/client-runtime/src/connection/catalog.ts Stores unsupported reasons.
oxlint-plugin-t3code/rules/no-hermes-unsupported-array-methods.ts Removes the replaced lint rule.
oxlint-plugin-t3code/rules/no-hermes-unsupported-apis.ts Adds generalized Hermes API linting. Finding (moderate, 1 vote): Unwrap ChainExpression before resolving optional calls so Intl.Segmenter?.() is linted.
oxlint-plugin-t3code/rules/no-hermes-unsupported-apis.test.ts Tests Hermes API linting.
oxlint-plugin-t3code/index.ts Registers the new lint rule.
knip.jsonc Adds mobile and title script entries.
docs/user/usage.md Documents automatic usage refresh.
docs/user/project-settings.md Documents monogram icons. Finding (nit, 1 vote): Mobile ignores projectIcon, so selected monograms do not appear despite the documentation claim.
docs/user/keybindings.md Documents iPad shortcuts.
docs/user/composer.md Documents queued follow-ups.
apps/web/src/state/threads.ts Supplies thread snapshots.
apps/web/src/session-logic.ts Filters setup worklog entries.
apps/web/src/routes/_chat.draft.$draftId.tsx Resets draft chat state.
apps/web/src/projectIdentity.ts Uses icon palette colors.
apps/web/src/projectIdentity.test.ts Tests palette-derived identities.
apps/web/src/keybindings.test.ts Tests the steering shortcut.
apps/web/src/composerDraftStore.ts Restores failed draft threads.
apps/web/src/components/usage/UsagePage.tsx Refreshes limits on opening.
apps/web/src/components/ui/dialog-styles.ts Adjusts desktop drag region.
apps/web/src/components/sidebar/SidebarThreadHeader.tsx Simplifies sidebar controls.
apps/web/src/components/sidebar/SidebarChrome.tsx Aligns sidebar branding.
apps/web/src/components/Sidebar.tsx Guards post-settle navigation.
apps/web/src/components/Sidebar.logic.ts Adds parking navigation logic.
apps/web/src/components/Sidebar.logic.test.ts Tests parking navigation.
apps/web/src/components/settings/settingsSearch.ts Adds follow-up search entry.
apps/web/src/components/settings/SettingsPanels.tsx Adds follow-up setting UI.
apps/web/src/components/settings/ProjectSettingsPanel.tsx Adds monogram picker support.
apps/web/src/components/settings/ProjectIconPickerDialog.test.tsx Updates picker test props.
apps/web/src/components/settings/ConnectionsSettings.tsx Displays unsupported environments.
apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx Wraps narrow PR tabs.
apps/web/src/components/pullRequest/PullRequestCodeTab.tsx Adjusts narrow diff controls.
apps/web/src/components/ProviderUpdateLaunchNotification.environments.ts Handles unsupported state.
apps/web/src/components/ProjectMonogram.tsx Renders monogram icons.
apps/web/src/components/ProjectFavicon.tsx Uses monogram overrides.
apps/web/src/components/diffs/DiffFileTree.test.tsx Tests folder state retention.
apps/web/src/components/diffs/diffFileTree.logic.ts Preserves diff reading order.
apps/web/src/components/diffs/diffFileTree.logic.test.ts Tests diff ordering.
apps/web/src/components/device/DevicePanel.tsx Centers empty device actions.
apps/web/src/components/ConnectionStatusDot.tsx Styles unsupported status.
apps/web/src/components/cloud/cloudEnvironmentConnectionPresentation.ts Presents cloud incompatibility.
apps/web/src/components/chat/TraitsPicker.tsx Restores composer focus behavior.
apps/web/src/components/chat/ProviderModelPicker.tsx Adds shortcut tooltip text.
apps/web/src/components/chat/ProviderInstanceIcon.tsx Fixes icon stacking.
apps/web/src/components/chat/ModelPickerSidebar.tsx Fixes badge stacking.
apps/web/src/components/chat/MessagesTimeline.logic.ts Adds queued-message rows.
apps/web/src/components/chat/MessagesTimeline.logic.test.ts Tests queued rows.
apps/web/src/components/chat/ComposerPrimaryActions.tsx Adds queue action while running. Finding (moderate, 2 votes): Steer mode still announces “Queue message”; derive the label from the resolved follow-up behavior.
apps/web/src/components/chat/ComposerPrimaryActions.test.tsx Tests the queue action.
apps/web/src/components/chat/composerEventScope.ts Restores composer focus after menus.
apps/web/src/components/chat/composerEventScope.test.ts Tests menu focus behavior.
apps/web/src/components/chat/CompactComposerControlsMenu.tsx Uses focus-aware menu props.
apps/web/src/components/chat/ChatComposer.tsx Applies focus-aware menus.
apps/web/src/components/BranchToolbarEnvModeSelector.tsx Applies menu focus handling.
apps/web/src/components/BranchToolbarEnvironmentSelector.tsx Applies menu focus handling.
apps/web/src/components/BranchToolbarBranchSelector.tsx Applies menu focus handling.
apps/web/src/components/BranchToolbar.tsx Applies menu focus handling.
apps/web/src/components/AppSidebarLayout.tsx Supports dynamic desktop inset.
apps/server/src/vcs/GitVcsDriver.ts Reuses checkpoint index metadata.
apps/server/src/textGeneration/ThreadTitleLinks.ts Resolves linked subjects.
apps/server/src/textGeneration/ThreadTitleContext.test.ts Tests title context limits.
apps/server/src/textGeneration/TextGenerationUtils.ts Adjusts title limits and schemas.
apps/server/src/textGeneration/TextGenerationPrompts.test.ts Tests title generation changes.
apps/server/src/textGeneration/TextGeneration.ts Adds link context enrichment.
apps/server/src/textGeneration/OpenCodeTextGeneration.ts Passes title refinement state.
apps/server/src/textGeneration/GrokTextGeneration.ts Passes title refinement state.
apps/server/src/textGeneration/CursorTextGeneration.ts Passes title refinement state.
apps/server/src/textGeneration/CodexTextGeneration.ts Passes title refinement state.
apps/server/src/textGeneration/CodexTextGeneration.test.ts Tests title refinement output.
apps/server/src/textGeneration/ClaudeTextGeneration.ts Passes title refinement state.
apps/server/src/textGeneration/AntigravityTextGeneration.ts Passes title refinement state.
apps/server/src/terminal/Manager.test.ts Tests terminal environment overrides.
apps/server/src/sourceControl/SourceControlRepositoryService.test.ts Updates provider mocks.
apps/server/src/sourceControl/SourceControlRateLimit.ts Scopes rate limits by credential.
apps/server/src/sourceControl/SourceControlRateLimit.test.ts Tests credential isolation.
apps/server/src/sourceControl/SourceControlProviderRegistry.ts Adds link resolution.
apps/server/src/sourceControl/SourceControlProvider.ts Defines link subjects.
apps/server/src/sourceControl/GitLabSourceControlProvider.ts Resolves GitLab links.
apps/server/src/sourceControl/githubGraphQlBudget.ts Scopes GitHub budgets.
apps/server/src/sourceControl/githubGraphQlBudget.test.ts Tests quota isolation.
apps/server/src/sourceControl/ForgejoCli.ts Includes API response details.
apps/server/src/serverRuntimeStartup.test.ts Updates projection query mocks.
apps/server/src/server.ts Provides source-control services.
apps/server/src/pullRequest/GitHubPullRequestProvider.ts Preserves retry timestamps.
apps/server/src/pullRequest/GitHubPullRequestCli.ts Scopes GitHub credentials.
apps/server/src/pullRequest/GitHubPullRequestCli.test.ts Updates rate-limit test layers.
apps/server/src/provider/Layers/ProviderSessionReaper.test.ts Updates projection mocks.
apps/server/src/provider/Layers/ProviderService.test.ts Updates projection mocks.
apps/server/src/provider/Layers/ProviderRegistry.test.ts Improves executable errors.
apps/server/src/provider/Layers/CodexProvider.ts Improves binary-path errors.
apps/server/src/provider/acp/AntigravitySessionFiles.ts Cleans stale runtime directories.
apps/server/src/project/WorktreeSetupTracker.ts Returns settled setup snapshots.
apps/server/src/project/ProjectSetupScriptRunner.ts Disables setup-script colors.
apps/server/src/project/ProjectSetupScriptRunner.test.ts Tests setup environment overrides.
apps/server/src/project/AgentSessionScanner.test.ts Updates projection mocks.
apps/server/src/persistence/Services/ProjectionThreads.ts Persists title state.
apps/server/src/persistence/Migrations/052_ProjectionThreadTitleState.ts Adds title-state migration.
apps/server/src/persistence/Migrations.ts Registers migration 052.
apps/server/src/persistence/Layers/ProjectionThreads.ts Reads and writes title state.
apps/server/src/persistence/Layers/OrchestrationEventStore.ts Encodes project icons.
apps/server/src/orchestration/Services/ProjectionSnapshotQuery.ts Adds activity queries and title state.
apps/server/src/orchestration/projector.ts Retains setup and title state.
apps/server/src/orchestration/projector.test.ts Tests setup retention.
apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.test.ts Tests list streaming.
apps/server/src/orchestration/Layers/ProjectionPipeline.ts Projects title state.
apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts Tests icon persistence.
apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts Updates projection mocks.
apps/server/src/orchestration/Layers/CheckpointReactor.ts Adjusts checkpoint timing and refresh.
apps/server/src/orchestration/Layers/CheckpointReactor.test.ts Updates refresh callback shape.
apps/server/src/orchestration/decider.titleRegeneration.test.ts Tests title ownership.
apps/server/src/orchestration/decider.projectScripts.test.ts Tests monogram validation.
apps/server/src/mcp/PreviewAutomationBroker.ts Disconnects timed-out clients.
apps/server/src/git/GitWorkflowService.ts Adds optional fetch ref.
apps/server/src/git/GitManager.test.ts Updates provider registry mocks.
apps/server/src/environment/ServerEnvironment.ts Publishes protocol version.
apps/server/src/environment/ServerEnvironment.test.ts Tests protocol metadata.
apps/server/src/cloud/serviceProtocol.ts Bumps launcher protocol.
apps/server/src/cloud/servicePreflight.test.ts Tests legacy launcher blocking.
apps/server/src/checkpointing/CheckpointDiffQuery.test.ts Updates projection mocks.
apps/server/integration/OrchestrationEngineHarness.integration.ts Updates refresh callback shape.
apps/mobile/src/state/workspaceModel.ts Adds unsupported workspace state.
apps/mobile/src/state/use-remote-environment-registry.ts Alerts on incompatibility.
apps/mobile/src/state/threads.ts Supplies thread snapshots.
apps/mobile/src/state/shell.ts Adds local shell state access.
apps/mobile/src/state/asset-url-state.ts Handles unsupported assets.
apps/mobile/src/persistence/mobile-preferences.ts Persists keyboard behavior.
apps/mobile/src/native/T3ComposerEditor.types.ts Adds enter behavior prop.
apps/mobile/src/native/T3ComposerEditor.tsx Accepts enter behavior.
apps/mobile/src/native/T3ComposerEditor.ios.tsx Sends enter behavior to native.
apps/mobile/src/lib/useHoverGesture.ts Adds pointer hover gestures. Finding (moderate, 3 votes): manualActivation(true) is never activated, so onBegin does not run and row hover feedback is disabled.
apps/mobile/src/lib/threadActivity.ts Surfaces setup failures.
apps/mobile/src/lib/composerEnterBehavior.ts Defines iOS return behavior.
apps/mobile/src/lib/adaptive-navigation.ts Adds overlay navigation state. Finding (critical, 1 vote): routes.length produces an out-of-range reset index; use the appended or replaced thread index.
apps/mobile/src/features/usage/UsageRouteScreen.tsx Refreshes limits when focused.
apps/mobile/src/features/threads/ThreadNavigationSidebar.tsx Adds rename and keyboard actions.
apps/mobile/src/features/threads/threadListV2.test.ts Tests thread jump targets.
apps/mobile/src/features/threads/ThreadFeed.tsx Removes unstable row transitions.
apps/mobile/src/features/threads/thread-title-rename.ts Adds rename resolution logic.
apps/mobile/src/features/threads/thread-title-rename.test.ts Tests rename resolution.
apps/mobile/src/features/threads/thread-route-hydration.ts Defines route hydration state. Findings (moderate, 1 vote each): Treat unsupported as terminal to prevent an indefinite opening spinner; propagate an explicit unsupported state so incompatible environments show client guidance instead of a futile reconnect.
apps/mobile/src/features/threads/thread-route-hydration.test.ts Tests hydration outcomes.
apps/mobile/src/features/threads/NewTaskDraftScreen.tsx Submits hardware Return.
apps/mobile/src/features/threads/floating-working-status.ts Displays unsupported status.
apps/mobile/src/features/settings/SettingsRouteScreen.tsx Adds iOS keyboard settings.
apps/mobile/src/features/settings/components/settings-sheet-targets.ts Adds keyboard settings route.
apps/mobile/src/features/layout/workspace-pane-divider.tsx Removes hover-only divider state.
apps/mobile/src/features/keyboard/threadKeyboardShortcuts.ts Adds thread jump shortcuts.
apps/mobile/src/features/keyboard/hardwareKeyboardCommands.ts Supports command arrays.
apps/mobile/src/features/keyboard/commandPaletteItems.ts Adds palette filtering.
apps/mobile/src/features/home/HomeRouteScreen.tsx Adds thread rename action.
apps/mobile/src/features/home/homeListItems.test.ts Tests thread jump numbering.
apps/mobile/src/features/connection/EnvironmentConnectionNotice.tsx Presents unsupported connections.
apps/mobile/src/features/connection/connectionTone.ts Adds unsupported tone.
apps/mobile/src/features/connection/ConnectionStatusDot.tsx Styles unsupported status.
apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx Disables unsupported toggles.
apps/mobile/src/features/connection/CloudEnvironmentRows.tsx Disables unsupported cloud rows.
apps/mobile/src/features/cloud/cloudEnvironmentPresentation.ts Detects cloud incompatibility.
apps/mobile/src/features/cloud/cloudEnvironmentPresentation.test.ts Tests cloud incompatibility.
apps/mobile/src/components/RowPressable.tsx Adds reusable row feedback.
apps/mobile/src/components/ComposerEditor.tsx Reads keyboard preferences.
apps/mobile/src/App.tsx Sets deep-link initial route.
apps/mobile/README.md Documents native client setup.
apps/mobile/package.json Updates Reanimated and Worklets.
apps/mobile/modules/t3-terminal/ios/T3TerminalView.swift Emits delete input.
apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorModule.swift Exposes enter behavior.
apps/mobile/eas.json Adds preview build and submit profiles.
apps/desktop/vite.config.ts Splits desktop process bundles.
apps/desktop/src/window/DesktopWindow.ts Centers macOS window controls.
apps/desktop/src/window/DesktopWindow.test.ts Tests zoomed controls.
apps/desktop/src/window/DesktopApplicationMenu.ts Avoids duplicate plain-text paste.
apps/desktop/src/window/DesktopApplicationMenu.test.ts Tests accelerator paste behavior.
apps/desktop/src/preload.ts Syncs desktop window insets.
AGENTS.md Documents native client verification.
.macroscope/check-run-agents/ui-consistency.md Makes UI checks neutral.
.macroscope/check-run-agents/effect-service-conventions.md Makes Effect checks neutral.
.agents/skills/ios-debugger-agent/SKILL.md Documents native client preparation.
Review details

Suppressed comments (5)

apps/mobile/src/features/threads/thread-route-hydration.ts:26

  • The new unsupported phase is not treated as terminal here. While another environment is still loading connections, an incompatible target reaches the isLoadingConnections check and keeps showing the opening spinner indefinitely instead of the unavailable state. Include unsupported with the other terminal phases.
    apps/mobile/src/features/threads/thread-route-hydration.ts:34
  • An incompatible environment reaches this helper's generic false result, so ThreadRouteScreen renders the generic "Thread unavailable" view and offers "Reconnect environment" whenever a runtime exists. retryEnvironment cannot fix a protocol mismatch; propagate an explicit unsupported terminal state and show the compatible-client guidance instead of offering a futile retry.
    docs/user/project-settings.md:47
  • The new Monogram choice is rendered by the web ProjectFavicon, but mobile's ProjectFavicon still ignores projectIcon and only renders a fetched favicon or the folder fallback. Consequently a monogram selected here does not appear on mobile, despite this documentation saying the choice appears on connected clients. Wire the override through the mobile project icon presentation or narrow the claim.
    oxlint-plugin-t3code/rules/no-hermes-unsupported-apis.ts:54
  • The added invalid-case table includes Intl.Segmenter?.(), but ESTree represents an optional call with a ChainExpression around the member expression. Passing that wrapper to globalApiPath returns null, so this visitor skips the optional invocation and the rule does not enforce the case its test requires. Unwrap the chain before resolving the API path.
    packages/client-runtime/src/connection/presentation.ts:14
  • Adding unsupported here leaves the legacy sidebar's secondary-environment classifier checking only phase === "error"; an incompatible environment therefore falls through to its connecting list and can show a spinner indefinitely instead of a terminal failure. Update that consumer (and similar phase classifiers) to treat unsupported as terminal and avoid offering a reconnect path that cannot succeed.
  • Files reviewed: 281/282 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

const routes = input.state.routes.slice(0, workspaceIndex + (input.action === "push" ? 1 : 0));
return {
...input.state,
index: routes.length,
const hoverGesture = useMemo(
() =>
Gesture.Hover()
.manualActivation(true)
Comment on lines +246 to +248
: isRunning
? "Queue message"
: "Send message"
@Fryuni
Fryuni merged commit be1cc6b into main Sep 16, 2026
9 checks passed
@Fryuni
Fryuni deleted the t3code/merge-upstream-keeping-fork-features branch September 16, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.