Repository navigation
feat(ci): provision native client generators and validate NPM candidates - #2
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Warning Review limit reachedNext included review available in 33 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (16)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe pull request adds an optional native client-codegen toolchain with pinned sources, image build and verification support, and an NPM candidate validation requirement for manifests that include ChangesClient codegen integration
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant BuildScript as client-codegen/build.py
participant LockFile as client-codegen/lock.json
participant Archives as Locked source archives
participant CMake
participant Stage as Staged installation
BuildScript->>LockFile: Read versions, URLs, and checksums
BuildScript->>Archives: Download source archives
BuildScript->>BuildScript: Verify SHA-256 checksums
BuildScript->>CMake: Configure and build targets
CMake->>Stage: Install binaries and build outputs
BuildScript->>Stage: Check protoc version before publication
Suggested reviewers: Merge Risk: ⚪ Minimal · up to No concrete issue remains that should block merging after normal checks. Security Architecture ReviewSecurity architecture risk: 🟡 Moderate · up to The new generator build and NPM validation gate have meaningful security boundaries. Checksums, restricted candidate runners, and digest-bound promotion limit exposure, but the companion workflows and enforcement of the documented build isolation could not be verified here. Retained concerns
Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 14 functions across 8 files. (8 skipped: 8 unsupported.) ✨ 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 |
Platform's NPM release build currently runs protoc through the host Docker daemon. A runner inside a container cannot reliably bind-mount its checkout this way, and the new unprivileged runner image deliberately has no Docker CLI or socket.
This adds a native client-generation toolchain under
/opt/client-codegen, separate from Rust's protoc 32.0. It builds checksum-pinned protobuf 3.18.1, gRPC 1.46.3 Objective-C/Python plugins and gRPC Java 1.42.1, preserving the existing generator versions. Platform supplies its Yarn-locked TypeScript plugin. Companion: dashpay/platform#5068. The standalone builder also supports unprivileged local development on Linux and macOS.The optional
client_codegenimage requirement binds those sources to the reviewed recipe. Candidate routing accepts NPM validation jobs without devices or Docker authority; promotion requires successful Rust, Kotlin and NPM jobs on the same full PR head/image digest. Older manifests retain their existing Rust/Kotlin contract.Validation:
rvolosatovs/protoc:4.0.0@sha256:92c69fafae44d73c6446c8a0fdc6fa8fd8336ad7926bbc1d08ce651d864bdcaf: byte-identical.Rollout remains gated on the companion Platform changes and the bootstrap/Rust/Kotlin routing in dashpay/platform#4912 and dashpay/platform#4702. The trusted bootstrap's reusable-workflow and
control_revisionpins, and the operator controller checkout, must all move to a reviewed revision supportingclient_codegen/npm. Image publication alone does not update live runners. Register dedicatednpm-buildrelease capacity only after the complete release build/pack validation succeeds. The Platform companion requires theplatform-npm-releasesgroup restricted to its protected reusable release workflow, with HOME, workspaces and Cargo caches separate fromnpm-prvalidation capacity; see its NPM runner runbook.This pull request was created by Codex.