Tuist

Tuist

更新日誌

Product

The Module Cache tab on a build run now appears for builds made straight from Xcode and reported with tuist inspect build, not only for tuist test and tuist xcodebuild build. You get the same breakdown of which modules were resolved from the local cache, the remote cache, or missed, together with the overall cache hit rate and each module's hash.

There is nothing new to configure. The breakdown reuses the graph that your last tuist generate already uploaded, so a build reported from Xcode points back at that generation instead of re-uploading anything on every build. The numbers reflect the project as it was generated, which is what you want for an incremental Xcode build.

Module Cache tab on a build run made from Xcode, showing a module resolved from the remote cache with a 100% cache hit rate

Product

Every Tuist Runner job now ships a Steps card and a Logs tab on its detail page. Each step expands to show only the lines that belong to it; ##[group]Run … blocks fold the same way they do in GitHub's own log UI, and ANSI escapes are rendered as colour instead of [36;1m…[0m artefacts. Line numbers restart at 1 per step so you can reference "line 14 of Run tests" without doing global arithmetic.

A completed runner job's Steps card with two steps expanded — Set up job and Show environment — showing per-step line numbers, a foldable Run group, and the inline echo / hostname / kernel output rendered with ANSI colour

The new Logs tab is a live tail backed by ClickHouse: lines stream in while the job is running, full-log substring search works against every line (not just the tail you've loaded), and the Download logs button hands you a gzipped archive straight from S3 once the job completes. Timestamps are off by default and toggle to the full Tue, 02 Jun 2026 20:26:29 GMT format when you turn them on, so a copied line carries the date with it.

The Logs tab on the same job, showing the live-tail view with cyan-coloured script lines, plain command output, and grey ANSI-rendered annotations all flowing together in a single scrollable terminal-styled panel

Product

Test run filters now support excluding branches that contain a specific substring. Use the new "does not contain" branch operator in the dashboard, or the query=-git_branch~"gh-readonly-queue" expression in the REST API and list_test_runs MCP tool, to hide merge queue runs such as gh-readonly-queue while keeping the rest of the test history visible.

Test runs page with a branch filter set to does not contain

Product

The Runners section on your account dashboard now surfaces the full picture of the workflow_jobs Tuist Runners executes on your behalf — a Runners landing page with total-jobs, p50/p90/p99 job and workflow duration widgets and recent activity; a Workflows page with per-workflow rollups (success rate, average duration, last run) and a detail page for each workflow; and a Jobs page with status / repository / platform / branch / conclusion filters, scatter or line charts for duration and queue time, and live-updating Running and Queued widgets.

Each workflow_job has its own detail page mirroring GitHub's /<owner>/<repo>/actions/runs/<run_id>/job/<job_id> shape (so the Tuist URL and the GitHub URL nest the same way), with a timeline card for queue / claim / runtime / total durations and a deep link back to GitHub.

Compute minutes — the metered signal we bill against — roll up from the Pod's wall-clock lifetime rather than GitHub's workflow_job timestamps, the same way Namespace and Blacksmith account for their runners. Every dashboard widget that aggregates duration is scoped by the same Repository / Workflow / Platform / date-range filters as the table below it, so the chart and the rows always represent the same window.

Product

Tuist now supports auth.md, the open agent registration specification. Agents that implement the standard can connect to the Tuist MCP server directly: depending on the agent, Tuist either confirms the registration with the agent provider, or emails you a secure link with a six-digit code to read back to the agent. No browser-based OAuth round-trip required.

Product

Tuist-managed Kura caches can now authorize binaries scoped directly to an account, without requiring every cache artifact to belong to a project namespace. This gives account tokens first-class cache read and write grants for account-level binaries while keeping project tokens limited to project-scoped cache access.

Product

The build detail page now surfaces a Module Cache tab when the build's associated command event recorded binary-cache data, bringing the same cache hit/miss breakdown, per-module hash, and JSON export already available on command and test run pages to xcodebuild runs.

Module Cache tab on a build detail page, showing cache hits, misses, hit rate, a stacked bar of local/remote/missed cacheable targets, and a per-module table with hit status and hash

Product

Register HTTPS endpoints on your account, pick the Tuist events each one should listen to, and have downstream systems react the moment a test case is created or updated, or a preview is created or deleted — post fresh builds into Jira, mirror flaky-test transitions into your incident tracker, no polling required.

A webhook endpoint detail page showing the summary card with the destination URL and subscribed events, plus an event deliveries chart with total and failed counts over the last 7 days

Product

Test case timelines now show exact timestamps when you hover over relative dates. This makes it easier to compare when a test was marked flaky, muted, skipped, or first seen against the runs around it without leaving the dashboard.

The tooltip is available in both the Test History tab and the compact history section on the test case overview.

Test history timeline with a tooltip showing the exact timestamp for a flaky event