chore(openshell): re-vendor proto to v0.0.96 - #147
Open
onsails wants to merge 5 commits into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
This PR re-vendors the OpenShell protobuf definitions in right-openshell to upstream tag v0.0.69, updating the API/wire surface that right-openshell compiles against and communicates with.
Changes:
- Updated vendored upstream tracking metadata to v0.0.69.
- Updated
openshell.prototo include new provider profile update RPCs/messages, a newProviderProfile.resource_versionfield, and replacedSandboxSpec.gpuwithSandboxSpec.resource_requirements(plus new resource requirement messages).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| crates/right-openshell/proto/UPSTREAM.md | Bumps recorded upstream proto tag/fetch timestamp to v0.0.69. |
| crates/right-openshell/proto/openshell/openshell.proto | Updates the vendored OpenShell API surface (new RPC/messages, new resource_version, and breaking SandboxSpec field-9 change). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
1094
to
1099
| ProviderProfileDiscovery discovery = 9; | ||
| // Storage resource version for custom profiles. Built-in profiles and new | ||
| // profile files use 0. Gateway responses set this for stored custom profiles. | ||
| // Update calls use this for optimistic concurrency. | ||
| uint64 resource_version = 10; | ||
| } |
Comment on lines
321
to
+326
| openshell.sandbox.v1.SandboxPolicy policy = 7; | ||
| // Provider names to attach to this sandbox. | ||
| repeated string providers = 8; | ||
| // Request NVIDIA GPU resources for this sandbox. | ||
| bool gpu = 9; | ||
| // Portable resource requirements used by the gateway for driver selection | ||
| // and by drivers for provisioning. | ||
| ResourceRequirements resource_requirements = 9; |
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
June 26, 2026 07:14
af4fc08 to
1e6a5d1
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
4 times, most recently
from
June 30, 2026 07:13
46e0d9f to
4281031
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 1, 2026 07:15
4281031 to
f977de9
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 2, 2026 07:05
f977de9 to
1b30e2a
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 3, 2026 07:00
1b30e2a to
22efaff
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 4, 2026 06:51
22efaff to
5c3d31a
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
2 times, most recently
from
July 6, 2026 09:52
a85bf08 to
44ede34
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 7, 2026 09:06
44ede34 to
46cd062
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
2 times, most recently
from
July 10, 2026 09:04
cf620a3 to
8d12ac3
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 11, 2026 07:39
8d12ac3 to
19895ea
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
5 times, most recently
from
July 22, 2026 08:10
b81f791 to
e74f74f
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
2 times, most recently
from
July 24, 2026 08:10
ac0f67d to
ae58766
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
July 25, 2026 07:49
ae58766 to
bc00228
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
3 times, most recently
from
July 28, 2026 08:16
7a58b30 to
9be0b90
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
4 times, most recently
from
August 1, 2026 08:05
91d8148 to
fb01972
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
August 2, 2026 08:05
fb01972 to
839cc8d
Compare
onsails
force-pushed
the
automation/openshell-proto-revendor
branch
from
August 3, 2026 09:02
839cc8d to
66b4109
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated re-vendor of the OpenShell protos to v0.0.96.
buf breaking(PACKAGE)cargo check -p right-openshellbuf breaking output
cargo check (tail)
A BREAKING or FAILED result means upstream changed the wire/API shape.
Audit
SandboxReadinessand any code decoding moved/removed fields, then bumpMIN_OPENSHELL_VERSIONand the CIOPENSHELL_VERSIONpin as needed.This bot surfaces drift only — it does not fix Rust. Full CI runs on this PR only
when
BOT_PR_TOKEN(a fine-grained PAT) is configured as a repo secret;otherwise bot-authored PRs don't trigger downstream workflows. Either way, the
openshell-proto-compatworkflow run itself goes RED whencargo checkfails,so a failing proto bump is visible in the Actions tab even without full CI.
Re-vendor Assessment
Compared v0.0.62 → v0.0.96. This model-generated report is evidence-backed review input, not a product commitment.
Summary: OpenShell v0.0.62→v0.0.96 proto revendor is wire-compatible for everything Right currently sends (cargo check ok); buf flagged exactly two breaking changes, both already mitigated or unused, and the diff surfaces four adoptable upstream capabilities (atomic profile updates, gateway-owned credential refresh, MCP-native L7 policy, gateway/driver introspection) that map cleanly onto existing Right pain points.
Adoption Candidates
Atomic provider-profile update RPC (UpdateProviderProfiles)
Required work
Blockers
Evidence
Observation: Candidate adds a dedicated update RPC for custom provider profiles with optimistic concurrency via expected_resource_version, explicitly distinct from the existing create-only ImportProviderProfiles
Observation: Current code comment states plainly: "OpenShell's `import` never upserts and the gateway refuses to delete a profile while a sandbox references it, so an update is: detach every referencing attachment, delete + re-import the profile (same id), then re-attach" — the exact gap UpdateProviderProfiles fills
Gateway-owned provider credential refresh with AWS STS AssumeRole + multi-credential outputs
Required work
Blockers
Evidence
Observation: Candidate adds an AWS STS assume-role refresh strategy and a mechanism for one refresh to mint multiple sibling credentials (e.g. access key + session token) via additional_outputs
Observation: Zero call sites for any of the four provider-credential-refresh RPCs anywhere in providers.rs or its tests — the entire gateway-owned refresh family is currently unused by Right, which only tracks credential_expires_at_ms manually
Native MCP-protocol L7 policy (protocol: mcp, McpOptions, tools/call params matcher)
Required work
Blockers
Evidence
Observation: Candidate adds first-class MCP-protocol L7 policy (method/tool-name matching) as a supervisor-enforced network-policy primitive, distinct from the generic REST L7 rules used everywhere in Right today
Observation: The host-side Right MCP aggregator endpoint the sandbox connects to is currently policed as generic REST, not as MCP; all tool-name enforcement happens only in the aggregator process per ARCHITECTURE.md's MCP Aggregator routing rules
Gateway/compute-driver introspection (GetGatewayInfo, GetCurrentUser)
Required work
Blockers
Evidence
Observation: Candidate adds two new read-only introspection RPCs beyond the existing bare-version Health check
Observation: Only RPC preflight ever calls is Health(), extracting just resp.version; no driver-capability or identity introspection exists in the crate
Breaking Changes
SandboxSpec field 9: bool gpu → message resource_requirements (migration_required)
Evidence
Observation: buf reports Field "9" on SandboxSpec changed cardinality, json_name, type (bool→message), and name (gpu→resource_requirements)
Observation: MIN_OPENSHELL_VERSION is already set to 0.0.69 with a doc comment naming exactly this SandboxSpec field-9 retyping as the reason
SandboxTemplate field 9: volume_claim_templates deleted (no_current_consumer)
Evidence
Observation: buf reports "Previously present field \"9\" with name \"volume_claim_templates\" on message \"SandboxTemplate\" was deleted"
Observation: Only match is the reserved-field comment in the proto file itself; no Rust call site ever set or read this field