Expand description
Remote domain helpers: list/show assembly and pure push/pull orchestration.
- List/show: pure report types and default-resolution for
heddle remote list/heddle remote show. - Push/pull routing: capability → plan decisions (git-overlay mirror vs native fan-out, default thread selection).
- Transport result fields (CLI maps wire/protobuf → plain structs) →
PushExecutionFacts/PullExecutionFacts, multi-ref progress, and unstyled working/mirror/ref-list text. No hosted transport types here. - Typed outcomes, failure kinds (map to RecoveryAdvice kinds), multi-ref progress events, and unstyled human text assembly.
- CLI probes the repo, plans, executes network I/O, maps failures, and styles.
Mutation (add/remove/set-default) and push/pull network bodies stay outside this module.
Modules§
- remote_
advice_ kind - Stable RecoveryAdvice
kindstrings shared by domain failures and CLI.
Structs§
- GitConfig
Context - The resolved Git directory layout for a repository, used to read remote
definitions from
.git/configand its layered companions. - GitOverlay
Push Tracking - Tracking refresh facts after a git-overlay refs push (CLI-discovered).
- GitRemote
Configured - Git remote name/url pair for machine JSON (
git_remote_configured). - GitUpstream
Configured - Upstream branch binding for machine JSON (
git_upstream_configured). - Hosted
Pull Result Fields - Caller-mapped hosted pull transport fields (no wire/protobuf types).
- Hosted
Push Result Fields - Caller-mapped hosted push transport fields (no wire/protobuf types).
- Included
GitRemote Config Error - Error when a remote write would touch config outside the repo Git tree.
- Local
Transfer Summary - Local path transfer counts/SHAs after a successful single-thread push/pull.
- Pull
Outcome - Machine JSON body for a successful pull.
- Pull
Outcome Text - Unstyled human text derived from a
PullOutcome. - Pull
Plan - Pure pull orchestration plan.
- Pull
Plan Request - Caller-supplied facts for pure pull planning.
- Push
Outcome - Machine JSON body for a successful (or partial) push.
- Push
Outcome Text - Unstyled human text derived from a
PushOutcome. - Push
Plan - Pure push orchestration plan. CLI resolves remotes/state then executes I/O.
- Push
Plan Request - Caller-supplied facts for pure push planning (no repository I/O here).
- Remote
Info - One remote entry for list/show machine output.
- Remote
List Report - Machine JSON for
heddle remote list.
Enums§
- Hosted
Pull Result - Parsed hosted pull: final state string or typed
PullFailure. - Hosted
Push Plan - Hosted/network push strategy for one push invocation.
- Hosted
Push Result - Parsed hosted push: success state string or typed
PushFailure. - Multi
RefPush Progress - Progress facts for a multi-thread / multi-ref push fan-out (heddle#838).
- Pull
Execution Facts - Post-transport facts for assembling a
PullOutcome(no network I/O). - Pull
Failure - Typed pull failure. Pure facts only; CLI maps to RecoveryAdvice.
- Push
Execution Facts - Post-transport facts for assembling a
PushOutcome(no network I/O). - Push
Failure - Typed push failure. Pure facts only; CLI maps via
PushFailure::advice_kindand field accessors intoRecoveryAdvice. - Push
Path - Execution path selected by
plan_push. - Remote
Preflight Blocker - Pure preflight refusals for push/pull orchestration.
Constants§
- ALL_
THREADS_ MIRROR_ COVERS_ NOTE - Unstyled note when a single git-mirror transfer covers
--all-threads(heddle#846 collapse: every ref ships in one pack, not a per-thread loop). - COMMITS_
SEEN_ SCOPE - Scope label for commits scanned during a git-overlay pull import.
- FORCE_
DISCARD_ WARNING - Warning when a forced git-overlay push may discard remote-only history.
- GIT_
NOTES_ REF - Stable notes ref published on the git-overlay refs push path.
- GIT_
NOTES_ VISIBILITY_ WARNING - Warning that ordinary
git log --allmay surface Heddle notes commits. - UNKNOWN_
TRANSPORT_ ERROR - Default message when a transport result omits or blanks its error string.
Functions§
- all_
threads_ mirror_ coverage_ note - Pure force / all-threads display policy for network text mode after a successful single-shot push (mirror or native single-thread).
- all_
threads_ uses_ single_ mirror_ push - Whether a hosted
--all-threadspush collapses to a SINGLE mirror push instead of the per-thread native fan-out. - build_
pull_ outcome - Assemble a pull outcome from post-I/O facts (and optional plan context).
- build_
push_ outcome - Assemble a push outcome from the orchestration plan and post-I/O facts.
- default_
pull_ thread_ name - Default remote thread name for a pull when the user omitted it.
- default_
push_ thread_ name - Default thread name for a push when the user omitted it.
- first_
multi_ thread_ push_ failure - First multi-thread push failure as a typed
PushFailure, if any. - format_
connected_ to - Unstyled “connected to …” line after a network session opens.
- format_
mirror_ failure_ text - Unstyled mirror failure line (primary push still succeeded).
- format_
mirror_ success_ text - Unstyled mirror success line (heddle#25 ad-hoc dual-push).
- format_
multi_ ref_ push_ progress - Unstyled human line for a multi-ref progress fact (no TTY markers).
- format_
multi_ thread_ refs_ detail - Unstyled detail line for landed multi-thread refs (
refs: a, b), sorted. - format_
pull_ outcome_ text - Assemble unstyled human text from a pull outcome.
- format_
pulling_ from - Unstyled “pulling from …” working line.
- format_
push_ outcome_ text - Assemble unstyled human text from a push outcome.
- format_
pushing_ to - Unstyled “pushing to …” working line.
- format_
ref_ list - Comma-separated ref/thread list for multi-thread push reporting.
- format_
remote_ state_ detail - Unstyled remote-state detail field (
remote state: {state}). - git_
overlay_ current_ thread_ push_ ok - Whether a git-overlay current-thread refs push may target
requested. - git_
overlay_ pull_ execution_ facts - Git-overlay pull / import execution facts.
- git_
overlay_ push_ execution_ facts - Git-overlay refs push execution facts (local
GitProjectionpath). - git_
overlay_ push_ scope_ description - Git-overlay scope description for text mode (matches historical CLI copy).
- git_
overlay_ ref_ scope ref_scopemachine label for git-overlay refs push.- git_
overlay_ thread_ mismatch_ blocker - Pure: git-overlay refs push refuses a non-attached explicit thread.
- heddle_
pull_ execution_ facts - Native heddle pull execution facts.
- heddle_
pull_ execution_ facts_ from_ hosted - Map hosted pull success fields + materialize change flag into pull facts.
- heddle_
pull_ execution_ facts_ from_ local - Map a local transfer summary into heddle pull execution facts.
- heddle_
single_ push_ execution_ facts - Single-thread native push execution facts from state/object counts.
- heddle_
single_ push_ execution_ facts_ from_ hosted - Map hosted push success fields into single-thread execution facts.
- heddle_
single_ push_ execution_ facts_ from_ local - Map a local transfer summary into single-thread push execution facts.
- hosted_
path_ contains_ internal_ user_ namespace - Internal user-namespace segment that must not leak into operator text.
- hosted_
spool_ display_ path - Prefer
namespace_slug/spoolwhen the full path leaks an internal user ns. - included_
config_ error - Map a core included-config error into a plain
anyhowso CLI call sites can attach recovery advice without depending on render types here. - is_
native_ transport_ mismatch - Whether a push/pull plan should treat the remote as a native-transport mismatch (git local/url against a non-overlay Heddle repo).
- list_
plain_ git_ remotes - List remotes from a plain-Git worktree root (no Heddle metadata required).
- list_
remotes - List remotes for an opened Heddle repository (merged heddle + git-overlay).
- local_
pull_ changed - Local-path pull change: tip moved or objects were copied.
- looks_
like_ git_ forge_ remote - Whether a remote is a public Git forge (or otherwise unambiguously Git).
- looks_
like_ git_ remote_ url - Whether a string looks like a Git remote URL rather than a Heddle remote name.
- looks_
like_ known_ git_ host - Whether the authority of
valueis a well-known Git hosting hostname. - looks_
like_ remote_ location - Whether a remote arg looks like a path/URL location (not a short remote name).
- merged_
remote_ items - Merged remote map: name → (url, source label).
- message_
indicates_ already_ exists - Hosted error text that indicates the spool/repo already exists.
- multi_
ref_ progress_ from_ hosted_ thread - Map hosted per-thread push fields into a multi-ref progress event.
- multi_
ref_ push_ begin - Begin multi-ref fan-out progress for a display target.
- multi_
ref_ thread_ failed - Thread failure progress with normalized transport error text.
- multi_
ref_ thread_ succeeded_ hosted - Hosted-path thread success progress (remote state when known).
- multi_
ref_ thread_ succeeded_ local - Local-path thread success progress (state short + objects when known).
- multi_
thread_ failed_ names - Thread names reported as failed in a multi-thread push fan-out (order preserved).
- multi_
thread_ push_ execution_ facts - Assemble multi-thread push execution facts: which refs landed vs failed.
- multi_
thread_ reported_ refs - Sorted list of refs/threads reported as successfully pushed (JSON contract).
- named_
thread_ tip_ mismatch_ failure - Build a
PushFailure::NamedThreadTipMismatchfor the heddle#837 refuse path. - parse_
hosted_ pull_ result - Parse hosted pull fields into final state or
PullFailure. - parse_
hosted_ push_ result - Parse hosted push fields into success state or
PushFailure. - plain_
git_ remote_ items - Remotes visible from plain-Git config layers under
root. - plan_
hosted_ push - Plan the hosted/network push strategy for a capability +
--all-threads. - plan_
pull - Plan a pull from pure inputs. Composes transport + thread + dirty policy.
- plan_
push - Plan a push from pure inputs. Composes existing routing helpers.
- pull_
requires_ clean_ worktree - Dirty-worktree policy for pull: clean required on local git-overlay path or when the pull will materialize the current checkout.
- pull_
should_ materialize - Whether a network pull should materialize the checkout after fetch.
- pull_
status - Machine
statusfor pull: updated vs already up to date. - pull_
tip_ changed - Whether a pull tip moved:
final_statediffers from the pre-pull tip. - pull_
will_ materialize - Whether a pull would materialize into the current checkout.
- push_
scope_ label push_scopemachine label for all-threads vs current-thread.- push_
status - Machine
statusfor push: full success vs partial multi-thread failure. - redact_
internal_ hosted_ paths - Redact internal
__users/path segments from free-form hosted errors. - refuse_
named_ thread_ tip_ overwrite - Pure heddle#837 guard: refuse pushing the current checkout under an existing
named thread whose tip differs, unless
--force. - remote_
missing_ blocker - Pure: missing remote when the user omitted it and no default is configured.
- remote_
pull_ failure - Build
PullFailure::RemoteFailedfrom pull target + optional transport error. - remote_
push_ failure - Build
PushFailure::RemoteFailedfrom a track name + optional transport error. - remote_
urls_ match - Compare remote URLs, allowing local path canonicalization when both exist.
- resolve_
default_ push_ remote_ name - Resolve the push destination with Git’s branch-aware precedence in Overlay mode.
- resolve_
default_ remote_ name - Resolve the remote name for push/pull when the user omitted it.
- resolved_
default_ remote_ name - The configured default remote name, if any (no
"origin"fallback). - show_
plain_ git_ remote - Show a single remote from a plain-Git worktree. Returns
Nonewhen missing. - show_
remote - Show a single remote in a Heddle repository. Returns
Ok(None)when the name is not present in the merged remote set. - summarize_
pull_ outcome - Short human-readable summary of a pull outcome (for logs / text shells).
- summarize_
push_ outcome - Short human-readable summary of a push outcome (for logs / text shells).
- transport_
error_ message - Normalize an optional transport error string for failure construction.
- transport_
mismatch_ blocker - Pure: native-repo git-transport mismatch, only when not on local overlay path.
- uses_
git_ overlay_ mirror_ rpc - Whether a single-thread network push should use the git-overlay mirror RPC rather than the plain native push RPC.
- uses_
local_ git_ overlay_ transport - Whether push/pull should take the local git-overlay path (git refs / git projection) rather than native heddle remote transport.