d1864a9
feat!: add tag mode and rename to git-format
Click to expand commit body
Extends the tool to support both commit and tag formatting:
- Add git-formatted-tag mode for annotated tag formatting
- Add install subcommand to create symlinks in ~/.local/bin
- Extract shared code (runGitWithStdin, validateSubjectLength) to git.go
- Update module path to git.secluded.site/git-format
BREAKING CHANGE: Renamed from formatted-commit to git-format. Uninstall
the old binary and reinstall following README instructions. Run
git-format install to create symlinks, then invoke via git
formatted-commit or git formatted-tag.
5507d21
chore(changelog): yeet because kittylog no worky
Amolith
created
dee633c
fix(cli)!: resolve merge conflicts for -B flag
Click to expand commit body
Fixes type mismatch where breakingChange was declared as bool but used
as string after merge.
BREAKING CHANGE: The -B/--breaking flag now requires a description
argument instead of being a boolean. Use -B "description" instead of
just -B.
Assisted-by: Claude Opus 4.5 via Crush
Amolith
created
ca011b4
docs(readme): add REUSE and Liberapay badges
Click to expand commit body
Assisted-by: Claude Opus 4.5 via Crush
Amolith
created
6735b1f
fix(body): decode HTML entities after sanitization
Click to expand commit body
Wraps bluemonday output with html.UnescapeString so that characters like
quotes remain as literal "quotes" instead of "quotes".
Assisted-by: Claude Opus 4.5 via Crush
Amolith
created
80140d9
fix(body): preserve indented lines as preformatted
Click to expand commit body
Lines starting with 4+ spaces or a tab are now preserved verbatim,
fixing code block formatting in commit bodies.
Before:
task.Method1()
task.Method2()
Would become "task.Method1() task.Method2()" after reflowing.
Assisted-by: Claude Opus 4.5 via Crush
Amolith
created
45aedc2
feat(cli): require description for -B flag
Click to expand commit body
The -B flag now accepts a string argument containing the breaking change
description instead of being a boolean flag. This description is
formatted and inserted as a BREAKING CHANGE: footer between the body and
git trailers, following the Conventional Commits specification.
The flag still adds ! to the subject line. When used with heredoc
syntax, multi-line breaking change descriptions are supported.
Also re-added the -a/--amend flag that was present in main but missing
from this feature branch.
Implements: bug-e75a648
Assisted-by: Claude Sonnet 4.5 via Crush
Amolith
created
1c7f7a8
feat: require BREAKING CHANGE footer with -B flag
Click to expand commit body
When the -B flag is used to mark a commit as a breaking change, the tool
now validates that the body contains a BREAKING CHANGE: or BREAKING
CHANGES: footer. If not present, it returns a descriptive error
instructing users to document breaking change details in this footer.
Implements: bug-e75a648
Co-authored-by: Crush <crush@charm.land>
3d60ef1
refactor(release): simplify bumps and add graduate
Click to expand commit body
- Consolidated prerelease logic into a case statement
- Added 'graduate' option when current version is prerelease
- Now uses svu's built-in prerelease flag with user-provided suffix
- When graduating, llm-tag generates changelog from last stable tag
Assisted-by: Claude Sonnet 4.5 via Crush
Amolith
created
279d408
docs: add changelog and reference in readme
Click to expand commit body
Adds a comprehensive CHANGELOG.md tracking all releases from 0.1.1
through 0.1.8-alpha.0, following Keep a Changelog format.
Updates README to include a Changelog section pointing to the new file
and noting it's maintained by kittylog.
Assisted-by: Claude Sonnet 4.5 via Crush
Replaced justfile with Taskfile.yaml adapted from nasin-pali project.
Updated AGENTS.md to reference task commands instead of just commands.
Assisted-by: Claude Sonnet 4.5 via Crush
Amolith
created
b51a0c8
fix: unwrap and rewrap body text correctly
Click to expand commit body
Previously, formatBody processed each line independently. When input
text was already wrapped (but incorrectly), each line got rewrapped
separately, making the wrapping worse.
Now consecutive plain text lines are collected in a buffer, joined with
spaces to unwrap them, then passed to wordWrap once as a single
paragraph. Blank lines, bullet points, and numbered lists interrupt the
buffer to preserve paragraph boundaries and list formatting.
Fixes: ed58135
Assisted-by: Claude Sonnet 4.5 via Crush
Amolith
created
d72ce68
fix: remove HTML escaping from commit bodies
Click to expand commit body
Commit messages are plaintext piped to 'git commit -F -' stdin,
so
HTML sanitization with bluemonday was unnecessary and harmful. It was
escaping characters like < and > that should remain literal in
commit
text.
Security is maintained through the stdin pipe preventing shell
injection.
Fixes: a6c077f
Assisted-by: Claude Sonnet 4.5 via Crush
Changed flag behavior:
- -a is now shorthand for --add (stage all modified files)
- --amend is now long-form only (no short flag)
Updated documentation in main.go, AGENTS.md, and README.md to reflect
new flag behavior.
Closes: bug-f90a6de
Assisted-by: Claude Sonnet 4.5 via Crush
Amolith
created
a690261
feat(examples): use assisted-by over co-author
Add upgrade subcommand to check for and apply updates to the
formatted-commit binary via go install. Includes TUI confirm, spinner,
and non-TTY fallback.
Update README and CLI help with upgrade instructions. Refresh module
dependencies to support the new command.
Co-authored-by: Crush <crush@charm.land>
Add comprehensive trailer validation following git's trailer
specification. Each trailer is validated for proper key:value format
with no whitespace allowed before or inside the key. Multiline values
are supported using RFC 822 folding with continuation lines
requiring whitespace indentation. Trailers are now properly assembled
into a block at the end of commit messages separated by blank lines.
Implements: bug-896472f
Co-authored-by: Crush <crush@charm.land>
Amolith
and
Crush
created
775175c
feat: implement body sanitisation and formatting
29fbff3
feat: add subject validation and length checking
Click to expand commit body
Add buildAndValidateSubject function to construct commit subjects in
conventional commit format and validate they don't exceed 50 characters.
Truncated subjects show exceeding portion with ellipsis in error output.
Implements: bug-5b35298
Co-authored-by: Crush <crush@charm.land>