Releases
v0.0.1
Compare
Sorry, something went wrong.
No results found
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 )
You can’t perform that action at this time.