Restore required transport flags on quire-ci run
quire-ci run is the orchestrator path and always receives session info.
The local case (no session) is quire-ci local, not quire-ci run.
change
commit e290083738786b01594476065f3a5381b4d8cf52
author Claude <noreply@anthropic.com>
date
parent b291a334
diff --git a/quire-ci/src/main.rs b/quire-ci/src/main.rs
index 611842d..69e0d88 100644
--- a/quire-ci/src/main.rs
+++ b/quire-ci/src/main.rs
@@ -95,18 +95,15 @@ enum Commands {
 }
 
 /// Session and transport flags for orchestrator-dispatched runs.
-/// All flags are optional — when `--run-id` and `--server-url` are
-/// absent and `--transport` is `filesystem` (the default), the run
-/// executes without a server session (local mode).
 #[derive(clap::Args, Debug)]
 struct TransportFlags {
     /// Run ID assigned by the orchestrator.
     #[arg(long)]
-    run_id: Option<String>,
+    run_id: String,
 
     /// Base URL of quire-server (e.g. `http://127.0.0.1:3000`).
     #[arg(long)]
-    server_url: Option<String>,
+    server_url: String,
 
     /// Transport for CI ↔ server communication.
     #[arg(long, default_value = "filesystem", value_enum)]
@@ -115,38 +112,17 @@ struct TransportFlags {
 
 impl TransportFlags {
     fn resolve(self, auth_token: Option<String>) -> miette::Result<TransportArgs> {
-        match self.transport {
-            Transport::Filesystem => match (self.run_id, self.server_url) {
-                (None, None) => Ok(TransportArgs::Filesystem(None)),
-                (Some(run_id), Some(server_url)) => {
-                    let auth_token = auth_token
-                        .ok_or_else(|| miette::miette!("QUIRE_CI_TOKEN env var is required"))?;
-                    Ok(TransportArgs::Filesystem(Some(ApiSession {
-                        run_id,
-                        server_url,
-                        auth_token,
-                    })))
-                }
-                _ => Err(miette::miette!(
-                    "--run-id and --server-url must both be provided or both omitted"
-                )),
-            },
-            Transport::Api => {
-                let run_id = self
-                    .run_id
-                    .ok_or_else(|| miette::miette!("--run-id is required for api transport"))?;
-                let server_url = self
-                    .server_url
-                    .ok_or_else(|| miette::miette!("--server-url is required for api transport"))?;
-                let auth_token = auth_token
-                    .ok_or_else(|| miette::miette!("QUIRE_CI_TOKEN env var is required"))?;
-                Ok(TransportArgs::Api(ApiSession {
-                    run_id,
-                    server_url,
-                    auth_token,
-                }))
-            }
-        }
+        let auth_token =
+            auth_token.ok_or_else(|| miette::miette!("QUIRE_CI_TOKEN env var is required"))?;
+        let session = ApiSession {
+            run_id: self.run_id,
+            server_url: self.server_url,
+            auth_token,
+        };
+        Ok(match self.transport {
+            Transport::Filesystem => TransportArgs::Filesystem(Some(session)),
+            Transport::Api => TransportArgs::Api(session),
+        })
     }
 }