Skip to content

Latest commit

 

History

History
64 lines (50 loc) · 3.8 KB

File metadata and controls

64 lines (50 loc) · 3.8 KB

Changelog

All notable changes to git-stint will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.6.0] - 2026-03-27

Added

  • shared_files config — copy individual files from the main repo into worktrees on session start, with path traversal protection
  • post_create hooks — run shell commands in new worktrees after session creation for custom setup (e.g., npm install, environment config)
  • resume command — rebind to an existing session's worktree without restarting it, useful for recovering from disconnects or switching terminals
  • which command — print the resolved session name or worktree path (--worktree)
  • PPID-based session resolution — when multiple sessions exist, resolveSession() matches the caller's PPID against each session's clientId before throwing "Multiple active sessions"
  • Hook auto-resume — PreToolUse hook automatically resumes detached sessions

[0.3.0] - 2026-02-28

Added

  • Remote branch cleanupend and merge now delete the remote branch when all changes are verified merged on the remote
  • Two-tier merge detection: commit ancestry (--is-ancestor) for regular merges, content diff for squash and rebase merges
  • Checks against remote tracking refs (origin/main), not local branches — a local-only merge won't delete the remote branch until you push, preventing accidental loss of the only remote copy
  • Checks both the default branch and the current branch on the remote (supports non-main workflows like develop)
  • Graceful handling of network errors and missing remotes — warnings with manual deletion commands, never blocks the end operation
  • Unmerged remote branches are always preserved with a clear warning and the exact git push origin --delete command to run manually

[0.2.3] - 2026-02-28

Added

  • Skip gitignored files in PreToolUse hook — writes to node_modules/, dist/, .env, etc. no longer trigger session creation or blocking
  • Hook test suite covering gitignore patterns, negation, nesting, .git/info/exclude, and policy enforcement

Fixed

  • Prevent shared_dirs symlinks from being staged by git add -A — symlinks (mode 120000) aren't matched by trailing-slash gitignore rules

[0.2.0] - 2026-02-27

Added

  • shared_dirs config — symlink gitignored directories (caches, data, logs) from main repo into worktrees automatically on start
  • main_branch_policy config — "block" (auto-create session), "prompt" (block with instructions), "allow" (pass through)
  • force_cleanup config — control worktree removal behavior ("prompt", "force", "fail")
  • adopt_changes config — carry uncommitted changes from main into new worktrees ("always", "never", "prompt")
  • --adopt / --no-adopt CLI flags to override adopt_changes per invocation
  • Per-client allow-main flag scoped by PID — multiple Claude Code instances stay isolated
  • install-hooks now scaffolds .stint.json with defaults if it doesn't exist
  • Updated Claude Code hook format to match current settings schema

[0.1.0] - 2026-02-26

Added

  • Core session commands: start, commit, squash, merge, pr, end, abort, undo
  • Session listing: list, list --json
  • File tracking: track, status, diff, log
  • Cross-session conflict detection: conflicts
  • Worktree-based test isolation: test, test --combine
  • Orphan cleanup: prune
  • Claude Code adapter with PreToolUse and Stop hooks
  • Hook installer for .claude/settings.json
  • Manifest schema versioning for forward compatibility
  • Automated test suite: unit, security, and integration tests
  • PR body generation from session changeset history