Name the repository a fleet listing describes

d9b5cc5c997c · AtlantisPleb · · parent 2ac810f0c7d2

Name the repository a fleet listing describes

`oa deploy list` printed the target rows without the `Repository:` line the
TypeScript CLI leads with. A list of bare SHAs does not say which fleet it
describes, which starts mattering the moment more than one repository deploys.

Found by running both against production with an operator token, which is the
only way this surface could be compared at all — every earlier check had only
ever seen the 401. With it, `deploy list` and `deploy view` are byte-identical
between the two CLIs, human and JSON.

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

Not deployed through the forge lane

No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.

Changed files

  • modified crates/openagents-cli/src/cli.rs

Diff

1 file changed, +11 -4

crates/openagents-cli/src/cli.rs modified +11 -4

@@ -4252,11 +4252,18 @@ async fn run_deploy(action: DeployAction, api_base: &str, token: Option<String>,

4252 4252
                .and_then(serde_json::Value::as_array)
4253 4253
                .cloned()
4254 4254
                .unwrap_or_default();
4255
            let human: Vec<String> = if targets.is_empty() {
4256
                vec!["No fleet targets found.".to_string()]
4255
            // The TypeScript CLI leads with the repository the targets belong
4256
            // to. Without it a list of bare SHAs does not say which fleet it
4257
            // describes, which matters once more than one repository deploys.
4258
            let mut human: Vec<String> = Vec::new();
4259
            if let Some(repo) = value.get("repo").and_then(serde_json::Value::as_str) {
4260
                human.push(format!("Repository: {repo}"));
4261
            }
4262
            if targets.is_empty() {
4263
                human.push("No fleet targets found.".to_string());
4257 4264
            } else {
4258
                targets.iter().map(fleet::target_row).collect()
4259
            };
4265
                human.extend(targets.iter().map(fleet::target_row));
4266
            }
4260 4267
            emit(json, &value, &human);
4261 4268
        }
4262 4269
        DeployAction::View {

This page updates live while a promote is in flight · changelog