feat(flue): add delegated-run provider#692
Conversation
Register the built-in flue provider as a delegated-run Linux provider with the initial archive-sync feature contract. Add the non-secret flue config and flag surface plus versioned protocol types so the later run bridge can build on stable names and validation without introducing provider-specific core logic.
Implement the Flue delegated-run bridge for crabbox run by writing a protocol v1 request file, passing only a requestFile pointer through flue run --input, staging the workspace as a local archive, and parsing the structured workflow response back into Crabbox run results and timing output. Reject unsupported v1 options before spawning Flue, keep Cloudflare/server targets deferred until an upload contract exists, and add fake-CLI coverage for success, malformed responses, workflow failures, command exits, timeouts, cleanup, and pre-spawn rejects.
Add a non-mutating Flue provider doctor, provider metadata, generated matrix row, and operator docs for the delegated Node/local request-file bridge. Include a runnable Node protocol example for fake/local smoke coverage and keep run-time validation strict while allowing doctor-specific diagnostics for unsupported targets.
Parse valid Flue protocol responses from non-zero delegated command exits, while preserving workflow failure when the Flue process errors despite a success-shaped response. Normalize relative Flue roots before passing them as --root/cwd, wire the documented CRABBOX_FLUE_* environment variables with timeout validation, and size Flue process capture for JSON protocol overhead.
|
Codex review: needs real behavior proof before merge. Reviewed June 25, 2026, 3:22 PM ET / 19:22 UTC. Summary Reproducibility: not applicable. this is a new provider feature rather than a broken existing behavior. Current-main source search shows there is no existing Flue provider to reproduce. Review metrics: 2 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land a maintainer-approved built-in Flue provider only after redacted live Flue workflow proof and explicit acceptance of the local request-file execution boundary. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a new provider feature rather than a broken existing behavior. Current-main source search shows there is no existing Flue provider to reproduce. Is this the best way to solve the issue? Unclear until maintainer product direction is confirmed. The delegated-run shape fits the repository architecture, but built-in provider acceptance and real Flue workflow behavior still need approval and proof. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 0ec69d642764. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Closes #382 (#382)
Summary
Adds a Flue delegated-run provider for one-shot Linux command execution through a local Flue workflow.
provider: flueasdelegated-runwitharchive-syncand coordinatorneverdoctor --provider fluediagnosticsdocs/examples/flue/Review Fixes
--rootand process cwd.CRABBOX_FLUE_*environment variables with timeout validation.Verification
go test ./internal/providers/flue ./internal/providers/all ./internal/cli -run 'Flue|Provider|Doctor|Run|Config|Delegated|Archive|Protocol|Reject'go build -trimpath -o bin/crabbox ./cmd/crabboxnode scripts/generate-provider-matrix.mjs --checkbash scripts/check-docs.shgo vet ./...go test -race ./...Additional smoke coverage used a fake local Flue CLI from outside the repository to prove provider discovery, doctor success,
echo ok, non-zero delegated command classification, relative--flue-root, timeout handling, and archive link rejection.Notes
Cloudflare/server Flue targets remain intentionally unsupported in v1 because this bridge uses host-local request and archive files. Remote targets need a future upload or HTTP staging contract.