Releases: player1537/amend-commit-ai
Releases · player1537/amend-commit-ai
Release list
v0.2
v0.1
Consolidate Claude, Pi, and Zed transcript readers into unified CLI Replaces the three standalone scripts (amend_commit_cl.py, amend_commit_pi.py, ,amend-commit-za) with a single package exposing a Transcript base class and ClaudeTranscript, PiTranscript, ZedTranscript subclasses. Key design: - Transcript dataclass with name, summary, created, modified, models, and user_messages fields - Each subclass implements read(name) and readall() classmethods - ClaudeTranscript reads ~/.claude/projects/**/*.jsonl - PiTranscript reads ~/.pi/agent/sessions/**/*.jsonl - ZedTranscript reads Zed's SQLite threads.db with zstd decompression - mdformat wraps prose at 72 chars while preserving code blocks - CLI uses --claude/--pi/--zed flags (default: all sources) - Default mode copies amend command to clipboard; --doit runs it directly - Uses === Transcript header instead of ### Transcript === Transcript Clone https://github.com/player1537/mediocreatbest.git into /tmp/ and review its implementation of `amend_commit_cl.py` and `amend_commit_pi`; and review `~/bin/,amend-commit-za`. We're going to take those 3 individual scripts and consolidate them into one cohesive command line tool in this project. We should have a `Transcript` base class, with `ClaudeTranscript`, `PiTranscript`, and `ZedTranscript` subclasses that each override the `classmethod` `def read(cls, name: str)` and a `classmethod` `def readall(cls)`. The class should have a `user_messages: list[UserMessage]` field, a `created` and a `modified` datetime field. `read` should read one file, `readall` should do appropriate globbing or database querying in order to get all available transcripts. Tell me your plan, including specific code samples, for my approval. --- Rather than directly calling `git commit --amend`, it should work like `,amend-commit-za` and write out a command to the user's clipboard that will do the amend. A flag `--doit` should directly call the `git commit --amend` command. Also, newlines in the user's messages should be preserved. The default command should get all transcripts from all 3 sources, rather than only from one or the other. Instead of subcommands, the flags `--claude`/`--pi`/`--zed` should configure which agents transcripts are used; if none are passed, it should pull from all 3; but if any are passed, then only the ones passed should be used. We currently use `### Transcript` but that doesn't play nicely with the interactive editing of commit messages later. Let's use `=== Transcript` instead. The user messages can be assumed to be markdown by default: try to parse and text wrap the markdown using some python dependency, and if the parsing fails, then just use the current method. This should allow us to have code blocks that don't get mangled. --- The `Transcript` dataclass should keep track of all models used. Implement our plan. --- Commit your changes