Skip to content

feat: Remote SSH PRD: Phase 2 — Sprites provisioning - #368

Merged
Ziinc merged 2 commits into
mainfrom
claude/remote-ssh-prd-phase-2-wryci9
Aug 28, 2026
Merged

feat: Remote SSH PRD: Phase 2 — Sprites provisioning#368
Ziinc merged 2 commits into
mainfrom
claude/remote-ssh-prd-phase-2-wryci9

Conversation

@Ziinc

@Ziinc Ziinc commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements Phase 2 of prds/remote-ssh.md ("Sprites provisioning") on top of the merged Phase 1 domain/control-plane contracts.

  • Fly Sprites ManagedComputeProvider adapter (src-tauri/src/core/remote_provider_sprites.rs) with idempotent create/get/wake/replace/delete against a Fly Machines-style REST API.
  • Boot-manifest bootstrap (src-tauri/src/core/remote_bootstrap.rs): versioned, idempotent init script tied to manifest version/generation.
  • Supabase Edge Function remote-instance (ensure/status/wake/reprovision/delete/list_regions/list_sizes) with server-side ownership checks, idempotency via remote_instance_operations, generation increments on reprovision, and audit events.
  • Stub adapter for local/dev testing (REMOTE_SPRITES_STUB=1), mirroring the existing stub-github-adapter.ts pattern.

Known gaps

  • Host-key fingerprint recording is plumbed but not populated with a real value yet (Fly Machines' API doesn't return an SSH host key on create/replace, and there's no live account in this environment to keyscan against). Audit events mark this explicitly. Real host-key verification is Phase 3's job per the PRD.
  • No Deno test harness exists yet for Edge Functions in this repo; validated via deno check/deno lint instead.

Test plan

  • cargo build
  • cargo test --lib remote_ (adapter + bootstrap unit tests against wiremock)
  • cargo fmt --check, cargo clippy (scoped to new files, no warnings)
  • deno check / deno lint on new Edge Function files
  • Live provisioning against a real Fly account (no credentials in this environment)
    Stacked PR: Phase 3 (SSH trust and authentication) branches from this one and will retarget once this merges.
    Generated by Claude Code

claude added 2 commits August 27, 2026 22:05
Adds the Fly Sprites ManagedComputeProvider adapter (create/get/wake/
replace/delete against the Fly Machines REST API, idempotency headers,
normalized state/error mapping) plus unit tests against a mocked HTTP
server. Adds a versioned, idempotent boot-manifest bootstrap script
mechanism tied to instance generation. Adds the remote-instance
Supabase Edge Function (ensure/status/wake/reprovision/delete/list
catalogs) with server-side ownership checks, idempotency-key
deduplication via remote_instance_operations, managed endpoint and
host-key rotation recording, and audit event logging, plus a
Deno-side stub adapter for local testing without live Fly credentials.
@github-actions

Copy link
Copy Markdown
Contributor

@Ziinc Ziinc changed the title Remote SSH PRD: Phase 2 — Sprites provisioning feat: Remote SSH PRD: Phase 2 — Sprites provisioning Aug 28, 2026
@Ziinc
Ziinc merged commit 44fbcab into main Aug 28, 2026
17 of 19 checks passed
@Ziinc
Ziinc deleted the claude/remote-ssh-prd-phase-2-wryci9 branch August 28, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants