A stack as the platform records it: its layers bottom first - the order it
lands in - and the branch the bottom one targets. Read-only here;
registering one is a separate step, gated behind stk.githubStacks.
Per-branch review data threaded into the list tree: the id (e.g. #12),
its CI dot, whether it sits in a merge queue/train, and - only with
--reviews - the review tallies.
A review’s CI check rollup, reduced to one at-a-glance dot for list and
status. None means no checks ran, or the provider could not report
them - either way, no dot is shown.
A structural reason the platform won’t merge a review, read from its API
rather than its error text - so a wording change can’t silently reclassify
a real failure. None means nothing structural blocks the merge, or the
platform did not say (the caller falls back to matching the error text).
The marker shown before a review that sits in a merge queue (GitHub) or
merge train (GitLab) - it is waiting its turn to land. Includes a trailing
space so it sits before the CI dot / id.
Shown against a review the platform holds in a stack of its own, with the
layer’s position - ⛁2/3. Distinct from git-stk’s own stack, which the
tree already draws.
Detect the provider and build its review client together - the pair nearly
every provider-backed command opens with. The returned DetectedProvider
still carries the kind and detection source for messages.
One review’s annotation, asked per call - the default for every provider
but GitHub, and GitHub’s own fallback for a review its batched query cannot
see (it reads open reviews only).
The branch’s review only when it actually heads that branch. A provider can
return a review for a different head (a stale or look-alike match); a flow
acting on “this branch’s review” wants None there, not someone else’s.
Plan the registration, or None when there is nothing to do - the stack is
already exactly this, or already reaches further (a --downstack from the
middle submits less than is recorded, which is not a divergence).