Skip to content

v0.0.1

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Jul 05:05
e4121f9

Changelog

  • 80635e8 Batch preview and undo tip reads (#95)
  • b866bf1 Merge improve-loop hardening and performance fixes (#98)
  • 214e51f Merge pull request #1 from andyrewlee/foundation
  • 5a531c6 Merge pull request #10 from andyrewlee/help-json-and-usage-string-consistency
  • 4a9a2c5 Merge pull request #11 from andyrewlee/enforce-stdlib-only-and-fix-loop-targets
  • 404cd2b Merge pull request #12 from andyrewlee/dirty-guard-and-engine-coverage-tests
  • d63315e Merge pull request #13 from andyrewlee/e2e-sync-conflict-and-contract-coverage
  • e062f2e Merge pull request #14 from andyrewlee/registry-derived-completeness-and-lock-help-tests
  • b0ef0bc Merge pull request #15 from andyrewlee/unify-undo-protocol-and-engine-tails
  • 9d2ba4a Merge pull request #16 from andyrewlee/deterministic-infer-parent-cleanup-and-doc-fixes
  • 1375dc2 Merge pull request #2 from andyrewlee/engine
  • f4d98c3 Merge pull request #3 from andyrewlee/cli
  • d8f6641 Merge pull request #4 from andyrewlee/factory
  • 37d6c68 Merge pull request #5 from andyrewlee/docs
  • c00ad86 Merge pull request #6 from andyrewlee/atomic-state-writes-and-undo-self-heal
  • 5661994 Merge pull request #7 from andyrewlee/panic-recovery-distinct-exit-code
  • dbae5fc Merge pull request #8 from andyrewlee/fold-advance-parent-last
  • 653d8bb Merge pull request #9 from andyrewlee/stdout-stderr-and-json-error-discipline
  • 01128f6 Tune CI lint pinning and Go build cache (#97)
  • a4b6831 build: cross-GOOS vet the lock fallbacks; enable the Go build cache in CI (#30)
  • df3ff98 build: enforce stdlib-only in the gate; make the fast loop honest
  • b36e282 build: gate per-function coverage with an allowlist (#124)
  • 877ea68 build: guard the Go version pin across go.mod/ci/docs; document ST_TEST_DEBUG (#151)
  • 455d185 build: preflight golangci-lint in make lint and pin the version (#73)
  • 452f1a7 build: rename module to github.com/andyrewlee/stacked (#133)
  • 1b3adbe build: run the e2e suite on the windows CI leg (#152)
  • 5d92528 build: run vet and build before lint in make ci (#74)
  • c6e4def build: run windows lock tests in CI
  • 969b886 build: single-source the Go version across CI jobs (#128)
  • 43c4202 build: stop double-firing CI on pushes to PR branches (#139)
  • e4121f9 build: v0.0.1 release pipeline aligned with amux (#158)
  • 4df4e5a feat(cli): st commands as thin adapters over the engine (dispatch, --json, exit codes, guide)
  • d3bd3d7 feat(engine): restack engine + stack operations, with property/invariant + fake-git tests
  • e7945ef feat(foundation): git wrapper, stack model, persistence, ports, undo journal + locking
  • 1694565 feat: add a structured flag list to help --json (#71)
  • be5eb3d feat: add st restack --all for whole-forest restacks (#121)
  • 3665820 feat: add st worktree rm --all for bulk teardown (#142)
  • d5a37b3 feat: add stacked worktree support
  • 45aeb2c feat: apply single-target absorb plans (absorb v1 slice 2) (#156)
  • fdd29fb feat: complete per-command flags and sub-verbs in bash/zsh/fish (#153)
  • e4a6abd feat: create branch directly into worktree (#110)
  • 075272d feat: emit per-branch PR compare URLs from submit
  • e554ffb feat: expand glob patterns in .worktreeinclude (#127)
  • 3469981 feat: include the trunk name in status --json (#69)
  • bab8497 feat: machine-readable help/version and consistent usage strings
  • c2f07d6 feat: materialize every stack branch's worktree with st worktree --all (#126)
  • 5cc4b2b feat: point unknown-flag errors at the command's help (#78)
  • 696d358 feat: recognize self-hosted GitLab and GitHub Enterprise in submit compare URLs (#143)
  • 3b17f69 feat: show aliases and a start-here pointer in st help (#56)
  • 2a6f7b4 feat: st absorb --dry-run attributes staged hunks to their owning stack commits (#155)
  • ccc25f9 feat: suggest the closest command on a typo; unify the not-found paths (#54)
  • 344bb35 feat: surface in-progress conflict state in st status (#70)
  • 84bd848 feat: surface the conflicted branch in the --json error envelope (#60)
  • 574a35d fix(cli): avoid deleting unrelated undo branches
  • 481fbdc fix(cli): block undo during active rebase
  • 6c4d8f7 fix(cli): clean up partial undo refs
  • 81d487d fix(cli): guard repair and no-arg mutators
  • 00bb6ec fix(cli): harden submit and undo workflows
  • 1c2a29a fix(cli): keep json errors parseable
  • 6e09b71 fix(cli): keep json parse errors clean
  • 7cea131 fix(cli): keep json rebase output quiet
  • dbed433 fix(cli): keep original undo across continue
  • 054198d fix(cli): preserve conflict undo snapshots
  • ee8f9c6 fix(cli): preserve undo after failed continue
  • 94bddae fix(cli): preserve undo history on no-op failures
  • ca700d9 fix(cli): preview sync against remote trunk
  • 4a9c4c8 fix(cli): reject init positional args
  • faec034 fix(cli): reject navigation command args
  • e25af3c fix(cli): reject read-only command args
  • 16a3411 fix(cli): reject submit positional args
  • af1a896 fix(cli): sanitize submit urls fully
  • 7f70dfc fix(cli): stabilize sync remote test
  • 3773dcb fix(cli): use valid quiet rebase continue
  • f7cae56 fix(cli): validate init and no-op undo entries
  • 14202b5 fix(cli): validate navigation state and args
  • 9b74f3b fix(engine): allow commit subject SHA bases
  • 5aefda8 fix(engine): distinguish restack rebase failures
  • c9d5b22 fix(engine): enforce safe stack deletes
  • 99e5b1b fix(engine): guard modify and onto failures
  • be91543 fix(engine): guard modify restack preconditions
  • 10a6bf0 fix(engine): handle ancestry check errors
  • 144a17f fix(engine): harden sync prune handling
  • 00ce39c fix(engine): keep metadata aligned on failures
  • f436696 fix(engine): preserve rewrite metadata on conflicts
  • 04a4168 fix(engine): preserve stack parent inference
  • b65ed18 fix(engine): qualify branch tip resolution
  • fd8e259 fix(engine): restore head after restack failures
  • 83e3a7e fix(engine): validate mutation preconditions
  • a82ba4b fix(factory): preserve dirty worktree during undo
  • e19c496 fix(foundation): disambiguate git branch refs
  • ee9c835 fix(foundation): harden git metadata snapshots
  • 7b4204f fix(foundation): keep descendant roots out of cycles
  • 863f9e4 fix(foundation): preserve generic ancestry refs
  • e569025 fix(foundation): qualify commit and lock refs
  • 7509574 fix(foundation): surface git ref resolution errors
  • b2c4a16 fix(foundation): validate git common dir probe
  • 32167ec fix: a real lock on non-flock platforms
  • 6db3cb6 fix: atomic metadata writes and self-healing undo journal
  • f4c5e55 fix: bound owned locks by age to survive pid reuse (#38)
  • ef32124 fix: classify windows access denied lock races
  • f85e378 fix: clear five CLI UX/logistical papercuts from a feature audit (#88)
  • 298b8e6 fix: deterministic inferParent, drop dead code, correct docs
  • 8cc09a2 fix: drive sync's trunk operations in the trunk's own worktree (#115)
  • 6a86052 fix: drop .worktreeinclude entries nested under an already-selected directory (#137)
  • fe26c5e fix: emit machine-readable info for st -h --json (#57)
  • b728d72 fix: emit one stable JSON shape from st init (#46)
  • 9baf0c8 fix: enforce the clean-tree precondition in dry-run previews (#41)
  • 42eab90 fix: expose built-in commands in JSON help lookup
  • 66b642d fix: fail the undo snapshot when branch tips cannot be read (#37)
  • dc49095 fix: frame update-ref batch with -z so a tampered undo journal can't inject directives (#136)
  • bf8d8d1 fix: fsync the atomic write so it survives a power crash (#36)
  • 4e15c15 fix: give a friendly error for a negative navigation count (#47)
  • 64c698b fix: guard commit subjects and worktree includes (#94)
  • f0c4111 fix: harden fold rollback on delete failure
  • e82cfee fix: invalidate the worktree cache on checkout so sync from a linked worktree keeps its worktree (#135)
  • f0fc2cd fix: invalidate the worktree cache on topology mutations (#112)
  • 02044fc fix: keep Fold rollback's restore error in the chain (#40)
  • 01cf226 fix: keep diagnostics on stderr and honor --json on error paths
  • 9bff52e fix: keep non-leading -- out of positional args (#93)
  • 84bf80b fix: keep onto/continue recovery consistent on rare failures (#39)
  • e630e10 fix: lock worktree add/rm and stop aliasing the worktree cache (#100)
  • 99801e9 fix: match engine worktree guards to previews (#101)
  • 58034dc fix: pin git locale; decide fast-forward by plumbing, not message text
  • e95dcff fix: print subcommand help after quiet flag parse
  • ee1eb81 fix: recover panics into a structured error with a distinct exit code
  • c021f47 fix: reject flag-like ref names at the git boundary (#32)
  • 0f46d02 fix: reject flag-like refs in RevParse and UpdateRef (#35)
  • 73e731d fix: report dirty worktree restack skips
  • 4f8bb94 fix: report partial submit pushes in --json (#45)
  • 27c2d54 fix: report the module version for go-install builds and correct the ldflags comment (#140)
  • 5e7a691 fix: report where sync's HEAD actually landed instead of always claiming detached (#149)
  • 9e85b64 fix: roll back the parent ref if a fold fails mid-operation
  • cc9e5c7 fix: sanitize error output to the terminal (#113)
  • d0d8e17 fix: sanitize git-controlled terminal output (#99)
  • 5916554 fix: surface permission errors from off-flock lock reclaim (#114)
  • 01e921b fix: sync log JSON contract and stale docs (#34)
  • 4ea20e3 fix: treat windows lock create access denial as contention
  • 020b879 fix: undo tears down a created branch's linked worktree even when unrecorded (#111)
  • 8e15a09 fix: unify submit --json into one result shape
  • c8f6b88 perf: batch prune merged set lookup (#102)
  • eccbe8f perf: batch ref reads - one for-each-ref spawn for log/validate drift checks
  • 7321511 perf: batch successful submit pushes
  • 58adfc2 perf: infer the track parent from precomputed ancestor sets (#42)
  • a1e15c9 perf: keep live tips through restack upstack (#96)
  • 4c00eaa perf: one for-each-ref spawn for undo snapshots and finalize checks (#33)
  • b13c237 perf: reconcile st repair from one Tips() read (#44)
  • 10b8161 perf: render st log with one for-each-ref instead of N git-log spawns (#43)
  • caf3e7b perf: resolve the repo root once and batch check-ignore in worktree copy (#120)
  • 41c19f3 perf: restack delete's re-parented children over one shared tips map (#129)
  • 28fc535 perf: restore undo refs in one update-ref --stdin transaction (#130)
  • de1c203 perf: thread expected HEAD through the restack cascade to drop per-branch rev-parse (#138)
  • 81160d6 refactor: RestackBranch reports whether it rebased
  • 49afadd refactor: capture undo snapshots through the Git port
  • 25cf744 refactor: collapse RestackAll into RestackUpstack(trunk) (#76)
  • f6d9ea8 refactor: collapse the four copies of lock-owner pid parsing (#68)
  • 5fabdec refactor: collapse the nav summary terminal twins into navEmit (#144)
  • 3af5224 refactor: collapse the no-arg command preamble into parsePlain (#90)
  • 8742180 refactor: converge Modify onto the shared finishUpstack tail (#58)
  • 8f378de refactor: declare each command's flags exactly once (#83)
  • c1accfe refactor: dedup the flag scanners; consistent navigation parsing and wording
  • 8c01a5b refactor: dedupe tracked-branch lookups, drop dead undo indirection (#89)
  • 868a1c5 refactor: delete the duplicate sortedNames helper (#75)
  • 7ebccbf refactor: derive command flag sets from one newFlagSet helper (#51)
  • 683ae9f refactor: drive exit codes, error codes, and the guide from one table (#55)
  • b82324e refactor: drop the LocalBranches port method; derive names from Tips() (#61)
  • 4d71edc refactor: drop undo's command-label coupling (#80)
  • f023906 refactor: extract loadStateAndCurrent; unify the not-tracked message (#52)
  • ec8f5f5 refactor: fold create --worktree onto the mutateState protocol (#125)
  • 14bae52 refactor: make restackForest the single cascade walk and share the restack epilogue (#145)
  • 3553b5f refactor: move pure .worktreeinclude helpers into internal/stack (068 slice 1) (#157)
  • 3108b25 refactor: move the undo no-op/finalize protocol into the stack package
  • bea83e0 refactor: move undo reversal into the engine
  • ec57b58 refactor: one engine classifier for validate and repair consistency (#63)
  • 8dc00ea refactor: one helper for the rollback double-error pattern
  • 82bd166 refactor: one topology helper for branch removal; delete reports restacked
  • 49f9bd7 refactor: one undo protocol for all mutations; shared restack tail
  • 3997b60 refactor: promote abort into the pure engine as stack.Abort (#81)
  • 3846e63 refactor: promote repair into the pure engine so the model can fuzz it (#62)
  • c744445 refactor: reject modify's positional args via the shared rejectArgs idiom (#53)
  • cbb2226 refactor: remove dead TipSubjects (superseded by TipSubjectsFor) (#150)
  • 25c9850 refactor: split cmd/util.go by concern (#131)
  • 1f59b14 refactor: unify the paused-rebase classifier across RestackBranch and Onto (#91)
  • 59f4fea refactor: use restoreHEADAfterNonConflict for Sync's restack guard (#59)