feat: replace all implementation stubs with real functionality (#7)#58
Merged
jeremymanning merged 13 commits intomainfrom Apr 17, 2026
Merged
feat: replace all implementation stubs with real functionality (#7)#58jeremymanning merged 13 commits intomainfrom
jeremymanning merged 13 commits intomainfrom
Conversation
Phase 0 research covers all 19 sub-issues with technology decisions. Phase 1 design includes data model, CLI/HTTP contracts, and quickstart. Constitution check passes all 5 principles (pre- and post-design). Identifies 4 new dependencies: reqwest, oauth2, x509-parser, stun-rs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three clarifications from /speckit.clarify session: - SC-002: quantify "reasonable time" as under 60 seconds - Credential expiry: fail current op, require agent restart - Firecracker errors: fail fast, reschedule, max 3 donors per task Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Organized by user story for independent implementation and testing. Phases 3-9 can run in parallel after CLI wiring (Phase 2). MVP path: CLI + WASM sandbox (~20 tasks). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… mapping - Add FR-ID references to all 77 task descriptions (C1-C5) - Add story numbering mapping note in tasks.md (I1) - Replace hardcoded '422+' with 'all existing' in T072 (I2) - Replace vague 'etc.' with exhaustive NatStatus enum values (A1) - Add tools/apple-vf-helper/ to plan.md project structure (U1) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 1: Add reqwest, oauth2, x509-parser dependencies. Phase 2: Wire all 5 CLI command groups into main.rs: - Donor: calls AgentInstance::enroll() for join - Job: validates manifest JSON via JobManifest deserialization - Cluster: new ClusterCli struct with status/peers/ledger-head - Governance: calls ProposalBoard for submit/list - Admin: enforces OnCallResponder role messaging All 422 tests pass, zero clippy warnings. No "not yet implemented" messages remain in CLI output. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…15, #16) WASM sandbox (T016-T019): - create() fetches module bytes from CID store and compiles via wasmtime - start() instantiates module, calls _start, captures output to work dir - run_module() supports fuel-limited execution and memory-based output - 5 new tests: engine init, missing CID, compile+run, invalid bytes, lifecycle Ed25519 verification (T032): - Replace structural signature check with real ed25519_dalek verification - Add manifest_signing_bytes() for canonical message computation - Update all test fixtures (rules, engine, policy integration, red team) to use real Ed25519 key pairs instead of fake vec![1u8; 64] All 425 tests pass, zero clippy warnings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ient (#19,#23,#25,#26) OTLP telemetry (T058-T059): - Wire opentelemetry-otlp trace exporter when otel_endpoint is set - Add OtlpConfig struct, graceful fallback to JSON-only on failure NAT detection (T067): - Real STUN binding request implementation (RFC 5389) - Classify NAT type from multiple STUN responses (Direct, FullCone, RestrictedCone, PortRestricted, Symmetric, Unknown) - XOR-MAPPED-ADDRESS parsing with test coverage DNS seeds (T068): - Configurable via WORLDCOMPUTE_BOOTSTRAP_SEEDS env var - Falls back to placeholder seeds for development BrightID HTTP client (T043-T044): - Replace stub with real reqwest blocking client - Parse BrightID API response with error handling - Configurable node URL via BRIGHTID_NODE_URL env var All 431 tests pass, zero regressions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…13-#26) Firecracker (T020-T024): - API socket HTTP client over Unix domain socket - VM config sequence: machine-config, boot-source, drives, network, start - Snapshot creation via /snapshot/create - FirecrackerVmConfig struct with validation OAuth2 (T045-T046): - Full authorization code flow via oauth2 v4 crate - 4 providers: GitHub, Google, Twitter, Email - Config from env vars, ProviderUnavailable when unconfigured Phone/SMS (T047-T049): - Twilio Verify API integration for send + verify - SmsProviderConfig from env vars Rekor (T053-T055): - Real HTTP POST to Rekor REST API - Entry UUID parsing, offline fallback - Verification with format checking Attestation (T033-T039): - CertificateChainValidator trait - TPM2, SEV-SNP, TDX chain validators with x509-parser - Apple SE DeviceCheck structure documented Raft consensus (T062-T064): - RaftCoordinatorStorage with BTreeMap log - Vote tracking, commit/apply, WAL support - Quorum election with peers All 454 tests pass, zero clippy warnings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Integration tests (47 new tests): - Sandbox: WASM hello world, Firecracker config validation - Attestation: cert chain structure, Ed25519 policy verification - Identity: BrightID, OAuth2 flow structure - Infrastructure: Rekor offline handling, OTLP config, Raft lifecycle - Network: NAT classification, DNS seed config Polish: - Update CLAUDE.md: 489+ tests, CLI functional, stubs replaced - All 77/77 tasks complete - Zero clippy warnings - Zero "not yet implemented" CLI stubs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace hardcoded /tmp/ paths with std::env::temp_dir() in: - scheduler/coordinator.rs (raft WAL test) - sandbox/wasm.rs (WASM sandbox tests) - agent/config.rs (default work_dir) - cli/submitter.rs (submit test) Fixes Windows CI failure: raft_storage_with_wal panicked on /tmp path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This was referenced Apr 17, 2026
This was referenced Apr 17, 2026
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.
Summary
cargo fmtWhat Changed
Phase 1-2: Foundation
Phase 3: Sandbox
Phase 4: Attestation
Phase 5: Identity
Phase 6: Transparency
Phase 7: Observability
Phase 8: Raft Consensus
Phase 9: Network
Phase 10: Polish
Test plan
cargo test— 489 tests passing (351 lib + 138 integration)cargo clippy --lib -- -D warnings— zero warningscargo fmt --check— clean🤖 Generated with Claude Code