Align design-doc §13.2 with the backend probe/resolve seam - #248
Conversation
Section 13.2 still said the cached _check_rust_available() resolver wraps the probe "for is_rust_available() and get_stream_backend()", implying get_stream_backend() delegates to _check_rust_available() directly. That conflicts with the seam model §13.3/§13.4 already document, where get_stream_backend() resolves through _parse_backend_value -> _probe_rust_availability -> _resolve_backend and only _probe_rust_availability wraps the cached _check_rust_available(). Qualify the §13.2 sentence to route get_stream_backend() through the _probe_rust_availability() seam and cross-reference §13.4, so the document keeps one authoritative backend model. Docs-only; the #224 seam refactor is already merged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reviewer's guide (collapsed on small PRs)Reviewer's GuideDocumentation-only update aligning the design doc’s description of the backend probe/resolve seam with the actual implementation, clarifying how get_stream_backend() uses the _probe_rust_availability() seam rather than delegating directly to _check_rust_available(). Sequence diagram for the updated backend probe/resolve seam used by get_stream_backendsequenceDiagram
participant Client
participant get_stream_backend
participant _parse_backend_value
participant _probe_rust_availability
participant _check_rust_available
participant _resolve_backend
Client->>get_stream_backend: get_stream_backend()
get_stream_backend->>_parse_backend_value: _parse_backend_value(config_backend)
_parse_backend_value-->>get_stream_backend: backend_value
get_stream_backend->>_probe_rust_availability: _probe_rust_availability(backend_value)
_probe_rust_availability->>_check_rust_available: _check_rust_available()
_check_rust_available-->>_probe_rust_availability: rust_available
_probe_rust_availability-->>get_stream_backend: probed_backend
get_stream_backend->>_resolve_backend: _resolve_backend(probed_backend)
_resolve_backend-->>get_stream_backend: backend_impl
get_stream_backend-->>Client: backend_impl
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
Summary
WalkthroughUpdate the Rust-extension stream dispatch documentation to describe the ChangesRust dispatch documentation
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 19 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (19 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
Follow-up to the merged #224 backend seam refactor. CodeRabbit's post-merge "Developer Documentation" warning flagged that
docs/cuprum-design.mdstill describedget_stream_backend()as delegating to_check_rust_available(), conflicting with the implemented probe→resolve seam.The stale wording is in §13.2 (the "Extension Architecture" overview): it said the cached
_check_rust_available()resolver wraps the probe "foris_rust_available()andget_stream_backend()", implying a direct delegation. §13.3 and §13.4 already describe the authoritative seam model (_parse_backend_value→_probe_rust_availability→_resolve_backend, with only_probe_rust_availability()wrapping the cached_check_rust_available()).Change
Qualify the §13.2 sentence so
get_stream_backend()is fed through the_probe_rust_availability()seam, mirroring §13.3, and add a one-line cross-reference to §13.4's full resolution plus an explicit "does not delegate to_check_rust_available()directly". The document now keeps one authoritative backend model; the high-level flowchart (which never claimed direct delegation) is unchanged.Docs-only.
Validation
make markdownlint(49 files, 0 errors; spelling sub-target clean) andmake nixie(all Mermaid diagrams validated) pass.Summary by Sourcery
Documentation: