Repository navigation
FCI-1P2: unify fabric base-directory plan and apply - #9712
Merged
Merged
Conversation
…ly path The fabric cell family's boundary refusal stood on a STALE premise: it claimed MemorySwapMax/TasksMax/CPUWeight were unmodeled in extdeps.systemd.unit_file while the directive-value-grain lane had already landed all three mints. The refusal survived on a comment asserting a two-arm shape the tree no longer had, and the all-or-nothing fold then refused every cell plan, so no cell could ever converge. - fabric_cell_effect: every ADDITION now realizes. Effects are typed tuples only -- a path with an ownership class, or a slice name with its directive words -- never bytes an unprivileged principal authored (parent veto of the staged-file-install shape: constant argv, content as payload, root escalation from any PR). Boundary realizes as systemctl set-property words derived from gunbc_runner_slot_desired, the same authority the desired digest renders, with systemd persisting its own drop-in. Teardown and change still refuse (undeclared). - Cell substrate (base dir, cell root) is root-owned; the job user is delegated exactly one directory, the attempt root (parent ruling). - executor_privileged_operation: one new exact-argv variant, SystemdSetUnitProperty (unit + one pinned Property=value word). - runner_host_grants: fabric contribution derived from fabric_execution_slot_identities -- base-dir ensure plus per-slot directory ensures, five set-property grants, one slice start; the apply shell renders its commands from the same operation constructors the sudoers roster enrolls, so executed argv and grant cannot drift. - fleet_converge_plan: the fabric family's declared dissolve-on fired; FabricCellFamilyRealizationUnavailable narrows to FabricCellFamilyPlanned, realizable actions emit executable apply.sh lines (boundary first, then substrate, then delegated attempt root -- a set -euo pipefail stop can strand an inert boundary but never a cell root without its resource boundary) and stop counting as refusals, so the terminal can reach FullyApplied; refusals keep their typed comment+count. - Witnesses: expecting-refusal rows flipped to permanent positive controls per DESIGN 4b(4); the all-or-nothing law keeps a discriminating RED via MemberChanged; new row pins the ownership delegation in both directions; grant population row derives the fabric term from the fabric authorities rather than a literal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011fo4XmybNms3oUYdQ1MKjj
…deep-lark-121 # Conflicts: # dag/gunbc/runner/runner_host_grants.dag
Contributor
|
Addressed review 57510 in e8194dc. |
This was referenced Aug 30, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FabricCellEffect, ordered with the boundary and address effects, so plan and apply project one typed effect populationSupersedes #9709, whose implementation already landed independently as #9702 and whose branch now conflicts with FCI-1A.
The committed srv3 sudoers projection is unchanged: SHA-256
c80f6c02f9c157f4c8bc8006053e4cccde158d97e3d00a51202ee7b844e619f5, 94 lines, 9 fabric-cell lines. The operation/grant constructors did not change.Test plan
cargo build --release -p v1-compiler --bin gunbc— passed--claim-run:witness_a_full_cell_of_additions_realizes_all_three_addresses— PASSwitness_substrate_is_root_owned_and_only_the_attempt_root_is_delegated— PASSwitness_fabric_cell_plan_and_apply_project_the_same_effects— PASSwitness_fabric_cell_absent_address_plans_add_and_never_change— PASSgit diff --check— passedcargo fmt --all --check— passed