ref:17fe32ecea44b44586e1a589e8c5ca034e2c8cf9

feat(cli): add short_id display, ci job-view with SSE streaming, ci cancel

- Update CiRun/CiJob structs with short_id, validation_status, validation_messages, step_index, started_at, completed_at fields - ci list: display short_id instead of truncated UUID - ci view: use org/repo API path, show short_id and validation info - Add get_sse_stream() to Client for SSE endpoint consumption - Add ci job-view: fetch job metadata + stream build logs via SSE with stderr dim styling and done event handling - Add ci cancel: POST to cancel a running CI run - Fix all clippy warnings across ci, commit, issue, pr, requirement, and ssh_key commands (redundant closures, io_other_error) - Add tokio-util and reqwest stream feature for SSE support Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SHA: 17fe32ecea44b44586e1a589e8c5ca034e2c8cf9
Author: Cole Christensen <cole.christensen@macmillan.com>
Date: 2026-03-21 18:18
Parents: 86bd78c
9 files changed +323 -32
Type
Cargo.lock +29 −0
@@ -80,5 +80,6 @@
"tabled",
"thiserror 2.0.18",
"tokio",
"tokio-util",
"url",
]
@@ -1175,12 +1176,14 @@
"sync_wrapper",
"tokio",
"tokio-rustls",
"tokio-util",
"tower",
"tower-http",
"tower-service",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"wasm-streams",
"web-sys",
"webpki-roots",
]
@@ -1576,6 +1579,19 @@
]
[[package]]
name = "tokio-util"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
dependencies = [
"bytes",
"futures-core",
"futures-sink",
"pin-project-lite",
"tokio",
]
[[package]]
name = "tower"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1811,6 +1827,19 @@
"indexmap",
"wasm-encoder",
"wasmparser",
]
[[package]]
name = "wasm-streams"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
dependencies = [
"futures-util",
"js-sys",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]]
Cargo.toml +2 −1
@@ -11,7 +11,8 @@
[dependencies]
clap = { version = "4", features = ["derive"] }
reqwest = { version = "0.12", features = ["json", "rustls-tls", "multipart"], default-features = false }
reqwest = { version = "0.12", features = ["json", "rustls-tls", "multipart", "stream"], default-features = false }
tokio-util = { version = "0.7", features = ["io"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["full"] }