Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
162 changes: 0 additions & 162 deletions context/buck2/.decisions/.proposed/artifact-composition.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ rules-distribution role.

- No change to COMP-R08/R10, decision 0020, or mr's mount pipeline from this
decision alone. What changes the mount pipeline's _scope_ is the separate
proposal [.proposed/artifact-composition.md](./.proposed/artifact-composition.md),
proposal the artifact-composition proposal (superseded 2026-09-14; see [05-composition/open-questions.md](../05-composition/open-questions.md)),
which asks whether Buck2 should compose cells across repositories at all.
- The root-owned capability cell is recorded as an open question in
05-composition; it is the right ownership boundary in every option and
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,15 @@ Buck target on its default branch.
closes, nothing is deleted from the VRS.
- Consumers with one slice add a row and a deletion entry in their PR and
author no VRS node; dotfiles keeps its delta node.

## Amendment 1 (2026-09-14)

The per-close fold is unreachable for the hub until consumers migrate and the
composition layer is deleted, so a gate that only fires at close would be silent
for the whole period in which +28,363 lines accumulated. Johannes (q26,
2026-09-14) added a trajectory obligation: the ledger stores a reconciliation
snapshot (cumulative net at a revision); at every reconciliation the cumulative
net must be lower than at the previous snapshot, otherwise admissions pause
until a contraction slice lands. Reconciliations happen per phase or after ten
rows change status, whichever is first. The check gains the snapshot list and
the comparison; the per-close fold is unchanged.
15 changes: 15 additions & 0 deletions context/buck2/.decisions/0032-devenv-verbs-over-buck-aggregate.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,18 @@ five samples per workload before reconsidering the outer verb.
- Speed remains unresolved. Failure elapsed times are not benchmark samples.

Evidence: [2026-09-12 check-entry bakeoff](../.experiments/2026-09-12-check-entry-bakeoff.md).

## Amendment 1 (2026-09-14)

Evidence after acceptance: on a contended host the devenv _evaluation_ step —
not any task — stalled 20–60 min for five workers while every producer invoked
directly completed in seconds; dotfiles decision 0027 measured the same cost
class as our own Nix configuration (shell entry 229 s → 17.8 s after four fixes;
devenv's fixed overhead 254 ms). The verb decision stands (q25, 2026-09-14) with
two budgets attached: warm shell entry ≤ 20 s and task-run overhead ≤ 2 s,
measured per repository at n ≥ 3 on a host below load 16. Each repository
carries a `devenv-eval` residual ledger row whose dissolution is meeting those
budgets by removing the cost at its source (task/shell closure decoupling,
filtered source coercion, a recursive-input budget gate). While that row is
open, a change may be verified with the same producer the task wraps, invoked
directly, and must say so in its PR body; this is not a second verb.
23 changes: 19 additions & 4 deletions context/buck2/05-composition/open-questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,25 @@ by attribution), paid today by effect-utils alone: no repository authors an
`effect_utils//` label and Phase 6 has not started. The only Buck2-native
alternative, git external cells, is rejected
([decision 0030](../.decisions/0030-external-cells-are-not-a-composition-mechanism.md)).
[.proposed/artifact-composition.md](../.decisions/.proposed/artifact-composition.md)
proposes artifact-granular reuse for the effect-utils library edges and pauses
composed-by-default; it lists the VRS edits and falsification spikes. Blocked
on: Johannes' decision on criterion 6, and spikes 1–2 of the proposal.
The first artifact-composition proposal (merged by mistake as a PR-local
record via #1271; removed 2026-09-14) ran its falsification spikes in PR #1282:
URL tarball closure, digest refusal, and a root-owned capability cell passed;
the consumer boundary failed (publisher rejected scoped names; a single URL
artifact could not coexist with workspace consumers under the consumer's pnpm
policy). The architecture bakeoff (PR #1287,
`.experiments/2026-09-13-composition-bakeoff.md`, proposed decision
`.decisions/.proposed/composition-architecture.md` on that branch) provisionally
selects artifact-default composition. Johannes (q22/q23, 2026-09-13) adopted
that direction with **no registry**: the durable origin is the existing
content-addressed buck2-products release layout, the CAS is an accelerator, and
consumers pin tarball URL + integrity in their lockfile. The one-edge proof
(PR #1289: `@overeng/utils` published, dotfiles notion-scan consuming by URL,
typecheck + 28 tests green) succeeded; its net (+482) is judged by the
reconciliation trajectory (decision 0031 Amendment 1). Composed-by-default
(decision 0027) stays paused until the proposal is promoted or rejected.
Remaining blocker: the constitutional edits (vision criterion 6, BUCK-R05/R06,
COMP-R01/R02) are Johannes', and pnpm's injected-workspace pruning must be
shown to be a strict no-op on the second install.

## Open 2026-09-12: root-owned capability cell

Expand Down
6 changes: 5 additions & 1 deletion context/buck2/open-questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,8 @@ Subsystem questions live in their subsystem (`03-materialization`,
- Resolution signal: a written contributor loop for livestore under each
answer, with the tool set and cold-start time measured on a machine outside
the fleet.
- Blocker: not started; livestore-lead owns it once the ledger exists.
- Resolved (q17, 2026-09-14): livestore is an artifact consumer only. It pins
`@overeng/*` release assets by tarball URL + integrity (decision 0034 once the
artifact-composition proposal is accepted); no Buck2 or `mr` in livestore; its
contributors install nothing new; livestore rows are excluded from the ledger.
livestore PR #1622 closes.
3 changes: 3 additions & 0 deletions context/buck2/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@ invariants named in its own document:
(which later deletion pays for it); the per-change signal is advisory, the
per-close gate is not
([decision 0031](./.decisions/0031-complexity-gate-and-authority-ledger.md)).
Between closes the gate has a trajectory: at every reconciliation the
cumulative sum must be lower than at the previous reconciliation, or
admissions pause until it is (decision 0031, Amendment 1).
When BUCK-R15 conflicts with coverage (BUCK-R01) or the wall-clock budgets
(BUCK-R07), BUCK-R15 wins: the others are constraints with tolerances.
- **BUCK-R16 Benchmark evidence:** Efficiency claims are measured, never
Expand Down
Loading