You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(fork): record v3.68.0 sync pain points + Sonnet 5 decision
Capture what the v3.68.0 sync surfaced so the next sync is smoother:
- Tag-topology gotcha: our local release tags SHADOW upstream's (ours have no
PR-number suffix), so `git merge-base` is authoritative, not tags. Upstream
release tags are parallel snapshots, not a linear chain — merge the single
target tag directly after `git fetch upstream --tags`.
- Recurring conflicts now list the `latestAnnouncementId` string and the
announcement `highlightN` blocks (chat.json / README "What's New"); note that
`settings.json` usually auto-merges and not to `--theirs` whole README files.
- Post-merge checklist: the full build needs a networked, non-sandboxed shell
(ripgrep + tree-sitter WASM postinstall); tree-sitter/dist_assets test failures
without those assets are false alarms, not regressions.
- Sync log: Sonnet 5 adopted onto the fork's effort-shape across the Anthropic +
Vertex registries and the OpenRouter + Requesty fetchers; `fetchers/requesty.ts`
added to the Feature 2 map (was undocumented); openai-error-handler shim removed
upstream (Zoo-Code-Org#767).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
-`src/core/webview/ClineProvider.ts` — the `latestAnnouncementId` string collides every release → take upstream's
136
+
-`CHANGELOG.md` — take the union; keep our fork entries (the HEAD side is usually empty — upstream just prepends the new `## [X.Y.Z]` sections, so "take theirs" on the hunk preserves our older entries below)
137
+
-`README.md`, `locales/*/README.md`, `webview-ui/src/i18n/locales/*/chat.json` — release/marketing churn; the conflict is the "What's New" / announcement `highlightN` block → take upstream's (in v3.68.0 our v3.62.0 highlights were superseded). Fork branding (Zoo Code, migration guide) sits _outside_ the conflict and auto-merges — do **not**`git checkout --theirs` the whole file
138
+
-`webview-ui/src/i18n/locales/*/settings.json` usually **auto-merges** (both sides add different keys) — our `"max"` label + code-index strings and upstream's new keys coexist
127
139
-`AGENTS.md` — now just a pointer paragraph, so the footprint is small
128
140
129
141
## Post-merge checklist
@@ -137,7 +149,22 @@ don't investigate them as regressions.
137
149
every recent merge). A clean run = those 22 and nothing else; a 23rd is the regression to
138
150
investigate.
139
151
-[ ] Verify the Anthropic effort payload still emits `output_config.effort` (not `budget_tokens`)
140
-
for Opus 4.7/4.8 — see the provider guards above.
152
+
for Opus 4.7/4.8, Fable 5, and Sonnet 5 — see the provider guards above.
153
+
-[ ]**The full build needs a networked, non-sandboxed shell:**`pnpm install` runs postinstalls
154
+
that download the ripgrep binary and the tree-sitter WASM grammars. If those are absent the
155
+
`services/tree-sitter/**` and `__tests__/dist_assets.spec.ts` suites fail on missing _assets_
156
+
only (not code) — a false alarm. Run `pnpm install && pnpm build && pnpm vsix --force` before
157
+
trusting the full `pnpm -w test` count.
158
+
159
+
## Sync log / decisions
160
+
161
+
-**v3.68.0** (from v3.62.0-era, merge-base `8c3ae1e8b`) — 63 upstream commits / 337 files, but the
162
+
real conflict surface was ~14 code files, essentially all from upstream's **Claude Sonnet 5**
163
+
(#778). **Decision:** adopt Sonnet 5 on the fork's **effort-shape** (not upstream's budget/binary)
164
+
across the Anthropic + Vertex registries and the OpenRouter + Requesty fetchers — Sonnet 5 is
165
+
adaptive-only and 400s on `budget_tokens`, so the budget shape would break it. Also surfaced:
166
+
`fetchers/requesty.ts` was an undocumented fork divergence (now mapped in Feature 2), and upstream
167
+
removed the `openai-error-handler` shim (#767 — all callers moved to `error-handler`, merged clean).
0 commit comments