feat(buck2): add standalone root and aggregate gates - #1301
Conversation
3e3890a to
960ff69
Compare
948d397 to
348c000
Compare
3b50809 to
1aaceac
Compare
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
Keep the bootstrap package set explicit because the TypeScript import walker itself is unavailable until the root editor view exists. Reuse that walker immediately after publication as a genie:check prerequisite, reporting every first-party runtime boundary and naming any workspace view omitted by the declaration. This preserves the two-view R07 hot path while making a future generator import fail during authoring instead of only in a clean CI checkout. agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
Attribute a runtime boundary to the workspace package that imports it, with the repository root view explicitly backed by Genie's package tree. This reports the missing otel-contract view for the Weaver content-address edge without incorrectly requiring a separate content-address publication. agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
Treat bare packages already supplied by Genie's root package tree as covered before requiring an importer-specific editor view. The guard now reports otel-contract for the content-address edge while accepting megarepo and ci-tools imports whose boundaries are already available from the root view. agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
Fingerprint the immutable backing and node_modules payload roots concurrently while preserving their deterministic framing order. Both complete integrity checks still run; only their I/O overlap changes. agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
Publish bootstrap views that use different editor-root locks concurrently while preserving deterministic serial order inside each shared lock. Root and workspace-package closure validation now overlap without weakening either snapshot proof. agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
Record q66's accepted 7.2–8.6 second two-view warm residual against BUCK-R07's five-second budget. Resolution requires a decision on a persisted recursive metadata integrity proof before changing the editor-view record contract. agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
1131411 to
4ab6319
Compare
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
agent-identity: dev3.direct.omp.t3mkm4sd agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.14 agent-runtime: OMP 18.1.14 tooling-profile: dotfiles@5d1e05f
|
@codex Please review this pull request for merge readiness, with particular attention to the standalone-root contract, CI cutover, and the documented VRS amendments. Posted on behalf of @schickling
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b492ec4b66
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| exec "$BUCK2_BIN" audit providers \ | ||
| --target-platforms //buck2/platforms:host_platform \ | ||
| //buck2/toolchains:cross_cell_provider_identity \ | ||
| //buck2/toolchains:cross_cell_product_identity |
There was a problem hiding this comment.
Route the typecheck job through the aggregate
In the CI typecheck context (.github/workflows/ci.yml.genie.ts:412) and the documented standalone command, buck2:check is invoked directly, but this new implementation only audits two providers. The admitted TypeScript targets moved to buck2:quick, whose dependency points from buck2:quick to buck2:check, so invoking buck2:check never reaches them; a PR containing TypeScript errors can therefore receive a green required “Type check (Buck)” result. Keep the TypeScript build behind this command or update every direct caller to use the aggregate.
AGENTS.md reference: AGENTS.md:L7-L10
Useful? React with 👍 / 👎.
| This experiment resolves DELTA-001 as a test-ordering artifact: S8's sandbox | ||
| run was the first build at its rebased revision; at one revision with the | ||
| normal context warmed first, the sandbox reused 1,192 of 1,195 queried actions, | ||
| and the remaining action failed identically in both contexts. DELTA-001 is | ||
| removed. BUCK-R06 and REUSE-R02 remain unchanged. |
There was a problem hiding this comment.
Do not close the reuse delta with a red replay
This evidence does not satisfy the cited BUCK-R06/REUSE-R02 acceptance condition: both //:quick builds exited nonzero, and the second context still executed one action locally, whereas the VRS requires zero locally executed actions for an unchanged warmed target (context/buck2/04-reuse/spec.md:46). Equal digests diagnose the original cache misses, but a failing action cannot populate the successful cache entry needed to test the zero-reexecution contract, so removing DELTA-001 here leaves the requirement without its claimed proof; retain the delta until the same experiment completes green with zero local actions.
Useful? React with 👍 / 👎.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Problem
Effect-utils had a tracked standalone Buck root, but ordinary CI still synthesized a self-composition and several aggregate gates retained composition-era prerequisites. A fresh standalone checkout also attempted Genie freshness before publishing the committed-graph dependency views its generator sources require.
Goal
Make the tracked checkout the single normative root for ordinary development and single-repository CI, remove effect-utils CI self-composition, and keep the transition contract explicit in the Buck VRS.
Decisions
COMP-T01: external consumers and single-repository CI build public members from tracked standalone roots; trust tiers may use separate cache namespaces.COMP-R01: the tracked checkout is the normative Buck project root; only explicitly requested cross-repository work may synthesize the paused composed shape.COMP-R02: canonicalrepos/<name>mounts apply only inside that explicit composed shape; the standalone repository maps its canonical cell to..COMP-R06: standalone repositories carry.buckroot; nested member markers do not override an explicitly composed outer root.COMP-R07: every supported root shape has a fixed isolation directory; cross-shape action-key parity is not promised and per-invocation isolation is forbidden.BUCK-R06: zero re-execution is required between identical same-platform standalone checkouts; the interpretation now cites the second-context key-stability experiment, while standalone-versus-composed comparison remains migration evidence rather than a permanent portability contract.mr:apply,mr:setup, or composition cleanup. Its checkout is the source root for every lane.genie:checkruns committed-graph editor bootstrap followed by an editor-generator closure precheck, preserving mutation-free freshness while proving every first-party runtime import is covered..buckrootis present and Git reports that same directory as the repository top level. The paused composed compatibility path still requires reciprocal worktree identity; lookalikerepos/effect-utilsdirectories fail closed..buckrootand.buckconfigmarkers are present and norepos/mount exists; untracked marker lookalikes and mounted compositions retain the fail-closed legacy checks.DELTA-002records the q66-accepted warm-integrity budget: a 62.6-second fresh two-view publication followed by 8.61, 7.18, and 7.76-second warm samples.BUCK2_NO_REMOTE_CACHE=1trust posture into a gitignored.buckconfig.localbefore Buck starts, disabling remote reads and uploads without replacing trusted-context coordinates.DELTA-001: after warming the identical revision, the sandbox reused 1,192 of 1,195 queried actions; the sole local action was the same failing typecheck with an identical digest, proving the earlier 633-local sample was test ordering rather than key instability.Verification
--check: all 155 generated files unchanged after folding the bootstrap fix.effect_utils//packages/@overeng/utils:test: 25 files, 233 tests, and 528 local commands with no remote execution or cache use. The daemon connected in about 0.86 seconds and the Buck work completed in about 19 seconds.1disables reads/uploads, non-exact values preserve trusted defaults, and existing local overrides survive managed-block removal.otel-contract; focused units passed 41 tests/212 expectations; editor integration passed 20 tests/102 expectations.repos/-mount rejection.effect_utils//packages/@overeng/megarepo:testfrom the local-disk checkout: 34 files, 625 tests, and 612 local commands; a realmr --cwd . status --output jsoninvocation also exits 0 at the standalone root.buck-outandtargettrees from the repository seam scan.tasks list --jsonproves each scoped/full publisher retains executable authority, while the realized registry proves trace identity, canonical package scope, and the whole-workspace unscoped fallback.buck2:quickincludes the new Weaver targets and Megarepo typecheck, completing 1,212 commands with no remote execution.Complexity
buck2-ledger.tsatb492ec4b66152fa3193196152b78b48baa33121c.Concerns
dev3for public lanes. The trusted remote-cache proof remains main-only and must not be weakened on this PR.Friction & bottlenecks
/srv/bulkare invalid for Buck budget decisions because dotfiles#2955 makes filesystem walks pathological (roughly 60 seconds for the pruned tree versus 0.17 seconds on local disk). The local-disk control run above proves daemon startup and the representative test target without that host artifact.revCountread, and a Storybook fixture that assumednodeonPATH. All four are fixed at the replacement head.b492ec4b66152fa3193196152b78b48baa33121c.Follow-ups
References
context/buck2/05-composition/requirements.mdcontext/buck2/.decisions/0020-one-writable-mount-workspaces.mdcontext/buck2/.decisions/0027-composed-default-worktrees.mdcontext/buck2/requirements.mdcontext/buck2/.experiments/2026-09-19-second-context-key-stability.mdPosted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile