SeatSuccessionService class
The reusable succession LOGIC — the whole verb minus argv and sinks.
Why it composes GitOps rather than driving git itself. The safety
this verb needs is already owned one layer up and already used three times
in this package: GitOps.hasUncommittedWork runs the
rev-parse --show-toplevel --show-prefix WORK-TREE-ROOT guard (a git
command run from a non-checkout walks UP and would commit to the enclosing
repository) and fails CLOSED on a git status that exits 0 while warning on
stderr — a degraded scan is "couldn't tell", never an invented answer. Both
rules are scope-independent, so re-deriving either here would be a second,
diverging copy of a solved problem.
GitOps has no PATHSPEC-scoped public method, and scoping is load-bearing
here: a grid home is a live checkout, and git add -A would sweep the
operator's unrelated work into an archive commit. So the two scoped
mutations and the two archive proofs go through the SAME injected
GitRunner the GitOps instance wraps — the established pattern for a
GitOps gap in this package (code_capabilities.dart's worktree prune).
They run only AFTER the gate above has cleared the root guard on this exact
working directory.
Constructors
- SeatSuccessionService({GitRunner? runner})
-
Creates the service over its ONE IO seam beyond the disc itself: the
runnereverygitcall rides (Fakes, not mocks). Absent ⇒ the realSystemGitRunner.const
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
succeed(
{required String gridHome, required String seat, required bool destructive}) → Future< SeatSuccessionReport> -
Archives
seat's disc undergridHomeand consumes its one live handoff. Withdestructivefalse, everything happens EXCEPT the deletion. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited