docs(architecture): add fork divergence overview - #120
Conversation
- README "What's Different" expanded from 6 rows to 17 — covers agent harness, streaming resilience, reasoning models, ACP parity, tools, observability, release pipeline. Glanceable at the top of the README. - New docs/architecture/divergence-from-upstream.md (601 lines): maintainer-oriented breakdown by category — Identity, Inference, ACP/Session, Tooling, Configuration, Agent Harness, UI, Build/Release, Telemetry, Removed Surfaces, Intentionally Not Ported, Areas Behind. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
WalkthroughREADME.md is updated to redirect readers to a new architecture divergence document and replace the feature comparison with a broader category-based table. A comprehensive new documentation file catalogs proto's divergences from upstream, covering identity changes, behavioral differences, agent harness system, tooling additions, and fork-specific features. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/architecture/divergence-from-upstream.md`:
- Line 555: Update the placeholder status for PR `#3505` / function
clearRetryCountsForTool in the divergence doc: determine whether
clearRetryCountsForTool was actually backported or remains deferred, then
replace the text "Deferred (since landed in our backport batch — verify before
re-deferring)" with the final status (e.g., "Deferred", "Ported", or "Not
applicable") and, if applicable, append a short tracking reference (issue/PR
number or link) for follow-up; ensure the phrasing is canonical and removes any
"verify before re-deferring" TODO wording.
- Line 473: Replace the phrase "conventional-commit driven" with the hyphenated
compound adjective "conventional-commit-driven" in the line containing
"conventional-commit driven bump + notes rewrite." so the sentence reads
"conventional-commit-driven bump + notes rewrite."; update that exact token
wherever it appears in the document.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 70044414-d606-4b7c-ba8e-c2a098af7c9d
📒 Files selected for processing (2)
README.mddocs/architecture/divergence-from-upstream.md
| bump; manual dispatch can request minor/major or dry-run. | ||
| - `release.yml` — publishes to NPM after the release PR merges. | ||
| - `scripts/determine-bump.js`, `scripts/rewrite-release-notes.mjs` — | ||
| conventional-commit driven bump + notes rewrite. |
There was a problem hiding this comment.
Use a compound adjective here for readability.
“conventional-commit driven” should be hyphenated as “conventional-commit-driven.”
🧰 Tools
🪛 LanguageTool
[grammar] ~473-~473: Use a hyphen to join words.
Context: ...lease-notes.mjs` — conventional-commit driven bump + notes rewrite. This is wh...
(QB_NEW_EN_HYPHEN)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/architecture/divergence-from-upstream.md` at line 473, Replace the
phrase "conventional-commit driven" with the hyphenated compound adjective
"conventional-commit-driven" in the line containing "conventional-commit driven
bump + notes rewrite." so the sentence reads "conventional-commit-driven bump +
notes rewrite."; update that exact token wherever it appears in the document.
| | #3479 | ACP system reminders | **Deferred.** Our `harnessReminderService` covers the core need via a different mechanism. Reconsider if we hit ACP gaps for Zed users. | | ||
| | #3313 | Truncated tool-call multi-turn recovery | **Deferred.** Our MAX_TOKENS cascade trimming (§2.5) addresses the symptom from a different angle. | | ||
| | #3315 | Strip-thoughts test | **Deferred.** Test-only PR; covered by our own `<think>`-tag tests. | | ||
| | #3505 | `clearRetryCountsForTool` | **Deferred** (since landed in our backport batch — verify before re-deferring). | |
There was a problem hiding this comment.
Resolve the “verify before re-deferring” placeholder before merge.
“Deferred (since landed in our backport batch — verify before re-deferring)” reads as an unresolved TODO in a canonical divergence doc. Please replace with a final status (deferred/ported/not applicable) and, if needed, link a tracking issue.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/architecture/divergence-from-upstream.md` at line 555, Update the
placeholder status for PR `#3505` / function clearRetryCountsForTool in the
divergence doc: determine whether clearRetryCountsForTool was actually
backported or remains deferred, then replace the text "Deferred (since landed in
our backport batch — verify before re-deferring)" with the final status (e.g.,
"Deferred", "Ported", or "Not applicable") and, if applicable, append a short
tracking reference (issue/PR number or link) for follow-up; ensure the phrasing
is canonical and removes any "verify before re-deferring" TODO wording.
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
Summary
Adds an at-a-glance overview of fork-vs-upstream differences:
docs/architecture/divergence-from-upstream.md(601 lines) — maintainer-oriented full breakdown grouped by architectural category. Stats: 301 fork-unique commits, 639 upstream commits not yet ported, ~190 net-new files.Why
This fork has accumulated significant architectural depth (agent harness, defense-in-depth around the LiteLLM/vLLM stack, ACP additions, etc.) that wasn't reflected in the README. Drive-by readers, contributors, and our own maintenance work all benefit from a single source of truth on what diverged and why.
🤖 Generated with Claude Code
Summary by CodeRabbit