Hive Hive
Sign in

perf(cache): split Swift actions and prefetch output restore

GitHub issue · Closed

Metadata
Source
tuist/once #91
Updated
Jun 24, 2026
Domains
Once
Details

Summary

  • Split apple_library Swift compilation into separate module/header and static archive actions so cache keys can track Swift interface outputs independently from archive packaging.
  • Compose graph target action digests from every declared action for multi-action targets, preserving single-action digests unchanged while making downstream cache keys reflect provider-visible outputs.
  • Prefetch cached output blobs concurrently during restore with a bounded window and disk staging, preserving deterministic final materialization without retaining every blob in memory.
  • Added regression coverage for multi-output restore, prefetch windows, failure-before-materialization behavior, target digest aggregation, and the Apple Swift action split.

Testing

  • mise exec -- cargo fmt --all -- --check
  • mise exec -- cargo test -p once-core outputs::tests
  • mise exec -- cargo test -p once-cli commands::graph::analysis::tests
  • mise exec -- cargo test -p once-frontend --lib
  • mise exec -- cargo clippy -p once-core -p once-cli -p once-frontend --all-targets -- -D warnings
  • xcrun --sdk iphoneos swiftc -module-name AppCore -target arm64-apple-ios17.0 -parse-as-library -static -emit-module -emit-module-path <tmp>/AppCore.swiftmodule -emit-objc-header -emit-objc-header-path <tmp>/AppCore-Swift.h fixtures/apple_library/apps/ios/AppCore/Sources/Greeting.swift
Flights

Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.

New Flights are paused Configure model inference, GitHub, and a sandbox provider to start another Flight. Existing results remain available below.
No Flights yet

Start a Flight and preserve its objective, outcome, and session here.

Comments

No GitHub comments yet.