You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat: add GitHub Action for automated proto drift detection #49
The SDK must stay in sync with upstream proto changes from NVIDIA/OpenShell. Proto files change frequently (OpenShell is pre-beta), and currently someone has to manually run /openshell-proto-sync or mise run proto:gen to detect drift.
Existing tooling
We already have the building blocks:
Tool
What it does
mise run proto:gen
Regenerates Go bindings from .proto source files using Buf
mise run proto:check
Diffs generated files against source, fails if out of date (runs in make ci)
/openshell-proto-sync skill
Full workflow: fetch upstream protos, regenerate, gap analysis, triage, implement small items, escalate large items to SpecKit brainstorm
UPSTREAM_PATH env var
Overrides default upstream path for proto:gen
Proposal
Add a scheduled GitHub Action that:
Runs on a cron schedule (daily or weekly, configurable).
Checks out both repos: this SDK and NVIDIA/OpenShell (upstream main).
Copies upstream proto files into the SDK's proto/ directory.
Runs mise run proto:gen to regenerate bindings.
Runs mise run proto:check to detect drift.
If drift is detected:
Diffs the generated output to identify what changed (new fields, new RPCs, removed fields, new proto files).
Creates a GitHub issue with a structured gap analysis table (category, item, size, suggested action).
Labels the issue proto-sync.
Skips issue creation if an open issue with the same proto diff fingerprint already exists (avoid duplicates).
If no drift: exits silently.
Optional enhancements (future)
Auto-create a PR with the regenerated bindings for purely mechanical syncs (no SDK code changes needed).
Post a Slack notification to the team channel when drift is detected.
Include a link to the /openshell-proto-sync skill in the issue body so the assignee knows how to resolve it.
Implementation notes
The Action needs access to the upstream repo (public, no auth needed).
Buf, protoc-gen-go, and protoc-gen-go-grpc need to be installed in the Action runner. These are already pinned in .mise.toml.
The drift fingerprint for dedup could be a hash of the diff output.
References
Proto sync skill: .claude/skills/openshell-proto-sync/SKILL.md
Activity