Ship coder-lite as the binary, answering both surfaces `#105` made coder-lite the coder UI; the release still built `openagents-cli`, so the shipped binary was the one nobody was meant to use. Shipping coder-lite alone would have been a regression: it refused every subcommand, so `issue`, `repo`, `auth`, `box` and the rest would have left the release — including `update`, which means an installed build could not have replaced itself. So the binary now answers both. Bare, it is the coder session. Given a command `openagents-cli` defines, it dispatches to that command. The subcommand set is read out of clap rather than kept by hand here, so a command added to `openagents-cli` is reachable the moment it exists and one removed stops being claimed. A hand-kept list is how the two surfaces would drift, and drift between two copies of the same thing is what this pass has been removing everywhere else. `--version` reports `openagents_cli::VERSION` rather than `CARGO_PKG_VERSION`, because `update` compares what the binary says against what the channel resolves to. A binary published as 0.0.2 that reported 0.1.0 would make every update either a no-op or a reinstall depending on which way the comparison fell.
Ship coder-lite as the binary, answering both surfaces
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
Cargo.lock -
modified
crates/coder-lite/Cargo.toml -
modified
crates/coder-lite/src/main.rs -
modified
ops/release-cli.sh
Diff
4 files changed, +48 -4
Cargo.lock modified +1
crates/coder-lite/Cargo.toml modified +3
@@ -21,6 +21,9 @@ path = "src/main.rs"
| 21 | 21 |
|
| 22 | 22 |
|
| 23 | 23 |
|
| 24 |
|
|
| 25 |
|
|
| 26 |
|
|
| 24 | 27 |
|
| 25 | 28 |
|
| 26 | 29 |
|
crates/coder-lite/src/main.rs modified +35 -1
@@ -62,9 +62,43 @@ and does not take that name.
| 62 | 62 |
|
| 63 | 63 |
|
| 64 | 64 |
|
| 65 |
|
|
| 66 |
|
|
| 67 |
|
|
| 68 |
|
|
| 69 |
|
|
| 70 |
|
|
| 71 |
|
|
| 72 |
|
|
| 73 |
|
|
| 74 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 78 |
|
|
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
|
| 65 | 84 |
|
| 66 | 85 |
|
| 67 | 86 |
|
| 87 |
|
|
| 88 |
|
|
| 89 |
|
|
| 90 |
|
|
| 91 |
|
|
| 92 |
|
|
| 93 |
|
|
| 94 |
|
|
| 95 |
|
|
| 96 |
|
|
| 97 |
|
|
| 98 |
|
|
| 99 |
|
|
| 100 |
|
|
| 101 |
|
|
| 68 | 102 |
|
| 69 | 103 |
|
| 70 | 104 |
|
@@ -126,7 +160,7 @@ fn parse(arguments: &[String]) -> Result<Parsed, String> {
| 126 | 160 |
|
| 127 | 161 |
|
| 128 | 162 |
|
| 129 |
|
|
| 163 |
|
|
| 130 | 164 |
|
| 131 | 165 |
|
| 132 | 166 |
|
ops/release-cli.sh modified +9 -3
@@ -234,9 +234,15 @@ for platform in $targets; do
| 234 | 234 |
|
| 235 | 235 |
|
| 236 | 236 |
|
| 237 |
|
|
| 238 |
|
|
| 239 |
|
|
| 240 |
|
|
| 241 |
|
|
| 242 |
|
|
| 237 | 243 |
|
| 238 |
|
|
| 239 |
|
|
| 244 |
|
|
| 245 |
|
|
| 240 | 246 |
|
| 241 | 247 |
|
| 242 | 248 |
|
@@ -254,7 +260,7 @@ for platform in $targets; do
| 254 | 260 |
|
| 255 | 261 |
|
| 256 | 262 |
|
| 257 |
|
|
| 263 |
|
|
| 258 | 264 |
|
| 259 | 265 |
|
| 260 | 266 |
|