Repository navigation
Clean up seam drift, restructure the seams doc, and add seams and sync checks - #292
Merged
Merged
Conversation
MessageCopyButton's label/icon props, menu's "icon" checkbox variant, TerminalContextInlineChip's required line range, the order of hasExplicitComposerModelSelection and hasNotificationSound, DEFAULT_RUNTIME_MODE (the contract default is also "full-access"), and NoActiveThreadState's isElectron branch (the fork's env.ts reports false) are upstream's again. threadNotifications.ts keeps only its desktop bridge cut, now marked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fork kept an old copy of vite.config.ts. Take upstream's file and cut only what depends on uncarried code: the remote task cache and cached test tasks (infra/, scripts/lib/cached-tests.ts), the per-package test projects (vite.coder.config.ts extends this file, so it also loads the server's gitConfig setup), and the oxlint-plugin-t3code and @shadcn/lint rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No caller passes branch or force to GitLabCli.checkoutMergeRequest, so keep only the reachable --repo <url> -- <iid> selector. Fixes #228 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #231 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The "Upstream seams" section had grown to about 1,150 lines with cut surfaces repeated across bullets and many sentences that described no delta. Rewrite it as one short entry per real delta, grouped by area, and move the cut surfaces into one "Cut surfaces" section that points at DELETED_PATHS. Drop the stale NavigationHistoryShortcuts, useAgentOpenedPreviews, RightPanelTabs.browser.test.tsx, and SelectedEnvironmentProviderSettings entries, and name the modified files the old text never listed. scripts/seams-check.mjs fails when a backticked name in those sections exists in neither the checkout nor the upstream base, or when a modified upstream file has no Coder: marker in its fork lines, no mention in the doc, and is not a pure merge-request wording swap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
scripts/sync-check.mjs runs the marker-count, lost-upstream-line, both-sides-loss, and unused-locals checks that sync.md section 6 ran as inline shell and Python; on the 80a2351 sync it prints the same lines. sync-resolve-deleted.mjs now lists an upstream file added under a deleted path apart, as a keep candidate, when a carried file imports it (upstream pingdotgg#28041's auth/serverInternalPaths.ts). sync.md wires both scripts and the seams check in, and section 8 bumps the check's recorded base. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # docs/internals/coder-only.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Merged coder-only (#290, #291) into this branch. The seams section conflicted as a whole; I kept the restructured section and re-applied the two seam edits from #290 (makeIdentity carried as is; bridge plan-mode refusal, cap before start, keep-until-published). seams-check then caught a stale |
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.
Seam drift cleanup, a restructured seams doc with a check that keeps it honest, and sync tooling.
Fixes #228
Refs #231, #237
1. Seam drift (checked again against 80a2351)
vite.config.ts: the fork had kept an old copy of upstream's file, not a deliberate seam. I took upstream's file and cut only what needs uncarried code: the remote task cache and cached test tasks (infra/,scripts/lib/cached-tests.ts), the per-package test projects (vite.coder.config.tsextends this file, so it keeps the server'sgitConfig.setup.ts), and theoxlint-plugin-t3code/@shadcn/lintrules. Each cut has aCoder:comment and a doc entry.vp lintstill loads the config.TerminalContextInlineChip.tsx: restored upstream. The contract'slineStart/lineEndare required, so making them optional did nothing.attachmentStore.ts: added theCoder:marker to the legacylegacy-<uuid>-<ext>comment.MessageCopyButton.tsx,ui/menu.tsx,chatThreadActions.ts,threadNotifications.ts: restored upstream (props, theiconvariant, and order).threadNotifications.tskeeps only its desktop-bridge cut, now marked.types.ts'sDEFAULT_RUNTIME_MODE(the contract default is also"full-access") andNoActiveThreadState.tsx(isElectronis the constantfalse). Added markers touseComposerResume/useThreadLifecycle(clearUsageLimitsFor),_chat.settings.tsx, and three unmarked server files:orchestrator/handlers.ts,ProviderSessionManager.ts, andpersistence/Errors.ts. I think these plus the two testkit fixture files are the "5 server files"; the fixtures are tests, so the check skips them.2. Stale doc entries
NavigationHistoryShortcutsis nowAppSidebarLayout.tsx's unexportedregisterNavigationHistoryCommands. RemoveduseAgentOpenedPreviews,RightPanelTabs.browser.test.tsx, and the historicalSelectedEnvironmentProviderSettings.3. Seams doc restructure
"Upstream seams" went from about 1,150 lines to about 590: one entry per delta (file or symbol plus the delta), grouped by area. A new "Cut surfaces" section (about 100 lines) gathers the cut-surface lists and points at
DELETED_PATHS. I dropped sentences that only described upstream parity (MCP Apps, agent secret requests, project icons, tool output images, and similar). "not carried" went from 72 to 10, "is upstream's/follows upstream" from 51 to 6. Other sections are unchanged. To check nothing was lost, I listed every backticked name in the old section that the new one doesn't mention and went through all 210. Each is a parity-only sentence, a cut file already inDELETED_PATHS, or one of the stale names; real seams among them went back in.4.
scripts/seams-check.mjsNode only, no dependencies, runs in about 8 s. It fails when:
src/, Markdown is excluded); orgit diff --diff-filter=M <base>) has noCoder:in its fork lines and no mention incoder-only.md. The merge-request wording swap is detected automatically (undoing the swap makes the lines equal upstream's), not kept as a hand-written allowlist.Base defaults to
SYNC_BASE(80a2351); sync.md §8 now bumps it. It passes on this branch, and before the cleanup it flagged exactly the four stale names. It is wired into sync.md §6 and §7.5. Sync tooling
sync-resolve-deleted.mjslists upstream files added under a deleted path that a carried file imports separately, under "Keep candidates", with their importers. In a trial merge of upstream 6eef681 (refactor(server): share a path check between file readers pingdotgg/t3code#28041) it listedauth/serverInternalPaths.tswithAssetAccess.ts,GitVcsDriverCore.ts, andWorkspaceFileSystem.ts. It also listedcli/up.tsbecause of the uncarriedbinCli.ts, which sync.md now explains. The §3 caveat is added, and the bulk-removeawkstops at the end of its section.scripts/sync-check.mjs <PREV> <SHA> [--only …]replaces §6's inline marker-count, lost-upstream-line, both-sides-loss, and unused-locals checks. On the 80a2351 sync it prints exactly what the shell/Python versions print (23 / 265 / 3 lines). The unused-locals check runs TS 7'stscviaprocess.execPath.6. #228
Removed
GitLabCli.checkoutMergeRequest's unreachablebranchfield and--branch/--forcehandling, and the fork test for it. The--repo <url> -- <iid>selector stays.7. #231 / #237
GitManager's uncommitted-changes checkout error now says "merge request !N", markedCoder:and listed under the wording seam. OtherGitManagerdetails still use upstream's wording, so the issue stays open; its body is updated.Verification
pnpm typecheck:web,typecheck:server,typecheck:helper, and the source-control filter typecheck pass.node scripts/seams-check.mjspasses,vp fmt --checkon changed files passes, andpnpm buildpasses.pnpm test:coder: gateway/helper/coder-cli, codex app-server, contracts, server (3558 tests), providers, source-control, client-runtime, shared, and knip all pass.ClaudeAdapterV2"persists a todo_list from inline Claude task-tool frames". It passed alone and with its whole file, and on the nexttest:serverrun.test:web:coderhad 1–2 different load-only failures per run (useInlineActionConfirm,AttachmentFilePreview, alocalApi.test.tshook timeout after a leaked happy-dom fetch). Each passes alone. The unchanged base commit 7b64141 fails the same way in the same environment (useInlineActionConfirmplus one other), so this predates the PR. The web Vitest config doesn't read the root config.GitLabCli.test.tsand the keep-candidate detection with a scratch merge.🤖 Generated with Claude Code