Copy logo as SVG
Copy wordmark as SVG
Download brand assets
Brand guidelines
更新日志 Product

Live Once run and action insights

Tuist now speaks the Once live event protocol (once.events.v1) end to end. When the Once CLI starts a build or test run against Tuist, it opens a gRPC stream to build.<your-host>, prints a live URL you can open right away, and reports each declared action as it completes. The dashboard renders the run's actions and roll-ups in real time.

  • New pages under a project's Once section
    • Once → Runs — every run this project has recorded, filterable by kind (build, test, generic).
    • Once → Runs → :run_id — per-run detail with the actual command the user ran (safe-literal argv rendered verbatim; every other positional hashed opaquely under a project-scoped key so nothing sensitive persists), git context, roll-ups, and a table of actions as they land.
  • Same-target sub-action granularity — actions inside one target (e.g. cargo's build-script-build vs rustc runs, or the individual Starlark actions in a native Once graph) each get their own row with cache decision, duration, exit code, and identifier, matching how Bazel renders its actions view.
  • Live LiveView updates — the projector broadcasts on Phoenix.PubSub as each event lands, so the dashboard reflects the run without a refresh.

Under the hood, /.well-known/once advertises the gRPC endpoint at build.<host> alongside a live_url_template the CLI substitutes so it can print the browser link the moment the run is minted, without waiting for a first ack. Argv normalization follows RFC 0008 §Identity and redaction: safe literals from the frozen 2026.09.03-v1 allowlist stay readable, everything else hashes under a project-scoped BLAKE3 key.

Cache and remote-execution traffic still flow through Kura; events go straight to the server so LiveView renders live from the same BEAM.