Skip to content

temporal — Fix Report

Generated: 2026-07-07 CLI version: temporal version 1.7.2 (Server 1.31.1, UI 2.49.1) Scope: critical In findings: 22 failure modes evaluated

Summary

Severity Pass (3/3) Partial (1–2) Fail (0) Indeterminate (?)
Critical 2 15 4 1
High 0 0 0 0
Medium 0 0 0 0

Required Fixes (score < 3, sorted: severity desc, score asc)

§1 — Exit Codes & Status Signaling [Critical · 0/3]

Gap: Missing args, not-found, and network/timeout failures all exited 1; no declared semantic code table or JSON error exit_code field was observed.

Solutions: Publish a stable exit-code table and include the numeric exit code in every JSON error body.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §1.

§13 — Partial Failure & Atomicity [Critical · 0/3]

Gap: A deliberate bad batch/query path returned a single prose error with no partial, completed_steps, failed_step, rollback, or resume token.

Solutions: For multi-step and batch commands, emit per-step results, partial status, failed step, and resume or rollback handles.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §13.

§25 — Prompt Injection via Output [Critical · 0/3]

Gap: User-controlled/local config data is returned as raw JSON values with no trust boundary, envelope, or trusted: false metadata.

Solutions: Wrap external data separately from CLI metadata and mark it with trust/source fields.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §25.

§74 — Credential Scope Declaration Absence [Critical · 0/3]

Gap: --schema, manifest, and check-permissions --for ... are absent; command entries expose no required_scopes field.

Solutions: Add required_scopes to command manifests and a check-permissions preflight.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §74.

§2 — Output Format & Parseability [Critical · 1/3]

Gap: --output json exists and success paths return JSON, but validation and connection failures print prose/usage text instead of an ok/data/error envelope.

Solutions: Make --output json invariant for both success and failure paths with ok, data, error, warnings, and meta.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §2.

§11 — Timeouts & Hanging Processes [Critical · 1/3]

Gap: --command-timeout and --client-connect-timeout work, but timeout/network failures exit 1 with Error: program interrupted rather than structured TIMEOUT JSON.

Solutions: Emit structured TIMEOUT errors with a distinct exit code and duration metadata.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §11.

§12 — Idempotency & Safe Retries [Critical · 1/3]

Gap: Workspace-local env set was repeatable, and workflow start has ID conflict/reuse policies, but no --idempotency-key or response effect contract exists.

Solutions: Add idempotency keys or explicit effect fields for mutating commands so retries can be made safely.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §12.

§23 — Side Effects & Destructive Operations [Critical · 1/3]

Gap: Query-based destructive commands have --yes prompt bypass and JSON mode refuses prompts, but destructive commands expose no --dry-run, danger_level, or effect field.

Solutions: Add dry-run and structured effect/danger metadata to every destructive command.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §23.

§24 — Authentication & Secret Handling [Critical · 1/3]

Gap: Temporal accepts API keys through --api-key, which exposes secrets in process arguments; a debug probe did not echo the test key in captured output.

Solutions: Prefer env/file secret inputs and deprecate secret-bearing argv flags, or auto-redact and warn when they are used.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §24.

§34 — Shell Injection via Agent-Constructed Commands [Critical · 1/3]

Gap: Some enum-style flags reject invalid values, but a %2F-encoded environment name was accepted and errors are unstructured; no agent-hardening declaration exists.

Solutions: Reject traversal/metacharacter patterns consistently and return structured validation suggestions.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §34.

§42 — Debug / Trace Mode Secret Leakage [Critical · 1/3]

Gap: Debug logging did not echo the test API key, but secrets can still be supplied on argv and no schema marks sensitive fields.

Solutions: Add sensitive-field metadata and safe trace mode; prefer env/file secret injection over argv flags.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §42.

§43 — Tool Output Result Size Unboundedness [Critical · 1/3]

Gap: List commands expose --limit/--page-size, but outputs lack meta.truncated, total byte counts, or a global --max-output guard.

Solutions: Add output caps and truncation metadata to large or single-result responses.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §43.

§50 — Stdin Consumption Deadlock [Critical · 1/3]

Gap: Commands with missing required input failed quickly with usage/prose and did not block, but no structured STDIN_REQUIRED code or hint was emitted.

Solutions: Emit structured STDIN_REQUIRED errors for stdin-dependent arguments and declare stdin fallbacks in schema.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §50.

§60 — OS Output Buffer Deadlock [Critical · 1/3]

Gap: server start-dev emitted startup lines, but no JSON heartbeat or progress protocol for long-running commands was observed.

Solutions: Emit line-delimited JSON heartbeats with elapsed time and current step for long-running commands.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §60.

§61 — Bidirectional Pipe Payload Deadlock [Critical · 1/3]

Gap: Workflow input commands provide --input-file, but stdin size limits and STDIN_TOO_LARGE overflow errors were not observed.

Solutions: Declare stdin size limits and return STDIN_TOO_LARGE with an input-file hint when exceeded.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §61.

§71 — Non-Interactive Installation Absence [Critical · 1/3]

Gap: The binary is installed and --version works, but this audit workspace has no AGENTS.md/README documenting a non-interactive, idempotent install command.

Solutions: Document a pinned non-interactive install and verify command in AGENTS.md.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §71.

§10 — Interactivity & TTY Requirements [Critical · 2/3]

Gap: Local mutating config commands complete with stdin closed, and JSON destructive query commands require prompt bypass; no universal schema declares interactive paths.

Solutions: Declare every interactive command in a manifest and auto-disable prompts when stdin/stdout are non-TTY.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §10.

§45 — Headless Authentication / OAuth Browser Flow Blocking [Critical · 2/3]

Gap: Temporal uses API-key/config flags and no browser OAuth flow was observed; auth failures are not exposed as structured AUTH_REQUIRED/auth_methods envelopes.

Solutions: Declare auth requirements and methods in a manifest and return structured auth errors.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §45.

§64 — Headless Display and GUI Launch Blocking [Critical · 2/3]

Gap: server start-dev documents --headless and prints service/UI URLs instead of opening a browser; no schema declares GUI/headless behavior.

Solutions: Declare GUI operations/headless behavior in a manifest and return URL/path fields in JSON.

Requirements that address this: - Requirements index was not available under the report skill; map this fix to the corresponding CLI Agent Spec requirement for §64.

Already Passing

§37, §62 (score 3/3 — no action needed)

Could Not Verify

§53 (behavior unknown; treat as unverified risk)