Repository navigation
chore: sync upstream through cefb544af3 (Nov 3 2026) - #538
Merged
Merged
Conversation
…dotgg#29348) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…29465) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tates (pingdotgg#29486) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#27138) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
…und Agent (pingdotgg#27139) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
…ingdotgg#27756) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: maria-rcks <maria@kuuro.net>
pingdotgg#29480) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…PR update (pingdotgg#29369) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…hile this device's sign-in loads (pingdotgg#29352) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…time (pingdotgg#29301) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
) ## Problem PR watches stopped after eight failed host reads, so a prolonged network outage prevented later CI and review updates from reaching the thread. ## Change Keep watches active after provider failures reported as `failed`. Read detail and activity concurrently without allowing an activity failure to cancel or hide a permanent detail failure. Repeated known permanent failures still stop the watch and notify the agent; rate limits still pause reads. Non-rate-limited GitHub HTTP 403 responses and GraphQL `FORBIDDEN` responses now use a distinct `forbidden` reason so access refusals are counted instead of retried indefinitely. GraphQL error types survive the client mapping, after the existing requested-reviewer fallback. The provider's `failed` category also includes unclassified host and decode errors. Those continue retrying at the existing two-minute cadence until the watch ends or is stopped. A fixed outage deadline would recreate the recovery failure for longer outages. ## Scope and approval This is a focused fix for an obvious bug in existing PR watch recovery, covered by the small bug-fix exception in CONTRIBUTING.md. The changes cover watcher recovery, a GitHub failure classification needed to preserve permanent-error handling, and their regression tests. The new server-side `forbidden` reason does not change RPC contracts or add settings. ## Verification `vp run check:changed` passed, including 154 tests across five files. Regression coverage includes a 30-minute outage followed by one CI-success notification, mixed activity/detail failures, resetting a prior failure count, and repeated forbidden reads stopping the watch. Provider tests distinguish HTTP 403 and exclusively permanent GraphQL refusals from retryable HTTP 503 and mixed or untyped GraphQL errors. The mixed-failure and GraphQL classification cases failed before their fixes. Seven focused requested-reviewer fallback/refusal tests also pass. Model: GPT 6.1 Sol. Harness: Codex.
…g#29419) Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#29623) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…diff load (pingdotgg#27833) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…29640) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#29644) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Henry Stern <6068107+hstern@users.noreply.github.com> Co-authored-by: Ashish Patil <7754022+ash663@users.noreply.github.com> Co-authored-by: TinBane <363069+TinBane@users.noreply.github.com>
…tgg#29680) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…#23373) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#23211) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tance (pingdotgg#23198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…turn absorbed its wake (pingdotgg#28010) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…ory scan ends (pingdotgg#29535) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tch (pingdotgg#29476) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n starts (pingdotgg#28431) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ching origin (pingdotgg#27961) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pingdotgg#27957) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…3804) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…g#23326) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#23561) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Exotic209093 <134711311+Exotic209093@users.noreply.github.com> Co-authored-by: Issue triage verification <triage@localhost> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#22661) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
… limit (pingdotgg#23192) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#23219) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#29922) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…29909) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ync-upstream-2026-11-03-0743 # Conflicts: # apps/mobile/src/features/threads/ThreadFeed.tsx # apps/server/src/cli/app.ts # apps/server/src/git/GitManager.test.ts # apps/server/src/mcp/McpHttpServer.ts # apps/server/src/mcp/PreviewAutomationBroker.test.ts # apps/server/src/mcp/WorktreeMcpService.ts # apps/server/src/mcp/linkOrigin.test.ts # apps/server/src/mcp/toolkits/core.test.ts # apps/server/src/mcp/toolkits/project/handlers.test.ts # apps/server/src/mcp/toolkits/thread/tools.ts # apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts # apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts # apps/server/src/orchestration-v2/runtimeLayer.test.ts # apps/server/src/preview/ServerBrowserPage.ts # apps/server/src/preview/SessionControl.test.ts # apps/server/src/project/AgentSessionScanner.ts # apps/server/src/project/ProjectSetupScriptRunner.ts # apps/server/src/provider/AgentContextBudget.test.ts # apps/server/src/provider/Drivers/ClaudeDriver.ts # apps/server/src/provider/Drivers/CodexDriver.ts # apps/server/src/serverSettings.test.ts # apps/server/src/storageCleanup.test.ts # apps/server/src/usage/UsageService.test.ts # apps/server/src/usage/cliproxyApi.ts # apps/web/src/components/ChatView.tsx # apps/web/src/components/Sidebar.tsx # apps/web/src/components/chat/MessagesTimeline.browser.test.tsx # apps/web/src/components/settings/ProjectSettingsPanel.tsx # apps/web/src/components/settings/ProviderSettingsPanel.tsx # apps/web/src/components/settings/settingsSearch.ts # apps/web/src/components/sidebar/SidebarThreadRow.tsx # apps/web/src/reviewCommentContext.ts # apps/web/src/timestampFormat.ts # docs/README.md # docs/user/install.md # docs/user/permission-modes.md # docs/user/usage.md # packages/contracts/src/clientRpcPermissions.ts # packages/contracts/src/settings.ts # packages/provider-acp/src/server/adapter.ts # packages/provider-core/src/server/orchestrationInstructions.ts # packages/provider-cursor/src/server/CursorUsageAccounts.ts # packages/provider-cursor/src/server/accountCache.ts # packages/provider-cursor/src/server/accountUsage.ts # packages/provider-cursor/src/server/credentialStore.ts # packages/provider-cursor/src/server/driver.ts # packages/provider-cursor/src/server/usageLimits.ts # packages/provider-grok/src/server/driver.ts
Upstream now asks before removing provider settings (pingdotgg#29480). The fork deletes default providers instead of resetting them, so upstream's reset-button cases are adapted to the delete button and the reset-only "turned off" warning case is dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's in this sync
131 upstream commits add Kiro as an ACP provider, improve provider and thread recovery, and reduce work during startup, streaming, and background operations.
New features
Fixes
Notable internal changes
Discord announcements were not used: the requested channel contained no announcement crossposts matching this commit range.
Other commits improve Unicode-safe titles/context labels, file-link paths, Git host link and review handling, provider updates, scheduled webhook dispatch, and docs for recurring tasks and managed links.
Complete upstream commit list (131 commits)
Merge details
Base:
e77e0d5a92fc41a93acd3cf1553e2c43a77da56d(origin/main). Parent PR: none; targetsmain.Before the merge, the fork had 598 fork-only commits and was missing 131 upstream commits.
Pinned upstream:
cefb544af3c98224874419198c0359b652ca3c94.Upstream range:
e77e0d5a92fc41a93acd3cf1553e2c43a77da56d..cefb544af3c98224874419198c0359b652ca3c94(131 commits absent from the base).Conflict resolutions
skills:checkpasses).Baseline fork fix
The changed-file gate also found an existing fork bug on
origin/main: a fresh successful completion in a snoozed child tab did not return its group as documented. Per the sync skill, its two-file fix is kept in a separate follow-up PR stacked on this sync. Merge this PR first, then the follow-up: #539.Verification
Passed focused verification:
Changed-file gate (
check:changed origin/main --timeout 1800): format, lint, both knip passes, both GraphQL checks, unused patches, the React Compiler check and affected typechecks (40 packages) pass on the final tree. Its test phase ran 371 files: 349 passed, 5 non-browser tests failed and 16 browser suites could not collect (browser mode was switched off, see below). The 5 failures were fixed in the merge commit: two Kiro replay fixtures had hard-codedruntime_infotails, and the AgentSessionScanner, ProviderRegistry and CodexDeveloperInstructions tests needed updates after upstream behaviour changes. The settlement failure already exists onorigin/mainand is fixed in the follow-up PR. A focused rerun of those 5 files on the final tree passes (164 tests).settlement.test.tswill keep failing on this PR until the follow-up merges.Web browser suites (run afterwards in headless Chromium, one file at a time because several in one process crash on macOS): all 16 suites skipped by the gate now pass. 15 passed as merged.
ProviderSettingsPanel.environment.browser.test.tsxhad 5 failures: upstream's new confirm-before-removing dialog (pingdotgg#29480) blocked the fork's delete tests, and upstream's tests targeted a "Reset provider settings" button that the fork replaces with Delete. Commit 293deb0 adapts those tests (15/15 pass); component behaviour is unchanged.Real web client (dev server from this branch, fresh database, free Replay provider): a full
showcaseturn (plan, tool calls, approval, approve, markdown, code block, table) streams and completes, with the sidebar status updating; all 23 Settings sections open with no errors; Settings › Providers lists live Codex/Claude status, and deleting a provider now asks for confirmation first; terminal drawer, right panel and branch Diff load; snooze → Wake now works; no server errors in the dev log. One existing fork bug found, not caused by this merge: after deleting a default provider such as Codex it stays listed as "Disabled", because the server'sfoldProviderInstanceEnabledFlagsdrops theconfig.enabled: falsemarker the client uses to hide it. The same code is onmain.The gate ran through a gitignored wrapper that excludes the
browser*/renders*projects and**/*.browser.test.*, and switches browser mode off, because this run was not allowed to use browser automation. No check source is modified.The model-routing evals (
tt-background-agent,tt-background-worker-pr-is-delegate) were attempted but could not run becauseANTHROPIC_API_KEYis unavailable. No paid model calls ran. This remains a verification gap for the merged model-facing guidance.PR merging and releases are excluded from this run.
Merge with Create a merge commit. It keeps upstream history and the merge base for the next sync.
Model: gpt-6.1-sol (merge, resolutions, checks), finished by claude-opus-5-5 after a 429 interruption. Harness: Codex and Claude Code in T3 Code.
🤖 Generated with Claude Code