Skip to content

perf(zccache) Phase 4: flip embedded to default, retire managed wrapper #793

Closed

Description

@zackees

Sub-issue of #789. Depends on Phase 3.

Scope

Once Phase 2 + 3 have shipped on main for at least one release without
regressions, flip embedded to the default and remove the wrapper code
path entirely.

Deliverables

  • CompileBackend::Embedded becomes the default. FBUILD_ZCCACHE_EMBEDDED
    env var deleted (was only a Phase 1 opt-in).
  • Delete crates/fbuild-build/src/managed_zccache.rs and every reference
    to it.
  • Delete the zccache start / ensure_running path and the wrapper-arg
    helpers (wrap_args, find_zccache, discover_env_zccache,
    find_zccache_in_venv) from crates/fbuild-build/src/zccache.rs.
  • Re-evaluate the path-normalization helpers (compile_cwd_from_output,
    normalize_flags_for_compile_cwd, path_arg_for_compile_cwd,
    strip_unc_prefix): keep what the embedded service needs, delete the
    rest. zccache.rs should shrink substantially.
  • Delete FBUILD_NO_ZCCACHE and FBUILD_ZCCACHE_BIN env vars — they
    were wrapper-mode escape hatches.
  • Update CLAUDE.md, docs/, and any README that references the managed
    binary download or the env vars.
  • Strip MANAGED_ZCCACHE_VERSION from pyproject.toml and from the
    release/CI matrix.
  • Close Daemon teardown hardening: process containment + socket lingering + console events #32 once ensure_running is gone — its rationale
    is now moot.

Acceptance

Activity

  1. zackees commented on Jun 28, 2026

    @zackees
    MemberAuthor

    Fixed in #798 (merged). Phase 4 stage 1: embedded is now in default features for both fbuild-build and fbuild-daemon, and FBUILD_ZCCACHE_EMBEDDED is an opt-out (=0) instead of an opt-in (=1). Wrapper-mode code retained as the safety-net fallback; code deletion + env-var removal tracked as a Phase 4 stage 2 follow-up after one release cycle of validation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions