Fixed
-
Hardened
arg_parseoption specifications against duplicate, empty, and
unreachable tokens, and added repeatable value options with ordered,
caller-owned indexed-array outputs. -
Hardened file-section marker validation, preserved symlink targets during
atomic updates, and treated option-like target paths literally. -
Made GitHub API failure capture safe under
set -e, accepted canonical SSH
GitHub remotes, and separated submodule diagnostics from pull logs while
unregistering eagerly removed Git temp files. -
Added canonical
git_*names for generic branch, worktree, default-branch,
and remote helpers. -
Made fallback timeouts terminate descendant processes when a command is
launched in its own process group. -
Isolated pre-existing EXIT trap control flow so return or exit cannot skip
registered cleanup hooks and paths. -
Normalized decimal integer inputs before arithmetic validation and rejected
inverted argument or range bounds. -
Stopped wrapper-option filtering at the -- argument terminator and kept
launcher runtime-filter state local to each script invocation. -
Preserved caller OPTIND, maintained batch prepend order in add_to_path, and
treated option-like paths literally in safe_touch. -
Hardened named-output helpers across std, string, list, arg, git, and GitHub
libraries against caller variable names that collide with helper internals. -
Rejected readonly caller-owned output variables before helper side effects.
-
Aligned standards and stdlib documentation with the current sourceable
library surface and standalone checkout path. -
Added public associative-array assertions and moved
arg_parsecaller-owned
map validation onto the public assertion API. -
Added cleanup path unregister support and used it for eager temp cleanup.
-
Made
gh_runreport failed GitHub CLI commands even when callers enable
set -e, and preserved argument boundaries in GitHub command failure logs. -
Documented and tested
str_splittrailing-separator behavior. -
Hardened GitHub helper pass-by-name outputs against internal variable
shadowing, added a non-optionalgh_infer_repo_from_originerror message,
and deduplicated worktree parsing loops. -
Kept
gh_list_remote_branchesfrom leaking its internal SHA loop variable
into caller scope. -
Routed
gh_api_with_retryretry sleeps through the stdlib sleep helper so
shellsleepaliases or functions cannot shadow retry delays. -
Made
arg_parsepublish output arrays only after a parse succeeds, leaving
caller-owned outputs unchanged on late parse failures. -
Kept the warning-level ShellCheck profile clean for file section marker-count
validation. -
Reused shared marker validation inside
update_file_section.
Removed
- Removed the temporary generic
gh_*branch, worktree, upstream, merge,
default-branch, and remote helper names after Base migrated togit_*.