From 844721adb5e0ff93b8a240a3419dedd1fffe8847 Mon Sep 17 00:00:00 2001 From: Henry Chu Date: Tue, 27 Oct 2026 13:50:05 -0400 Subject: [PATCH] Fix what the Fable review of the e9236274a3 sync found - Drop the palette's dead "environments" view check: every Add project view now opens on ADD_PROJECT_ENTRY_GROUP. - Record upstream's CI-only cuts (the agent context budget test and the built web boot check) in the seams doc, sync.md, and the resolve-deleted data. - Seams doc: the uncarried supervisor test, the canvas tests without preview cases, the CommandPalette browser test's useCoder mock, a stale focus-test sentence, and the GitLab fixes checked against e9236274a3. Co-Authored-By: Claude Opus 5.5 --- apps/web/src/components/CommandPalette.tsx | 4 +--- docs/internals/coder-only.md | 18 +++++++++++------- docs/internals/sync.md | 3 ++- scripts/sync-resolve-deleted.mjs | 6 +++++- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/apps/web/src/components/CommandPalette.tsx b/apps/web/src/components/CommandPalette.tsx index 0d808ea0f8f76..f91d82e02ff8e 100644 --- a/apps/web/src/components/CommandPalette.tsx +++ b/apps/web/src/components/CommandPalette.tsx @@ -1186,9 +1186,7 @@ function OpenCommandPaletteDialog(props: { // Coder: continue a discovered workspace's Add project once its environment connects, unless // the user has left the picker. Reopening Add project clears the pending connection. - const isAddProjectEnvironmentView = - currentView?.groups[0]?.value === "environments" || - currentView?.groups[0]?.value === ADD_PROJECT_ENTRY_GROUP; + const isAddProjectEnvironmentView = currentView?.groups[0]?.value === ADD_PROJECT_ENTRY_GROUP; useEffect(() => { if (pendingAddProjectEnvironmentId === null || !isAddProjectEnvironmentView) return; const environment = environments.find( diff --git a/docs/internals/coder-only.md b/docs/internals/coder-only.md index fb48cca6f6b4e..d47ee3a7c7d3f 100644 --- a/docs/internals/coder-only.md +++ b/docs/internals/coder-only.md @@ -924,7 +924,7 @@ listed here is drift to remove rather than fork behavior to keep. usage-limit panel, Codex feedback upload, local editors (`OpenInPicker`), and the favicon store. The active workspace stands in for upstream's primary environment, and drafts read their route workspace's config. The Files surface opens for drafts as on main. `chatCanvasLayout.ts` has no preview obstacles (it accepts upstream's `findBar` and ignores it), - and `ChatCanvas.test.tsx` covers only the details card inset below Find. Pieces upstream + and `chatCanvasLayout.test.ts` and `canvasStore.test.ts` carry no preview cases. Pieces upstream moved out of `ChatView` carry the same cuts (each marked `Coder:`): `RightPanelSurfaceContent` renders nothing for browser and device surfaces and names merge requests; `useRightPanelSurfaceClose` closes no preview sessions and asks no agent-browser confirmation; `useQueuedRunEdit` carries no preview annotations; `useThreadLinkedPullRequest` names merge requests; `useSystemComposerBanners` @@ -1053,7 +1053,7 @@ listed here is drift to remove rather than fork behavior to keep. `canonicalizeGitCafePullRequestUrl` is an identity function, since GitCafe is not carried. Diff output is capped (`DIFF_MAX_OUTPUT_BYTES`) to fit the gateway's `MAX_RPC_MESSAGE_BYTES` ceiling. - GitLab fixes for bugs still in upstream's `GitLabCli` (checked against upstream `main` - becf853def): + e9236274a3): merge requests between projects post to the source project with a numeric `target_project_id` instead of sending the repository text as `source_project_id`; merge request URLs reach `glab` as `--repo ... -- ` because older versions read URLs as @@ -1196,7 +1196,8 @@ listed here is drift to remove rather than fork behavior to keep. `coder ssh`. `connection/driver.ts`'s `checkHost` never answers, because the gateway answers whether or not the workspace does; the silent socket check then ends only on a frame, and the probe timeout decides. `connectedLeaseEnd` ends a lease only on a disconnect (no better routes - or relay credentials). `connection/registry.ts` starts every registered workspace's supervisor + or relay credentials). Upstream's `connection/supervisor.test.ts` is not carried; its harness + builds the multi-route driver, routes, and relay credentials the fork cuts. `connection/registry.ts` starts every registered workspace's supervisor desired (upstream starts only enabled ones), since the Coder config owns registration. Its entries carry no cached unsupported-host rejection, so web `state/server.ts`'s shortcut-keybinding fallback presents each workspace's connection state as is. @@ -1234,7 +1235,11 @@ listed here is drift to remove rather than fork behavior to keep. `Coder:`). - **Build tooling.** `scripts/lib/third-party-licenses.ts` never fetches during a build: SPDX texts are committed under `licenses/spdx`, and only `pnpm licenses:sync` downloads missing - ones. It reads no device tool version pins, because device tools are not carried. + ones. It reads no device tool version pins, because device tools are not carried. Upstream's + CI-only checks are not carried, since the fork has no CI: the built web boot check + (`apps/web/scripts/verify-built-boot.ts`) and the agent context budget test + (`apps/server/src/provider/AgentContextBudget.test.ts` and `agentContextBudget.json`), which + measures MCP tool context the file bridge replaces. `pnpm-workspace.yaml` sets `supportedArchitectures` (Linux x64 glibc) on every host, because the helper bundle ships those native modules to the workspace; upstream sets it only on Windows in `.pnpmfile.cjs`, which is not carried. Its `overrides` pin only the patched packages the @@ -1292,9 +1297,8 @@ listed here is drift to remove rather than fork behavior to keep. upstream's new publish-push, local-remote, display-casing, partial-clone, and missing-parent clone cases on GitLab remotes with the fork's mocks. `ProviderRegistry.test.ts` runs upstream's startup settings-change hydration tests without the uncarried Antigravity and OpenCode layers. - `ThreadDetailsPrRows.browser.test.tsx` checks the run context, not the editor picker. `CommandPalette.focus.browser.test.tsx` - mocks `useCoder` and sends `mod+p` with the platform's modifier (upstream's Ctrl+P matches only - off macOS), and `GitLabPullRequestCli.legacy.test.ts` expects the fork's `DIFF_MAX_OUTPUT_BYTES`. + `ThreadDetailsPrRows.browser.test.tsx` checks the run context, not the editor picker. `CommandPalette.browser.test.tsx` + mocks `useCoder`, and `GitLabPullRequestCli.legacy.test.ts` expects the fork's `DIFF_MAX_OUTPUT_BYTES`. `SourceControlProviderRegistry.test.ts` is upstream's fake-driver file, with its unknown-host fallback on a GitLab remote and a GitHub URL among the URLs no host claims. `SourceControlRepositoryService.test.ts` does not carry upstream's two new lookup-detail tests. `DatabaseStorage.test.ts` omits upstream's two `t3 doctor` status tests, diff --git a/docs/internals/sync.md b/docs/internals/sync.md index bf16934a7cda6..e2e50d7a3b997 100644 --- a/docs/internals/sync.md +++ b/docs/internals/sync.md @@ -164,7 +164,8 @@ mobile's `microphonePriority.ts` into `packages/shared`) arrives as an added fil - Relay (`apps/server/src/relay`, `infra`, `packages/ssh`, `packages/tailscale`); telemetry (`apps/server/src/{telemetry,resourceTelemetry,usage,diagnostics}`, web `components/usage`). - Upstream repository tooling (`.github`, `.repos`, `oxlint-plugin-t3code`, `docs/operations`, - `apps/server/integration`, `evals`, `.coderabbit.config.ts`). + `apps/server/integration`, `evals`, `.coderabbit.config.ts`) and upstream's CI-only checks + (`AgentContextBudget.test.ts`, `verify-built-boot.ts`). Re-derive the list, and update the script's data, when the fork cuts or restores a surface: diff --git a/scripts/sync-resolve-deleted.mjs b/scripts/sync-resolve-deleted.mjs index c6bfbbe544c14..9b94973084e49 100644 --- a/scripts/sync-resolve-deleted.mjs +++ b/scripts/sync-resolve-deleted.mjs @@ -168,8 +168,12 @@ const DELETED_PATHS = { ".repos/", ".vite-hooks/", ".vscode/", - // Transfer-budget CI harness. + // CI-only checks: the transfer budget harness, the agent context budget test, and the built + // web boot check. "apps/server/integration/", + "apps/server/src/provider/AgentContextBudget.test.ts", + "apps/server/src/provider/agentContextBudget.json", + "apps/web/scripts/verify-built-boot.ts", "docs/operations/", // CodeRabbit's configuration and upstream's MCP tool-use evals. ".coderabbit.config.ts",