Skip to content

port(drive-cloud): emit the tick as a v2 kernel spec - #455

Open
AgentRelayBot wants to merge 3 commits into
mainfrom
port/drive-cloud-v2
Open

AgentRelayBot wants to merge 3 commits into
mainfrom
port/drive-cloud-v2

Conversation

@AgentRelayBot

@AgentRelayBot AgentRelayBot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Hosted-dev status — 2026-09-20

Head: 0614035a8964b2114bb6d5366f31bda852505f95. The proof fixture was exactly aff6bff794e98c8f24ddaea707df8e58c54f4eb5 (the one-cycle Drive flow plus scoped documentation target).

Fresh dev candidate verification passed: Cloud deploy 35526582211 succeeded at e882221f47a8ff894bdfcaa5ad61ca8a8239f28b; health returned that build with bindingsOk: true. The launched Drive run was d5abe6db-4a06-4d8f-817d-01b0fd167411, with runtime authority source a4f857589af930bd5d6ea365a0e0a4166417a125 and artifact SHA f740bbc3ff44843cde3021ad15c4a9a59f0b58b394bc15a11798d78b25bc3620.

It failed closed before an agent or patch: claude auth status exited non-zero, despite bootstrap reporting the Anthropic setup-token mount. Therefore there is no Drive cycle, documentation artifact, patch, or cleanup success claim. This is a Cloud/CLI-auth preflight dependency to repair before retrying; do not merge as hosted-verified.

The cloud tick is the last high-volume flow still submitted as Relayflow
v1, and v1 launches are the only remaining traffic on the SQS/Lambda
launch bridge: 693 of 1065 v1 runs over 7 days are this one flow, against
49 v2 runs total. Cloud already accepts `--relayflow-version v2` and
routes those launches through the Cloudflare queue, so the Lambda cannot
be retired until this flow has a v2 form.

This translates rather than re-authors. gen-drive-cloud-v2.py reuses
gen-drive-cloud.build(), so the cloud-specific shaping -- one cycle, a
non-fatal verify, the commit/handoff steps -- keeps exactly one
definition and drive.yaml stays the single source of truth.

The mapping is small because the v2 authoring schema kept v1's camelCase
for everything this tick uses: dependsOn, maxIterations, timeoutMs and
verification are unchanged, gate shapes included. What moves is the
envelope -- version to 0.1.0, the workflows wrapper flattened to steps,
step.name to step.id, agent task to instruction, swarm.timeoutMs to
budget.maxWallclockMs, and swarm.channel to the agent steps' stream
surface. swarm.pattern: dag is dropped because dependsOn already is the
dag.

Two v1 concepts do not survive, both deliberately:

- The `agents` roster is not emitted. v2's NamedAgentSpec requires both
  cli and model, and drive.yaml pins no model, so emitting a roster would
  mean inventing model pins here -- a behaviour change wearing a port's
  clothing. Each agent step carries its roster cli inline instead, which
  is what the already-ported drive-local.yaml does. `role` is prose the
  lead depends on, so it is prefixed onto the instruction rather than
  dropped; `preset` has no v2 equivalent and is gone.

- timeoutMs on agent steps. v2 does not accept it, and drive.yaml's own
  comments record that the platform never enforced it, so agent steps are
  bounded by budget.maxWallclockMs -- which is the first bound that
  actually holds.

Verified three ways. The generated spec passes @relayflows/schema, while
drive-cloud.yaml fails it on exactly the four points this mapping
addresses and the already-ported drive-local.yaml and restack-verify.yaml
pass, so the validator discriminates. `--check` asserts step-for-step
equivalence against the v1 document -- byte-identical shell commands,
identical gates, dependsOn, maxIterations and cli -- and it was confirmed
to fail on a dropped gate, a reflowed command, a changed cli, a dropped
maxIterations, reordered steps and a missing channel surface. `--check`
also fails on a stale or hand-edited file.

Nothing is switched over here: ops/launch-gate.sh still submits
drive-cloud.yaml on v1. Flipping it is a separate change, once this spec
has carried a real run.
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: df0dc323-320f-4568-b81d-80b26c91ca16


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Review swarm: maintainability

No fresh transcript was produced for run 2e893ce3-2b4b-4581-a353-ab53d5d3a984 (MISSING).

@github-actions

Copy link
Copy Markdown

Review swarm: history

No fresh transcript was produced for run 2e893ce3-2b4b-4581-a353-ab53d5d3a984 (MISSING).

@github-actions

Copy link
Copy Markdown

Review swarm: structure

No fresh transcript was produced for run 2e893ce3-2b4b-4581-a353-ab53d5d3a984 (MISSING).

@github-actions

Copy link
Copy Markdown

Review swarm: FAILED

  • maintainability: MISSING
  • history: MISSING
  • structure: MISSING

Cloud run: 2e893ce3-2b4b-4581-a353-ab53d5d3a984

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