원클릭으로
yoyopod-rust-artifact
Manual fallback for fetching CI Rust artifacts onto the Pi (prefer /yoyopod-deploy)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Manual fallback for fetching CI Rust artifacts onto the Pi (prefer /yoyopod-deploy)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Commit-safe Rust-first dev-lane branch/SHA deploy to Raspberry Pi
Restart the active YoYoPod dev lane service on Raspberry Pi
Tail YoYoPod runtime/service logs from Raspberry Pi
Capture a screenshot of the active YoYoPod display from Raspberry Pi
Health check for Raspberry Pi lanes, runtime, connectivity, processes, memory, recent logs
Sync a committed branch / SHA to the Raspberry Pi dev lane
| name | yoyopod-rust-artifact |
| description | Manual fallback for fetching CI Rust artifacts onto the Pi (prefer /yoyopod-deploy) |
| disable-model-invocation | true |
| allowed-tools | ["Read","Bash(git status:*)","Bash(git branch --show-current:*)","Bash(git rev-parse:*)","Bash(git push:*)","Bash(gh run:*)","Bash(gh pr:*)","Bash(mkdir:*)","Bash(chmod:*)","Bash(ssh:*)","Bash(scp:*)","Bash(yoyopod target:*)"] |
/yoyopod-deployyoyopod target deploy (skill /yoyopod-deploy) replaces this entire
flow with a single command. It:
gh run download for yoyopod-rust-device-arm64-<sha>device/*/build/yoyopod-dev.service and verifies startupUse this skill only when you need to do part of that flow manually —
for example debugging a half-broken Pi state, swapping a single
artifact, or working around a gh CLI auth issue.
Rust binaries for hardware validation must come from GitHub Actions
artifacts for the exact commit being tested. Do not run cargo build
on the Raspberry Pi Zero 2W unless the user explicitly overrides this
rule.
Use the artifact whose suffix equals the exact commit under test, not a pull request merge SHA:
yoyopod-rust-device-arm64-<sha>
It contains:
yoyopod-rust-device-arm64-<sha>.tar.gz
That tarball extracts an install-ready device/.../build/... tree:
| Path inside extracted tree | Purpose |
|---|---|
device/runtime/build/yoyopod-runtime | Top-level Rust runtime entrypoint. |
device/ui/build/yoyopod-ui-host | Whisplay UI worker and LVGL renderer. |
device/media/build/yoyopod-media-host | Rust media/mpv worker. |
device/voip/build/yoyopod-voip-host | Rust Liblinphone/SIP worker. |
device/network/build/yoyopod-network-host | Rust SIM7600/PPP/GPS worker. |
device/cloud/build/yoyopod-cloud-host | Rust cloud MQTT worker. |
device/power/build/yoyopod-power-host | Rust PiSugar/power worker. |
device/speech/build/yoyopod-speech-host | Rust speech/Ask worker. |
/yoyopod-deploy cannot be used)Check local git status. If there are local changes, commit them first or stop and ask the user whether this is a debugging exception.
Resolve branch and commit.
git branch --show-current
git rev-parse HEAD
Push the commit. Run git push. If there is no upstream, run
git push -u origin <branch>.
Find the successful CI run for the exact commit.
gh run list --workflow CI --branch <branch> --json databaseId,headSha,status,conclusion --limit 20
Use only a run whose headSha equals the commit from step 2 and
whose conclusion is success. If the run is still queued or in
progress, wait. If it failed, inspect the failed job before any
hardware step.
Download and extract the Rust device bundle locally.
mkdir -p .artifacts/rust-device/<sha>
gh run download <run-id> --name yoyopod-rust-device-arm64-<sha> --dir .artifacts/rust-device/<sha>
tar -xzf .artifacts/rust-device/<sha>/yoyopod-rust-device-arm64-<sha>.tar.gz -C .artifacts/rust-device/<sha>
Make sure the Pi dev checkout is on the same commit.
yoyopod target mode activate dev
# then deploy without artifact (this is the simple-case fallback that
# only re-syncs git state; binaries follow in step 7):
yoyopod target deploy --sha <sha>
Install the CI-built Rust binaries on the Pi (only if step 6 did
not already do it — yoyopod target deploy normally does this end
to end).
scp .artifacts/rust-device/<sha>/yoyopod-rust-device-arm64-<sha>.tar.gz <user>@<host>:/tmp/yoyopod-rust-device-arm64-<sha>.tar.gz
ssh <user>@<host> 'cd /opt/yoyopod-dev/checkout && \
tar -xzf /tmp/yoyopod-rust-device-arm64-<sha>.tar.gz && \
chmod +x device/runtime/build/yoyopod-runtime \
device/ui/build/yoyopod-ui-host \
device/media/build/yoyopod-media-host \
device/voip/build/yoyopod-voip-host \
device/network/build/yoyopod-network-host \
device/cloud/build/yoyopod-cloud-host \
device/power/build/yoyopod-power-host \
device/speech/build/yoyopod-speech-host'
yoyopod target restart
Validate. Automated on-Pi validation returns in Round 2 of the CLI rebuild. Until then, validate manually:
yoyopod target status
yoyopod target logs --follow
journalctl -u yoyopod-dev.service -f
Exercise the changed surface on the device.
Report exact provenance. Include the branch, commit SHA, CI run ID, artifact names, Pi host, command result, and whether the dev service was left running.