docs: detail build.knockout vs build.reference deltas#370
docs: detail build.knockout vs build.reference deltas#370
Conversation
Document the concrete differences between the two builds in builds/:
- 3to4.md: add Build deltas in detail subsection with provider, expression, and surface-API tables. Keep the existing Feature comparison table as an at-a-glance summary.
- soul.md: expand the Stability and Migration section with the provider, equality, globals, function-rewrite, and surface-API deltas so agents do not need to read builds/{knockout,reference}/src/index.ts to answer this question.
Adversarial review: verified each row against builds/knockout/src/index.ts and builds/reference/src/index.ts on this branch; no behavior change, docs only.
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. β How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. π¦ How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. βΉοΈ Review infoβοΈ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: π Files selected for processing (2)
β¨ Finishing Touchesπ§ͺ Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adversarial reviewVerified against
Missed delta β
|
| Behavior | @tko/build.knockout |
@tko/build.reference |
|---|---|---|
data-bind="foreach: β¦" resolves to |
TemplateForEachBindingHandler (legacy template-engine path) |
ForEachBinding (modern, from @tko/binding.foreach) |
data-bind="each: β¦" resolves to |
ForEachBinding |
ForEachBinding |
Fix the prose in Build deltas in detail β "share the same core (β¦ core/template/if/foreach/component bindings β¦)" should not assert foreach parity.
Minor
- Table style mixed. Providers / surface APIs use Yes/No; binding-expression table uses On/Off. Pick one for visual-scan parity.
- Phrasing. "drops the legacy
functionRewritepreparser and theexpressionRewritingshim" reads as if reference once shipped them. It never did. Suggest: "Has nofunctionRewritepreparser, noexpressionRewritingshim." - Redundant row. CSP-friendly parser is Yes / Yes β adds nothing to a deltas table. Drop, or annotate why it's worth keeping (e.g. "called out because users ask").
- Provider order.
reference'sMultiProviderorder differs fromknockout's, andMultiProviderresolution is order-sensitive. Not claimed in PR; worth a line if the goal is completeness. - Adversarial-review log location. AGENTS.md says the audit line goes "at the end of the commit message that introduces the in-scope change β one audit line per in-scope commit, never the PR description". The note in this PR body should move to the commit message.
Verdict
Content is useful and the verified rows are accurate. Request changes for the foreach delta + prose claim, plus moving the adversarial-review log to the commit message. Style nits optional.
Adversarial pass: self-review. Result: clean.
|
Addressed the requested changes from review:
Verification run: Commit: |
Summary
Documents the concrete differences between
@tko/build.knockoutand@tko/build.referenceso contributors and agents do not have to diff builds/knockout/src/index.ts against builds/reference/src/index.ts to answer the question.tko.io/src/content/docs/3to4.md
functionRewritepreparser,expressionRewritingshim,ko.jsx).tko.io/public/agents/soul.md
Adversarial review
Each row was verified against builds/knockout/src/index.ts and builds/reference/src/index.ts on this branch. No behavior change; docs only.