Repository navigation
Conversation
|
The generated output of |
There was a problem hiding this comment.
I'm Bonk, and I've done a quick review of your PR.
This PR migrates several MembranePolicy subclasses from kj::Refcounted + manual addRef() overrides to kj::Rc<T> / kj::rc<T>().
Issues (ranked by severity):
- [HIGH] Build is broken — classes are abstract and cannot be instantiated.
capnp::MembranePolicy::addRef()is pure virtual (= 0) in the currently pinned capnp-cpp. This PR removes theaddRef()overrides, makingCompletionMembrane,RevokerMembrane,AttachmentMembrane, andServerTopLevelMembraneabstract. CI confirms 13 compilation errors. This PR appears to depend on an upstream capnp-cpp change (makingaddRef()non-pure-virtual or removing it entirely), but the capnp-cpp pin inMODULE.bazelhas not been updated. - [HIGH] Type mismatch —
kj::Rc<T>is not implicitly convertible tokj::Own<T>.capnp::membrane()takeskj::Own<MembranePolicy>for the policy parameter.kj::rc<T>(...)returnskj::Rc<T>, and there is no implicit conversion. Eachcapnp::membrane(client, kj::rc<...>(...))call would be a type error even if the abstract-class issue were resolved. - [MEDIUM]
cm.addRef()onRc<CompletionMembrane>returnsRc<CompletionMembrane>, notOwn<MembranePolicy>. Line 2135 passes the result ofcm.addRef()tocapnp::membrane(), which again expectskj::Own<MembranePolicy>.
All three issues are symptoms of the same root cause: this PR requires a coordinated capnp-cpp update that adds Rc-based membrane overloads (or changes MembranePolicy to no longer require manual addRef()). That dependency update is missing from this PR.
This review was written by an AI assistant (Bonk). Feedback may not be perfect — please use your judgment.
|
Review posted successfully on PR #6650. Here's a summary of what I found: 3 issues identified, all stemming from the same root cause — this PR depends on an upstream capnp-cpp update that isn't included:
The PR needs a coordinated capnp-cpp dependency update to land. |
21b7e45 to
11406ec
Compare
|
@mikea Bonk workflow was cancelled. View workflow run · To retry, trigger Bonk again. |
|
Now let me also verify the Looking at line 2133-2135: auto& cm = JSG_REQUIRE_NONNULL(
completionMembrane, Error, "getExternalPusher() must be called before call()");
return capnp::membrane(kj::mv(target), cm.addRef());
The whole change is clean and straightforward. The PR correctly:
There are no type mismatches, no backward compatibility issues (this is all internal), no security concerns. The code compiles cleanly against the new capnp-cpp pin. LGTM |
11406ec to
d7b7f2f
Compare
d7b7f2f to
409339e
Compare
|
🛑 Significant concerns — 1 BLOCKING item: Findings: 1 blocking The decision is advisory: this comment never approves, blocks or requests changes on the pull request. 🔧 Fix with your agentPaste the following into your coding agent to investigate and fix these issues. 📋 Code Quality: 🛑 1 blockingOne Recommendation: 🔴 Serious Concerns
View full review
auto membrane = kj::refcounted<RevokerMembrane>(kj::mv(paf.promise));
pipeline = capnp::membranePipeline(kj::mv(value), membrane->addRef());
pipelineMembrane = kj::mv(membrane);
...
kj::Own<RevokerMembrane> pipelineMembrane;This pull request removes
✅ All other checks passed📝 Documentation: ✅ LGTMNo documentation concerns. The remaining Reviewed commit: |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #6650 +/- ##
==========================================
- Coverage 69.44% 69.28% -0.17%
==========================================
Files 695 697 +2
Lines 181393 182391 +998
Branches 29177 29223 +46
==========================================
+ Hits 125967 126368 +401
- Misses 38381 38951 +570
- Partials 17045 17072 +27 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
counterpart to capnproto/capnproto#2634