Skip to content

chore: sync with upstream/main (47f2c8d29) - #84

Merged
Fryuni merged 366 commits into
mainfrom
fryuni/merge-upstream-main-5
Nov 2, 2026
Merged

Fryuni merged 366 commits into
mainfrom
fryuni/merge-upstream-main-5

Conversation

@Fryuni

@Fryuni Fryuni commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Problem

The fork is 359 commits behind upstream/main. This sync keeps the features recorded in docs/adr and uses upstream's implementation wherever it can.

Change

Merged pingdotgg/t3code main at 47f2c8d29e98. 21 files conflicted, and 2 upstream workflow changes hit workflows the fork deletes (pr-vouch.yml, release.yml), which stay deleted per ADR 0011. Upstream added no new workflows and did not touch ci.yml.

Re-homed on upstream's structure

  • ADR 0010, public URL. Upstream's managed policy (#27197) moved the auth policy into resolveServerAuthPolicy and rewrote isRemoteReachableHost around loopbackBindAddress. The fork's isRemoteReachableServer now wraps upstream's rule, and resolveServerAuthPolicy reads it, so the managed-policy listen check also sees a public-URL server as remote-reachable.
  • ADR 0011, release source. t3 update keeps the fork's resolveUpdateTarget beside upstream's policy refusal and exported runUpdate. Remote self-updates keep the fork's re-target. In a fork build, the managed "stable only" check no longer judges the client's requested version, because the server ignores that version (test row added). "Updates off" still refuses. Mobile's Check for updates keeps passing releaseRepository beside upstream's new policy gating.
  • ADR 0016, scheduled task options. The resolver keeps the fork's inherited-selection input and upstream's knownOptions filter (#28133). The update path keeps the fork's target beside upstream's new project-aware worktree strategy. The web dialog keeps the full selection beside upstream's managed runtime-mode clamp and one-time schedules.
  • ADR 0008 / 0009. Worktree launches keep the existing-branch guard and the fetch-stage warning on upstream's remote that is now passed into fetchWorktreeBaseCommit. Mobile's Default base branch field sits beside upstream's managed-setting subtitles.
  • ADR 0022 / 0023 / 0024 / 0011 (tests). Re-applied the checkout tests, the leading-command slash menu prop, the provider sync imports, and the fork's update-everything rows beside upstream's new policy cases.
  • Agent context budget. Measured value: mcpToolListJsonBytes 48,543, still the fork's ~1 KB over upstream's 47,538.

Fixes for new upstream interactions

  • fix(mcp): upstream's link_pull_requests (#27994) resolved its URLs without a project, so ADR 0020's clone-host mapping did not apply. It now passes the thread's project (existing test extended).
  • fix(server): isRemoteReachableServer accepts ServerConfig's optional publicUrl.
  • test(server): the fork's unbound scheduled-task tests stub upstream's new default-branch lookup (#27983).
  • docs(web): the Settings label still calls 127.0.0.1.nip.io loopback, but upstream's server now counts that name as remote. The comment now says why the two differ.
  • ci: upstream's new expand-at-bottom timeline test (#29166) failed in a serial run of every browser file, which landed its heading 104 px off. It passes alone and in parallel. Test Web now runs the suite in parallel as upstream does, and only the file-preview browser tests (src/components/files/) in a separate serial step (ADR 0011).

Implemented upstream: nothing this round replaces a fork feature. Upstream's scheduled tasks now start from the remote's default branch, which ADR 0009 records.

ADRs

All ADRs now compare against 47f2c8d29. Notes were added or rewritten in 0009, 0010, 0011 (version core is now 0.1.6; Test Web layout), 0016, and 0020.

git show --remerge-diff 0b65e464b8 shows the whole conflict resolution.

Scope and approval

This is a maintainer-requested sync of the fork onto upstream. Every fork divergence is covered by an ADR in docs/adr.

Verification

  • vp run check:changed: format, lint, knip, GraphQL, typecheck (39 packages), tests 2958/2958 (144 files), and React compiler coverage all pass.
  • Test Web's two new steps, run locally as CI runs them: 504 files / 5426 tests in parallel, plus 9 files / 152 tests serially. Together that is the full suite CI ran before (513 files / 5578 tests).
  • Local environment notes:
    • GitManager tests need GIT_CONFIG_GLOBAL=/dev/null here, because the global config sets push.default=upstream.
    • Chromium needed NixOS libraries on LD_LIBRARY_PATH.
  • Not run locally: the full package suites, repo-wide vp check, a manual pass in a real client, and the fork release workflow.

Model: Claude Opus 5.5; harness: Claude Code in T3 Code.

🤖 Generated with Claude Code

macodev00 and others added 30 commits November 1, 2026 02:39
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…rly 404 (pingdotgg#27722)

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…branch named t3 exists (pingdotgg#27815)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n alias (pingdotgg#27859)

Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Omar <76748259+omar9848492@users.noreply.github.com>
…s hanging (pingdotgg#27924)

Co-authored-by: Trevor Edwards <9443483+trevoedwards@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#27990)

Co-authored-by: Claude Code (claude-opus-5-5) <claude-code@logueos.local>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…T3 runs (pingdotgg#28064)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…op (pingdotgg#28072)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…witches threads (pingdotgg#28091)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…tgg#28132)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…_capabilities reports (pingdotgg#28133)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
t3dotgg and others added 14 commits November 1, 2026 21:50
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…28995)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… work (pingdotgg#28629)

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…server (pingdotgg#29127)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Completion alerts waited two seconds after the client received a completed thread state. Audio was also fetched and decoded only when an alert needed to play, adding a first-play delay.

Notify immediately when the thread shell reports completion, and preload both sounds when a user gesture unlocks audio. Keep completion deduplication and suppression for existing, archived, and stopped runs.

This intentionally removes the continuation grace for completion alerts. A completed run can now notify before an automatic continuation starts. The sidebar's two-second placement grace and server settlement behavior remain in place.

Validation: `vp run check:changed` passes after merging current main, including 40 affected tests, formatting, lint, unused-code checks, affected typechecks, and React compiler checks. Tests cover immediate completion, duplicate suppression across reconnects, preloaded audio reuse, and retrying failed loads on alerts without retrying on every gesture. Audible timing has not been verified in a live client.

Model: GPT 6.1 Sol. Harness: Codex through T3 Code.
…unched T3 (pingdotgg#29169)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings November 2, 2026 10:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 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-11-02T12:10:08.416177Z 5d09edd New commits
ℹ️ 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: c1d1aa1f73

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

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

The SSH error path skips a viable password fallback when an agent-held key cannot sign, preventing connections to hosts that still offer password authentication.

1 open issue
What changed in this PR

Synchronizes the fork with upstream 47f2c8d29, preserving ADR-documented fork behavior while integrating upstream runtime, provider, tooling, and client updates.

Changes:

  • Integrates managed-policy, scheduling, thread-tag, usage, and source-control updates.
  • Updates startup caching, authentication, desktop integration, previews, and web/mobile behavior.
  • Extends regression coverage, advances the version core to 0.1.6, and refreshes documentation and ADR baselines.

This pull request requires changes.

Two unresolved findings block approval:

  • Moderate — apps/web/src/components/desktop/DesktopWebLinkCoordinator.tsx:240 (1 vote): With Local environment disabled and no saved remotes, discovery never settles for the link wait, leaving OS-delivered PR and commit links pending. Treat completed discovery with no environments as settled while continuing to wait for remotes still being discovered.
  • Moderate — packages/ssh/src/tunnel.ts:1457 (2 votes): An agent-signing failure now bypasses password fallback even when the server offers password authentication. Preserve the askpass retry when password or keyboard-interactive authentication remains available, or offer an explicit fallback.
File Description
scripts/​render-metrics.ts Exports the runner and uses temporary storage for reports.
scripts/​mobile-showcase.ts Fully decodes PNGs during asset validation.
scripts/​lib/​reference-repos.ts Reads Alchemy’s version from the workspace catalog.
scripts/​lib/​dev-share.ts Updates Tailscale diagnostics and cleanup guidance.
scripts/​dev-runner.ts Corrects the suggested Tailscale cleanup command.
scripts/​check-changed-command.ts Adds Windows-safe Vite+ command execution.
scripts/​build-desktop-artifact.ts Registers packaged server-cache preparation.
scripts/​build-desktop-artifact.test.ts Refines packaged-executable invocation assertions.
packages/​ssh/​src/​tunnel.ts Changes retries after agent-signing failures; fallback finding remains unresolved.
packages/​ssh/​src/​auth.ts Identifies SSH agent-signing errors.
packages/​source-control-gitlab/​src/​server/​GitLabCli.ts Classifies expired OAuth credentials as authentication failures.
packages/​source-control-gitlab/​src/​server/​GitLabCli.test.ts Covers GitLab authentication-error classification.
packages/​source-control-github/​src/​server/​GitHubSourceControlProvider.ts Honors explicit hosts during clone-URL lookup.
packages/​source-control-core/​src/​shared/​definition.ts Adds immutable-media metadata.
packages/​source-control-core/​src/​server/​SourceControlProvider.ts Adds an optional clone-lookup host.
packages/​shared/​src/​usageMerge.ts Prevents supplementation across different model filters.
packages/​shared/​src/​usageMerge.test.ts Covers filtered partial-usage merging.
packages/​shared/​src/​toolOutput.ts Preserves compact PR-link operation counts.
packages/​shared/​src/​toolOutput.test.ts Verifies compact link-count output.
packages/​shared/​src/​threadLinks.ts Uses Hermes-compatible named-group iteration.
packages/​shared/​src/​t3McpToolPresentation.test.ts Covers additional MCP tool-name prefixes.
packages/​shared/​src/​symlink.ts Probes the terminal target at the hop limit.
packages/​shared/​src/​String.ts Truncates without splitting Unicode code points.
packages/​shared/​src/​String.test.ts Covers Unicode-aware truncation.
packages/​shared/​src/​serverSettings.test.ts Verifies the OpenCode text-generation fallback.
packages/​shared/​src/​relayClient.ts Adds policy-managed installation failures.
packages/​shared/​src/​preview.ts Removes an outdated URL-policy comment.
packages/​shared/​src/​nodeSqliteClient.ts Sets a startup SQLite busy timeout.
packages/​shared/​src/​inlineSkills.ts Preserves provider skill names as fallback labels.
packages/​shared/​src/​inlineSkills.test.ts Covers skill-label fallback behavior.
packages/​shared/​src/​git.ts Normalizes accented branch-name fragments.
packages/​shared/​src/​git.test.ts Covers accent normalization in branch names.
packages/​shared/​src/​composerTrigger.ts Recognizes case-insensitive model commands.
packages/​shared/​src/​composerTrigger.test.ts Covers capitalized model commands.
packages/​shared/​src/​composerContextReferences.ts Handles inverted terminal-context ranges.
packages/​shared/​src/​composerContextReferences.test.ts Covers inverted terminal-context projection.
packages/​shared/​src/​cliArgs.ts Preserves escaped trailing whitespace.
packages/​shared/​src/​cliArgs.test.ts Covers escaped and surrounding whitespace.
packages/​shared/​src/​agentAwareness.ts Prioritizes pending asynchronous questions.
packages/​shared/​src/​agentAwareness.test.ts Updates asynchronous-question awareness expectations.
packages/​provider-pi/​src/​server/​status.ts Adjusts version and authentication probe timeouts.
packages/​provider-pi/​src/​server/​adapter.ts Avoids duplicating question titles.
packages/​provider-fx/​src/​server/​status.ts Extends the CLI version-probe timeout.
packages/​provider-cursor/​src/​server/​textGeneration.test.ts Updates mocks for lazy SDK loading.
packages/​provider-cursor/​src/​server/​driver.ts Supplies HTTP access to catalog construction.
packages/​provider-cursor/​src/​server/​CursorUsageAccounts.ts Checks local state before Keychain usage lookup.
packages/​provider-cursor/​src/​server/​CursorSdk.test.ts Removes the eager SDK mock.
packages/​provider-cursor/​src/​server/​auth.test.ts Loads credential storage through the SDK loader.
packages/​provider-core/​src/​server/​textGenerationUtils.ts Avoids splitting title surrogate pairs.
packages/​provider-core/​src/​server/​notification.ts Excludes model-switch data from notifications.
packages/​provider-core/​src/​server/​maintenance.ts Adds manual-update command metadata.
packages/​provider-acp/​src/​server/​sessionConfig.ts Marks ACP reasoning controls explicitly.
packages/​provider-acp/​src/​server/​sessionConfig.test.ts Verifies reasoning-role metadata.
packages/​provider-acp/​src/​server/​runtimeModel.test.ts Updates idle-compaction event expectations.
packages/​provider-acp-registry/​src/​server/​adapter.ts Registers Copilot lost-session recovery.
packages/​effect-codex-app-server/​src/​errors.ts Adds output-stream transport errors.
packages/​effect-acp/​src/​protocol.ts Avoids repeatedly splitting incomplete protocol lines.
packages/​contracts/​src/​threadTags.ts Defines thread-tag validation and stored tags.
packages/​contracts/​src/​server.ts Exposes managed-policy summaries.
packages/​contracts/​src/​relayClient.ts Defines policy-blocked installation failures.
packages/​contracts/​src/​providerRuntime.ts Extends provider-turn usage metadata.
packages/​contracts/​src/​providerPolicy.ts Defines runtime-mode ceiling comparisons.
packages/​contracts/​src/​orchestratorMcp.ts Documents one-time schedules and policy blocks.
packages/​contracts/​src/​model.ts Adds reasoning roles and updates OpenCode’s default.
packages/​contracts/​src/​index.ts Exports managed-policy and thread-tag contracts.
packages/​contracts/​src/​environmentHttp.ts Declares policy-forbidden pairing responses.
packages/​contracts/​src/​environment.ts Advertises one-time scheduling support.
packages/​contracts/​src/​auth.ts Adds runtime ceilings to OAuth approval details.
packages/​contracts/​package.json Advances the contracts version core to 0.1.6.
packages/​client-runtime/​src/​textPaste.ts Supports paste shortcuts on non-Latin layouts.
packages/​client-runtime/​src/​textPaste.test.ts Covers physical-key shortcut fallback.
packages/​client-runtime/​src/​state/​threadSettled.ts Clarifies pending-request snooze restrictions.
packages/​client-runtime/​src/​state/​threadSearch.test.ts Covers fresh local-open search metadata.
packages/​client-runtime/​src/​state/​threads.ts Clears cached misses and exports tag filtering.
packages/​client-runtime/​src/​state/​threadRelationships.ts Includes selected-thread lineage without a shell.
packages/​client-runtime/​src/​state/​threadInbox.ts Simplifies working-state snapshot construction.
packages/​client-runtime/​src/​state/​providerInstanceDisplay.ts Validates accent colors before showing badges.
packages/​client-runtime/​src/​state/​providerInstanceDisplay.test.ts Covers invalid badge accent colors.
packages/​client-runtime/​src/​state/​orchestrationV2Projection.ts Treats tag updates as non-activity events.
packages/​client-runtime/​src/​state/​orchestration.ts Adds on-demand native-child-work queries.
packages/​client-runtime/​src/​state/​olderSettledThreads.ts Canonicalizes older-thread shelf scopes.
packages/​client-runtime/​src/​device/​stream.ts Passes device AVC configuration through unchanged.
packages/​client-runtime/​src/​connection/​routes.test.ts Covers newly paired route ordering.
package.json Adds startup profiling tooling.
native/​kde-snap-shot/​src/​transport_tests.rs Checks PNG compression-level metadata.
native/​hyprland-snap-shot/​src/​transport_tests.rs Checks PNG compression-level metadata.
infra/​relay/​src/​agentActivity/​agentActivityPayloads.ts Exports activity text limits and truncation.
docs/​user/​thread-sidebar.md Clarifies manual continuation after limits.
docs/​user/​t3-connect-troubleshooting.md Documents tunnel logs for diagnostics.
docs/​user/​remote-access.md Corrects Tailscale mapping-removal instructions.
docs/​user/​providers-pi.md Clarifies context-meter availability.
docs/​user/​providers-opencode.md Documents OpenCode compaction configuration.
docs/​user/​providers-acp.md Clarifies context-meter defaults.
docs/​user/​install.md Updates provider maintenance and policy guidance.
docs/​orchestration-v2/​feature-lifecycles.md Corrects Codex revert-history hydration guidance.
docs/​internals/​web-ui.md Updates the banner composition example.
docs/​internals/​providers.md Documents manual Chocolatey maintenance.
docs/​internals/​devices.md Removes obsolete AVC rewriting guidance.
docs/​adr/​0027-worktree-cleanup-reads-git-2-56-gitfile-errors.md Refreshes the upstream comparison reference.
docs/​adr/​0026-show-cite-for-touch-selections.md Refreshes the upstream comparison reference.
docs/​adr/​0025-ohmypi-model-presets.md Refreshes the upstream comparison reference.
docs/​adr/​0024-sync-provider-edits-across-environments.md Refreshes the upstream comparison reference.
docs/​adr/​0023-split-leading-commands-in-first-prompt.md Refreshes the upstream comparison reference.
docs/​adr/​0022-add-checkouts-from-project-settings.md Refreshes the upstream comparison reference.
docs/​adr/​0019-searchable-settings-project-scope.md Refreshes the upstream comparison reference.
docs/​adr/​0018-preserve-dead-key-composer-input.md Refreshes the upstream comparison reference.
docs/​adr/​0017-terminal-split-on-mod-s.md Refreshes the upstream comparison reference.
docs/​adr/​0014-open-project-prs-from-thread-menus.md Refreshes the upstream comparison reference.
docs/​adr/​0013-connection-localhost-url-templates.md Refreshes the upstream comparison reference.
docs/​adr/​0012-worktree-cleanup-reclaims-ignored-files.md Refreshes the upstream comparison reference.
docs/​adr/​0008-start-threads-on-existing-branches.md Refreshes the upstream comparison reference.
docs/​adr/​0007-model-slug-qualifiers-in-picker-labels.md Refreshes the upstream comparison reference.
docs/​adr/​0004-shared-pull-request-opening.md Refreshes the upstream comparison reference.
docs/​adr/​0003-forgejo-pull-request-parsing-and-sync.md Refreshes the upstream comparison reference.
docs/​adr/​0002-forgejo-repository-identity.md Refreshes the upstream comparison reference.
docs/​adr/​0001-forgejo-discovery-extensions.md Refreshes the upstream comparison reference.
apps/​web/​src/​vscodeThemeImport.ts Adds validated JSONC theme import.
apps/​web/​src/​themePalette.ts Generates stable IDs for non-Latin names.
apps/​web/​src/​themePalette.test.ts Covers distinct non-Latin theme IDs.
apps/​web/​src/​state/​usage.ts Applies environment-specific usage model filters.
apps/​web/​src/​state/​session.ts Selects scope grants to reduce rerenders.
apps/​web/​src/​state/​environments.ts Exposes connection-summary subscriptions.
apps/​web/​src/​state/​entities.ts Exposes tag-filtered thread selectors.
apps/​web/​src/​routes/​_chat.index.tsx Uses visible threads for landing selection.
apps/​web/​src/​localEnvironment.ts Guards access outside browser environments.
apps/​web/​src/​lib/​workspaceFocus.ts Preserves focus already within panel content.
apps/​web/​src/​lib/​turnDiffTree.ts Removes redundant recursive directory compaction.
apps/​web/​src/​lib/​backgroundActivityReporter.ts Bounds stalled activity-report requests.
apps/​web/​src/​lib/​backgroundActivityReporter.test.ts Covers recovery after stalled reporting.
apps/​web/​src/​lib/​archivedThreadsState.ts Applies tag filtering to archived snapshots.
apps/​web/​src/​index.css Applies sidebar secondary-label theme colors.
apps/​web/​src/​hooks/​useThreadVisitedMigration.ts Preserves established server visit watermarks.
apps/​web/​src/​hooks/​useCommitOnBlur.ts Supports draft-value normalization.
apps/​web/​src/​composerDraftStore.test.ts Supplies tag-filter state to test fixtures.
apps/​web/​src/​components/​WorktreeBaseBranchPicker.tsx Removes deferred branch-search input.
apps/​web/​src/​components/​ui/​tooltip.tsx Allows tooltip content to shrink.
apps/​web/​src/​components/​ui/​popover.tsx Constrains positioners to available height.
apps/​web/​src/​components/​ui/​menu.tsx Exposes collision-avoidance configuration.
apps/​web/​src/​components/​ui/​draft-input.tsx Forwards draft normalization to the hook.
apps/​web/​src/​components/​ThreadStatusIndicators.tsx Uses multi-PR status information in rows.
apps/​web/​src/​components/​sidebar/​SidebarUpdatePill.browser.test.tsx Covers structured release-note rendering.
apps/​web/​src/​components/​settings/​UpdateTrackSwitchDialog.tsx Uses policy-aware local-switch eligibility.
apps/​web/​src/​components/​settings/​updateTrackSwitch.logic.ts Allows stable recovery from nightly policy blocks.
apps/​web/​src/​components/​settings/​SourceControlWritingSettings.tsx Clarifies source-control setting descriptions.
apps/​web/​src/​components/​settings/​SettingsSidebarNav.tsx Preserves settings search during IME composition.
apps/​web/​src/​components/​settings/​SettingsScopeNotice.tsx Clears stale scope fields during navigation.
apps/​web/​src/​components/​settings/​ScheduledTasksSettings.browser.test.tsx Advertises one-time schedules in fixtures.
apps/​web/​src/​components/​settings/​ProviderModelsSection.tsx Recognizes explicit reasoning-control roles.
apps/​web/​src/​components/​settings/​ProjectSettingsPanel.tsx Avoids committing names during IME composition.
apps/​web/​src/​components/​settings/​pairingUrls.ts Explains endpoint-label versus authentication classification.
apps/​web/​src/​components/​settings/​colorPickers.browser.test.tsx Covers alpha preservation during hex edits.
apps/​web/​src/​components/​settings/​CliCommandSettingsRow.tsx Disables installation when another command shadows it.
apps/​web/​src/​components/​ReopenClosedViewShortcut.tsx Forwards preview address-focus shortcuts.
apps/​web/​src/​components/​ReopenClosedViewShortcut.browser.test.tsx Covers address-focus shortcut forwarding.
apps/​web/​src/​components/​pullRequest/​PullRequestsPage.tsx Uses shared PR recency ordering.
apps/​web/​src/​components/​pullRequest/​pullRequestListGroups.logic.ts Uses shared PR recency ordering.
apps/​web/​src/​components/​pullRequest/​pullRequestFileOrder.logic.test.ts Covers dotted source and test filenames.
apps/​web/​src/​components/​pullRequest/​pullRequestDetail.logic.ts Sorts timeline events by actual instant.
apps/​web/​src/​components/​pullRequest/​pullRequestDetail.logic.test.ts Covers timestamp offsets and fractional seconds.
apps/​web/​src/​components/​preview/​PreviewView.tsx Handles forwarded desktop address-focus actions.
apps/​web/​src/​components/​preview/​agentOpenedPreviews.ts Reveals agent-opened tabs without user-focus effects.
apps/​web/​src/​components/​preview/​agentOpenedPreviews.test.ts Verifies agent reveals preserve focus revision.
apps/​web/​src/​components/​GitHubStarPrompt.tsx Suppresses prompts when star lookup fails.
apps/​web/​src/​components/​files/​FilePreviewPanel.tsx Constrains video previews to their container.
apps/​web/​src/​components/​files/​BrowserDocumentFrame.tsx Passes document-position identity into PDF views.
apps/​web/​src/​components/​files/​AudioPreview.tsx Keeps duration/status text left-to-right.
apps/​web/​src/​components/​files/​AttachmentFilePreview.browser.test.tsx Isolates PDF fixtures by thread identity.
apps/​web/​src/​components/​device/​useDeviceControls.ts Returns device-action success status.
apps/​web/​src/​components/​desktopUpdate.logic.ts Prioritizes managed update-denial reasons.
apps/​web/​src/​components/​desktop/​DesktopWebLinkCoordinator.tsx Changes remote-discovery waiting; empty-environment finding remains unresolved.
apps/​web/​src/​components/​desktop/​DesktopWebLinkCoordinator.browser.test.tsx Covers remote-only launch-link discovery.
apps/​web/​src/​components/​CustomSnoozeDialog.tsx Adjusts date-field spacing.
apps/​web/​src/​components/​ComposerContextLabel.tsx Applies shared label styling across modes.
apps/​web/​src/​components/​CommandPaletteThreadItems.tsx Uses tag-filtered thread candidates.
apps/​web/​src/​components/​CommandPaletteLookups.ts Uses visible threads for project ordering.
apps/​web/​src/​components/​CommandPalette.composition.browser.test.tsx Updates settings and thread-filter mocks.
apps/​web/​src/​components/​ChatView.browser.test.tsx Preloads the lazy chat module before testing.
apps/​web/​src/​components/​chat/​ZoomableImage.tsx Allows SVG previews to scale up.
apps/​web/​src/​components/​chat/​useComposerSend.ts Guards failed follow-up draft restoration.
apps/​web/​src/​components/​chat/​TraitsPicker.tsx Uses shared reasoning-descriptor detection.
apps/​web/​src/​components/​chat/​TimelineSystemDivider.tsx Supports wrapped divider details.
apps/​web/​src/​components/​chat/​timelineMinimapItems.test.ts Adds assistant-timestamp fixture metadata.
apps/​web/​src/​components/​chat/​TimelineAssistantRows.tsx Renders timestamp-only assistant metadata.
apps/​web/​src/​components/​chat/​ThreadDetailsPrRow.tsx Adjusts PR status-row spacing.
apps/​web/​src/​components/​chat/​ThreadDetailsCard.tsx Excludes automation lists from density calculation.
apps/​web/​src/​components/​chat/​ThreadAutomationsPanel.tsx Shows policy blocks and bounds list height.
apps/​web/​src/​components/​chat/​RightPanelSurfaceContent.tsx Captures the surface-close callback locally.
apps/​web/​src/​components/​chat/​restingComposerControlsMeasurement.ts Accounts for model-label maximum width.
apps/​web/​src/​components/​chat/​ProviderModelPicker.browser.test.tsx Covers repeated model/effort focus transitions.
apps/​web/​src/​components/​chat/​PanelLayoutControls.tsx Avoids fading obsolete maximize controls.
apps/​web/​src/​components/​chat/​ModelPickerSidebar.tsx Preserves unavailable-provider explanations.
apps/​web/​src/​components/​chat/​ModelListRow.tsx Shows full truncated model names on hover.
apps/​web/​src/​components/​chat/​markdownStreamBlocks.ts Handles dedentation around indented fences.
apps/​web/​src/​components/​chat/​markdownStreamBlocks.test.tsx Covers streamed indented-fence boundaries.
apps/​web/​src/​components/​chat/​MarkdownCodeBlock.tsx Sets code-block text alignment explicitly.
apps/​web/​src/​components/​chat/​EffortGlyph.test.ts Covers unsupported effort-scale lengths.
apps/​web/​src/​components/​chat/​DraftHeroHeadline.tsx Uses visible threads in project summaries.
apps/​web/​src/​components/​chat/​ComposerCommandMenu.tsx Clarifies slash-command skill-search loading text.
apps/​web/​src/​components/​chat/​ComposerBannerStack.tsx Uses the banner scroll slot’s sizing.
apps/​web/​src/​components/​chat/​ChatHeader.tsx Compares renames against the editing snapshot.
apps/​web/​src/​components/​chat/​AssistantCitationCommentEditor.tsx Applies comment-aware writing direction.
apps/​web/​src/​components/​BranchToolbarEnvModeSelector.tsx Adjusts locked-control spacing.
apps/​web/​src/​components/​BranchToolbarEnvironmentSelector.tsx Adjusts locked-control spacing.
apps/​web/​src/​components/​AddProjectToMachineDialog.tsx Normalizes pasted destination paths.
apps/​web/​scripts/​warm-dep-cache.ts Records optional startup profiling measurements.
apps/​server/​src/​triage/​triageSession.ts Includes tunnel-log paths in triage context.
apps/​server/​src/​triage/​triagePrompt.ts Describes tunnel logs in generated context.
apps/​server/​src/​triage/​triagePrompt.test.ts Adds the tunnel-log fixture path.
apps/​server/​src/​textGeneration/​testing/​ClaudeTextGeneration.fixture.mjs Checks session-persistence flags and compatibility fallback.
apps/​server/​src/​terminal/​Manager.ts Preserves spaces in child process names.
apps/​server/​src/​scheduledTasks/​webhookRoute.ts Maps policy-blocked hooks to HTTP 403.
apps/​server/​src/​scheduledTasks/​webhookRoute.test.ts Covers policy-blocked webhook responses.
apps/​server/​src/​scheduledTasks/​webhookFilter.ts Handles wildcard existence for non-scalar values.
apps/​server/​src/​scheduledTasks/​Schedule.test.ts Covers equivalent one-time schedule instants.
apps/​server/​src/​relay/​AgentAwarenessRelay.ts Classifies thread-tag events for relay publishing.
apps/​server/​src/​provider/​ProviderRegistry.ts Publishes the latest committed provider array.
apps/​server/​src/​provider/​model-manifest.json Adds Antigravity 1.4.5 support metadata.
apps/​server/​src/​provider/​Drivers/​CodexDriver.ts Honors inherited CODEX_HOME when unconfigured.
apps/​server/​src/​provider/​ClaudeProvider.ts Reads endpoint settings through the environment reader.
apps/​server/​src/​provider/​agentContextBudget.json Refreshes measured agent-context budgets.
apps/​server/​src/​provider/​AcpRegistryProbe.test.ts Verifies reasoning-role discovery metadata.
apps/​server/​src/​preview/​ServerBrowserPage.ts Redacts data payloads from snapshot page URLs.
apps/​server/​src/​preview/​ServerBrowserPage.test.ts Covers data-page URL redaction.
apps/​server/​src/​policy/​managedUpdates.ts Centralizes explicit-update policy refusal reasons.
apps/​server/​src/​persistence/​Sqlite.ts Adds a persistence-setup tracing span.
apps/​server/​src/​persistence/​reconcileV2PreviewMigration.test.ts Updates expected migration manifests.
apps/​server/​src/​persistence/​Migrations/​077_RepairBooleanSettledOverride.ts Repairs legacy boolean settlement overrides.
apps/​server/​src/​persistence/​Migrations.ts Registers the settlement-override repair migration.
apps/​server/​src/​peer/​PeerLinks.testkit.ts Supplies managed policy to peer-auth fixtures.
apps/​server/​src/​orchestration-v2/​ThreadStream.ts Stops replay-size counting beyond the limit.
apps/​server/​src/​orchestration-v2/​ThreadMessageIntake.ts Recognizes policy-rejected message dispatches.
apps/​server/​src/​orchestration-v2/​ThreadManagementService.ts Restricts delegated-work message reads to monitors.
apps/​server/​src/​orchestration-v2/​testkit/​OrchestratorScenario.ts Tracks thread IDs for tag commands.
apps/​server/​src/​orchestration-v2/​testkit/​fixtures/​subagent_v2/​codex_output.ts Verifies root and child token attribution.
apps/​server/​src/​orchestration-v2/​testkit/​fixtures/​opencode2_simple/​output.ts Verifies native model usage attribution.
apps/​server/​src/​orchestration-v2/​testkit/​fixtures/​claude_result_is_error/​output.ts Excludes synthetic error models from usage.
apps/​server/​src/​orchestration-v2/​testkit/​fixtures/​claude_nested_subagent_model/​output.ts Verifies root and nested-agent usage accounting.
apps/​server/​src/​orchestration-v2/​testkit/​fixtures/​claude_idle_resume/​output.ts Checks usage-ledger reset after resumption.
apps/​server/​src/​orchestration-v2/​DelegatedCompletionDelivery.test.ts Distinguishes awaited commands from background monitors.
apps/​server/​src/​orchestration-v2/​ClaudeAutomaticDelivery.integration.test.ts Supplies managed policy to delivery fixtures.
apps/​server/​src/​orchestration-v2/​Adapters/​GrokAdapterV2.test.ts Supplies settings to runtime-policy fixtures.
apps/​server/​src/​observability/​RpcInstrumentation.ts Classifies native-child-work RPC instrumentation.
apps/​server/​src/​mcp/​toolkits/​thread/​handlers.ts Preserves scheduled-task execution error messages.
apps/​server/​src/​mcp/​toolkits/​orchestrator/​tools.ts Generalizes the scheduling tool title.
apps/​server/​src/​mcp/​threadAccess.ts Maps runtime ceilings to invalid requests.
apps/​server/​src/​guest/​guestAttachments.test.ts Covers picture-source image attachments.
apps/​server/​src/​git/​GitWorkflowService.ts Accepts remote selection for worktree-base fetching.
apps/​server/​src/​environment/​ServerEnvironment.ts Advertises one-time scheduling capability.
apps/​server/​src/​device/​deviceToolVersions.json Updates the device-hub version.
apps/​server/​src/​compileCache.ts Avoids flushing prepared packaged caches.
apps/​server/​src/​cloud/​http.test.ts Supplies managed policy to cloud-auth fixtures.
apps/​server/​src/​cloud/​CloudLink.lifecycle.test.ts Supplies managed policy to lifecycle fixtures.
apps/​server/​src/​cliCompileCache.ts Enables best-effort persistent CLI compile caching.
apps/​server/​src/​cli/​trace.ts Refines duration formatting and exports summaries.
apps/​server/​src/​cli/​server.ts Defers server loading until command execution.
apps/​server/​src/​cli/​project.test.ts Supplies managed policy to project fixtures.
apps/​server/​src/​cli/​environment.ts Provides managed policy for environment commands.
apps/​server/​src/​binCli.ts Registers the policy CLI command.
apps/​server/​src/​bin.ts Enables caching and optional import profiling.
apps/​server/​src/​auth/​RpcAuthorization.ts Requires read access for native-child-work RPCs.
apps/​server/​src/​auth/​mcpOAuthHttp.ts Includes runtime ceilings in approval details.
apps/​server/​src/​auth/​http.ts Maps policy-refused pairing to forbidden responses.
apps/​server/​src/​auth/​http.test.ts Supplies managed policy to auth fixtures.
apps/​server/​package.json Advances the version and adds FFI support.
apps/​mobile/​vite.config.ts Registers additional React-focused tests.
apps/​mobile/​src/​state/​use-thread-outbox.ts Retains queued-thread key state between mounts.
apps/​mobile/​src/​state/​use-composer-drafts.test.ts Supplies tag-filter state to fixtures.
apps/​mobile/​src/​state/​session.ts Selects scope grants to reduce rerenders.
apps/​mobile/​src/​state/​session.test.ts Supports selectors in atom-hook mocks.
apps/​mobile/​src/​state/​entities.ts Exposes visible-thread subscriptions.
apps/​mobile/​src/​state/​composer-attachment-uploads.test.ts Updates visible-thread mocks.
apps/​mobile/​src/​native/​SelectableMarkdownText.types.ts Adds writing-direction and alignment props.
apps/​mobile/​src/​lib/​markdownDocument.ts Exports entity and HTML-tag helpers.
apps/​mobile/​src/​lib/​filePreview.test.ts Updates animation and model-switch mocks.
apps/​mobile/​src/​features/​workspace/​WorkspaceToolbar.ios.tsx Uses native-search restoration eligibility.
apps/​mobile/​src/​features/​workspace/​workspace-tabs-state.ts Defines native-search restoration rules.
apps/​mobile/​src/​features/​workspace/​useSearchScrollRestoration.ts Restores list position after search cancellation.
apps/​mobile/​src/​features/​workspace/​floating-workspace-tabs.ts Keeps compose-button space reserved.
apps/​mobile/​src/​features/​workspace/​AndroidWorkspaceNavigation.android.tsx Uses stable floating-tab width calculations.
apps/​mobile/​src/​features/​threads/​thread-context-divider.tsx Makes divider icons optional.
apps/​mobile/​src/​features/​terminal/​ThreadTerminalRouteScreen.tsx Adds safe-area padding to output attachment.
apps/​mobile/​src/​features/​settings/​SettingsServerControlsRouteScreen.test.tsx Updates managed-runtime choice mocks.
apps/​mobile/​src/​features/​settings/​settings-scoped-server.ts Explains policy-locked scoped settings.
apps/​mobile/​src/​features/​settings/​components/​BranchNamingSettings.test.tsx Updates per-field disabled-state fixtures.
apps/​mobile/​src/​features/​pull-requests/​PullRequestMarkdown.tsx Passes media cache keys to images.
apps/​mobile/​src/​features/​keyboard/​CommandPalette.tsx Uses tag-filtered thread candidates.
apps/​mobile/​src/​features/​files/​filePath.test.ts Covers reads while file metadata is pending.
apps/​mobile/​src/​features/​archive/​useArchivedThreadSnapshots.ts Applies tag filtering to archived snapshots.
apps/​mobile/​src/​connection/​background-activity.ts Bounds stalled activity-report requests.
apps/​mobile/​README.md Links released mobile-app installation guidance.
apps/​desktop/​vite.config.ts Builds the server-cache preparation helper.
apps/​desktop/​src/​snapShot/​linuxCaptureSession.ts Defines a capture-setup-required error.
apps/​desktop/​src/​snapShot/​KdeSnapShot.ts Uses the typed capture-setup error.
apps/​desktop/​src/​serverCompileCache.ts Exposes packaged server-cache generation.
apps/​desktop/​src/​preview/​Manager.ts Releases guest focus for address-focus shortcuts.
apps/​desktop/​src/​preview/​DesktopBrowserHost.ts Updates CDP routing and download-event handling.
apps/​desktop/​src/​preview/​BrowserSession.ts Allows preview pointer-lock permission.
apps/​desktop/​src/​preview/​BrowserSession.test.ts Covers pointer-lock permission handling.
apps/​desktop/​src/​preview/​BrowserImport/​ChromiumKeys.ts Uses asynchronous Keychain secret reads.
apps/​desktop/​src/​preload.ts Exposes desktop media reads to the renderer.
apps/​desktop/​src/​ipc/​channels.ts Defines the desktop media-read IPC channel.
apps/​desktop/​src/​backend/​DesktopLocalEnvironmentAuth.ts Waits for backend readiness before authentication.
apps/​desktop/​src/​backend/​DesktopBackendConfiguration.ts Marks shell-discovery consent as pending.
apps/​desktop/​src/​app/​DesktopWebLinks.ts Activates the desktop window after link delivery.
apps/​desktop/​src/​app/​DesktopWebLinks.test.ts Updates window-activation fixtures.
apps/​desktop/​src/​app/​DesktopPreReadyPlatform.ts Stops overriding the Linux window class.
apps/​desktop/​src/​app/​DesktopLinuxUrlHandler.ts Bounds default-handler registration execution.
apps/​desktop/​src/​app/​DesktopEnvironment.ts Removes custom Linux window-class metadata.
apps/​desktop/​src/​app/​DesktopEarlyElectronStartup.ts Removes early Linux window-class configuration.
apps/​desktop/​src/​app/​DesktopApp.ts Creates eligible main windows earlier during startup.
apps/​desktop/​package.json Advances the desktop version core to 0.1.6.
.macroscope/​check-run-agents/​ui-consistency.md Corrects the banner-consumer guidance example.

Review effort: Balanced

Comment thread packages/ssh/src/tunnel.ts Resolved
Comment thread apps/desktop/src/ipc/methods/window.ts Resolved
@fryuni-proval

fryuni-proval Bot commented Nov 2, 2026

Copy link
Copy Markdown

Thanks for the work on managed-policy support and faster desktop startup. The interaction between background shell discovery and startup consumers needs two fixes before merge.

Overview

This PR adds machine-wide policy enforcement across server and desktop behavior, moves shell discovery off the desktop startup path with cached values and streamed updates, and includes preview, update, and mobile refinements. My focused checks covered policy boundaries and the desktop startup/environment flow; they were not an exhaustive review of all 1,081 changed files.

Main Issues

⚫️ Shell telemetry opt-out can be missed — apps/desktop/src/ipc/methods/window.ts:84–94 permanently captures the tracing decision before background discovery may supply the user's existing opt-out.

⚫️ Late shell discovery does not update provider environment snapshots — apps/desktop/src/shell/DesktopShellEnvironment.ts:650–651 allows provider creation with an incomplete environment, while later fd4 updates do not refresh the copies retained by providers such as Claude.

Both findings are detailed inline. Recommendation: request changes, with delayed-discovery integration coverage for telemetry consent and provider launches.

I verified these paths through diffs and surrounding code; I did not run tests in this review.

@Fryuni

Fryuni commented Nov 2, 2026

Copy link
Copy Markdown
Owner Author

Both findings are answered inline (telemetry, provider environments): apps/desktop/src/ipc/methods/window.ts and apps/desktop/src/shell/DesktopShellEnvironment.ts are identical to upstream/main at 47f2c8d29. Background shell discovery is upstream's pingdotgg/t3code#28556 and reaches the fork only through this sync, so it is out of scope here; a fix belongs upstream and arrives with a later sync. The managed-policy and update changes this PR does own are covered by ADRs 0010 and 0011.

A serial run of every browser file moved the heading in upstream's new
expand-at-bottom timeline test (pingdotgg#29166), which passes alone
and in parallel. The rest of the web suite runs in parallel as upstream's
does. Covered by ADR 0011.
Copilot AI balanced review requested due to automatic review settings November 2, 2026 12:06
@fryuni-proval

fryuni-proval Bot commented Nov 2, 2026

Copy link
Copy Markdown

Thanks, @Fryuni, for narrowing the CI workaround and updating the rationale alongside it.

Overview

Summary

This follow-up splits file-preview browser tests into their own serial step while restoring normal parallel scheduling for the remaining web tests. Both steps retain the 60-second test timeout, and ADR 0011 now explains the split and the observed scheduling sensitivity.

Good points

🟢 .github/workflows/ci.yml:170–174 excludes only file-preview browser tests from the general run, then selects them explicitly with --project browser --maxWorkers=1; this preserves unit-test coverage while confining serialization to the affected suite.

Main Issues

No new actionable issues found in this two-file push. No review blockers for this follow-up, subject to CI passing.

Validation was static; I did not execute the CI commands here.

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.

🔵 Needs a closer look

The broad merge spans managed policy, SQLite repair, and desktop startup/packaging, with real-client and fork-release validation still requiring maintainer review.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

@Fryuni
Fryuni merged commit 4de0f2d into main Nov 2, 2026
10 checks passed
@Fryuni
Fryuni deleted the fryuni/merge-upstream-main-5 branch November 2, 2026 12:16
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.