Skip to content

v0.4.0

Latest

Choose a tag to compare

@initialcommit-io initialcommit-io released this 10 Oct 20:42
· 1 commit to main since this release

What's New

  • Add interactive HTML output as the default, with a Before / After slider and a play button, opened in the git-sim web viewer (repo data stays in the link's #fragment and is never sent to the server)
  • Add Share menu: copy a link, an image, or an embed, make a short public link, download a PNG, SVG, or HTML page, or post to X, Bluesky, LinkedIn, Reddit, Hacker News, or email
  • Add Copy embed for putting an interactive graph in any web page, with no file to host
  • Add live subcommand to watch a repo animate in real time as Git commands run, record each session, and replay, save, or record it as a video
  • Add preflight subcommand to report how risky a Git command is before it runs, what it would lose, and how to undo it (--json and --markdown output)
  • Add wire-agents and unwire-agents subcommands to set up a pre-flight hook and MCP server in Claude Code, Codex CLI, Cursor, GitHub Copilot CLI, Gemini CLI, VS Code, Windsurf, Cline, Roo Code, Amazon Q, and Claude Desktop
  • Add bisect, blame, check-ignore, describe, diff, grep, ls-remote, reflog, shortlog, show, submodule, and worktree subcommands
  • Add --continue and --abort flags to merge, rebase, and cherry-pick subcommands, and --skip to rebase and cherry-pick
  • Add --allow-unrelated-histories and --ff-only flags to merge subcommand
  • Add folder paths and -A to add subcommand
  • Add -u short flag to push subcommand
  • Add --global and --system flags to config subcommand
  • Add VS Code extension (also for Cursor, Windsurf, and VSCodium) showing simulations, pre-flight reports, and the live graph in the editor
  • Add Jupyter magic: %load_ext git_sim.jupyter, then %gitsim <command> or %gitsim live
  • Add GitHub Action that comments on each pull request with what merging it would do, whether it's safe, and how to undo it, including pull requests with conflicts
  • Add gh gitsim GitHub CLI extension to simulate a pull request from the terminal
  • Add aliases subcommand for git preflight and git live Git aliases
  • Add global options --img-format svg and --compact
  • Add link in the page header to an explanation of the simulated command on Initial Commit (only the command and its flags are sent)

Changed defaults

  • Default output is the interactive HTML page instead of a JPG (use --img-format jpg or git_sim_img_format=jpg for images)
  • Graphs are drawn light by default (--dark-mode for dark)
  • Newest commit is drawn on the left (--no-reverse for the old layout)
  • Output is saved in the user cache folder instead of the current folder (git-sim media-dir prints where, --media-dir or git_sim_media_dir changes it)
  • Manim is now optional and only needed for --animate videos: pip install "git-sim[extras]"

Bug fixes

  • Fix merge and rebase with remote-tracking branches like origin/main
  • Fix reset and switch in a detached HEAD
  • Fix commit --amend drawing the amended commit as a child of the old HEAD
  • Fix switch --detach to a commit with no labels rendering a blank image
  • Fix tag <name> <commit> title
  • Fix mv accepting untracked or missing files
  • Fix stash pop crash
  • Fix config --list crash on newer typer versions, and config listings overflowing their box
  • Fix repositories with only one or two commits
  • Fix log taking minutes on large histories with merges
  • Fix doubled backslashes in Windows remote paths in pull, fetch, and push

Technical

  • Render static images with skia instead of Manim, in well under a second
  • Require Python 3.10 to 3.14, tested on Linux, macOS, and Windows
  • Check every command and option against what Git actually does across many repo shapes, and on six real open-source repos up to git/git
  • Save Docker image output in the mounted repo
  • Name any graphics library missing on minimal Linux systems (servers, Docker, CI, WSL)

Full Changelog: v0.3.5...v0.4.0