Skip to content

Releases: drakulavich/iago

v0.3.3 β€” Windows support

Choose a tag to compare

@drakulavich drakulavich released this 14 Jun 21:58

Windows support (#19)

Iago now runs on Windows (Git Bash), verified across Windows + Ubuntu + macOS in CI.

  • CRLF-aware sanitize β€” the Mermaid sanitizer matches \r?\n fences, splits on either line ending, and re-joins with the document's original EOL, so CRLF files round-trip byte-for-byte instead of being normalized.
  • tar --force-local β€” added on Windows Git Bash only (win32 + MSYSTEM), so GNU tar doesn't read the colon in C:\…\iago.tar.gz as a remote host. Native-Windows bsdtar (which doesn't support the flag) is left untouched.
  • Tests now cover CRLF through an actual transformation (;β†’, message rewrite and [@…] flowchart label), not just the no-op path.

Thanks to @contributor for the fix and the cross-platform verification.

Internal

  • OpenSpec baseline (config + principles + glossary) (#20).

npm: @drakulavich/iago@0.3.3

v0.3.2 β€” auto-quote leading-@ flowchart labels, mermaid.parse regression suite

Choose a tag to compare

@drakulavich drakulavich released this 10 Jun 07:42
6293fc9

Patch release.

Fixed

  • #17 β€” A flowchart node label starting with @ (e.g. N[@utils/utils -> …]) made Mermaid β‰₯ 10.5 reject the whole diagram on GitHub ([@ is lexed as edge-ID/shape syntax). iago/scripts/sanitize.ts now auto-quotes such labels inside flowchart/graph blocks β€” including blocks prefixed by %% comments or %%{init: …}%% directives β€” so posted diagrams self-heal. The authoring rule was added to SKILL.md and references/mermaid-templates.md.

Maintenance

  • #17 β€” New jsdom-backed mermaid.parse() validation helper and fixture-driven regression suite (cli/tests/fixtures/mermaid/{valid,invalid}/): the exact field-incident diagram is stored verbatim, and every Mermaid block in iago/examples/, the templates reference, and the README is parse-validated on each bun test run.
  • #16 β€” Gitignore local cocoindex index + blog drafts.
  • Aligned version bump across cli/package.json, .claude-plugin/plugin.json, and .claude-plugin/marketplace.json.

No breaking changes. The CLI is published to npm as @drakulavich/iago@0.3.2 (with provenance); the Claude plugin updates via the bumped marketplace manifests.

Full changelog: v0.3.1...v0.3.2

v0.3.1 β€” fix standalone-comment diagram replacement

Choose a tag to compare

@drakulavich drakulavich released this 01 Jun 09:21
6ee674c

Patch release.

Fixed

  • #14 β€” iago/scripts/post.ts now replaces a prior Iago diagram posted as a standalone comment (one with no <!-- review-skill --> marker and no ## Review heading) in place, instead of posting a duplicate block. This restores the "one block per PR / replaced on the next run" guarantee when the diagram wasn't appended to a /review comment. Internally, the comment search was refactored into a tiered findTargetCommentId (marker β†’ heading β†’ standalone Iago block β†’ new comment).

Maintenance

  • Aligned version bump across cli/package.json, .claude-plugin/plugin.json, and .claude-plugin/marketplace.json.

No breaking changes. The CLI is published to npm as `@drakulavich/iago@0.3.1` (with provenance); the Claude plugin updates via the bumped marketplace manifests.

Full changelog: v0.3.0...v0.3.1

v0.3.0 β€” skill-first: dropped the Action, TypeScript runtime helper

Choose a tag to compare

@drakulavich drakulavich released this 31 May 10:52
bbce089

Skill-first release. Iago is now driven by your own coding agent β€” no GitHub Action, no SaaS.

Removed / Breaking

  • Dropped the GitHub Action and the curl | bash installer. Install via the Claude plugin or bunx @drakulavich/iago; your own agent draws the diagram. (#5, #9)

Changed

  • Runtime helper rewritten in TypeScript (run by bun), replacing the bash + Python scripts. Requires bun + gh. (#6)

Fixed

  • sequence.md example now renders (Mermaid loop reserved-keyword collision); ER entity-name fix; sequence-label ;β†’, sanitizing. (#6, #7)

Docs

  • Lean, human-first README + docs/ split; new CLAUDE.md (canonical agent config) + AGENTS.md. (#8, #10, #11)

Internal

  • Retired the bats suite (tests via bun test + claude plugin validate); gitignore local dev state. (#9)

Install: bunx @drakulavich/iago install --force Β· Claude plugin: /plugin marketplace update iago-marketplace then reinstall.

v0.2.0 β€” OpenCode support, npm CLI, Mermaid hardening

Choose a tag to compare

@drakulavich drakulavich released this 04 May 05:13

Highlights

  • OpenCode is now a first-class install target. Both iago and squawk skills install into ~/.config/opencode/skills/ natively, with auto-detection in install.sh and the new TS CLI. The skills are also runtime-agnostic β€” no more hard-coded ${CLAUDE_SKILL_DIR} references.
  • @drakulavich/iago CLI on npm. A Bun + TypeScript CLI ships alongside the bash installer for users who prefer npx / bunx. Exposes install, update, and uninstall with the same target/skill-only flags as the shell installer.
  • Mermaid rendering hardened. Three layers of defense against the most common rendering failure (; inside sequenceDiagram message labels breaking GitHub's parser): updated authoring rules in SKILL.md + references/mermaid-templates.md, an explicit ban on bypassing the helper script, and a deterministic Python sanitizer that rewrites ; β†’ , in sequence messages before posting.

What's new

Skills

  • feat(skill): make SKILL.md runtime-agnostic β€” fallback chain ${CLAUDE_SKILL_DIR:-${OPENCODE_SKILL_DIR:-$(dirname "$0")}} (3ae2010)
  • fix(skill): teach iago about Mermaid sequence pitfalls β€” ;-as-separator and bare-statements-in-alt rules added to references/mermaid-templates.md (0d593ee)
  • fix(skill): auto-sanitize ';' in Mermaid sequence message labels β€” deterministic safety net runs before posting (1818b5c)
  • fix(skill): require helper script + promote ';' rule to top-level β€” gh pr comment / gh api PATCH direct writes for the diagram are now forbidden by the skill contract (9238635)
  • fix(skill): extract Mermaid sanitizer to standalone Python file β€” fixes a heredoc parse error on macOS bash 3.2 by moving the sanitizer to iago/scripts/sanitize_mermaid.py (c2c6ef5)

CLI (@drakulavich/iago)

  • Add @drakulavich/iago CLI (TS + Bun) β€” Phase 2 β€” initial CLI with 41 unit/integration tests (88f05ff)
  • feat: add opencode as a native install target β€” fifth target across install.sh, cli/src/{args,types,targets}.ts, plus tests (a14f69b)
  • fix(cli): replace Bun-only APIs with node:* equivalents β€” Bun.file/write/spawn β†’ node:fs + node:child_process, fixes ReferenceError: Bun is not defined under npx (fdd45c7)
  • feat(cli): npm publish workflow + cli-local README/LICENSE β€” tag-triggered publish with provenance (fd8cf0d)

Install / update

Bash installer (existing users β€” recommended path)

curl -fsSL https://raw.githubusercontent.com/drakulavich/iago/main/install.sh | bash -s -- --force

npm / bunx (new in this release)

npx -y @drakulavich/iago install
# or
bunx @drakulavich/iago install

Both honor --target=claude|codex|agents|opencode|both, --skill-only=iago|squawk, --force, --dry-run, and --uninstall.

Compatibility

  • macOS bash 3.2: tested via the bats CI matrix and explicitly fixed in c2c6ef5.
  • Node β‰₯ 18: required by the npm CLI; Bun also supported.
  • OpenCode: native install target. Existing ~/.claude/skills/ and ~/.agents/skills/ installs already light up under OpenCode per opencode docs.

Full changelog

v0.1.1...v0.2.0

v0.1.1 β€” clickable footer

Choose a tag to compare

@drakulavich drakulavich released this 01 May 06:58

Patch release.

What changed

Every auto-generated diagram block now footnotes:

Auto-generated by iago. Edit or remove this block; it will be replaced on the next run.

The repo name is a clickable link, so anyone viewing the PR can find their way back to the project in one click.

Updated across all generation paths β€” CLI skill template, Action runner, and bundled examples.

Upgrade

  • Action users on @v0.1 β€” already on it (moving tag now points to v0.1.1).
  • Action users pinned to @v0.1.0 β€” bump to @v0.1.1 (or @v0.1).
  • Skill users β€” git pull in your skill folder.

Full diff: v0.1.0...v0.1.1

v0.1.0 β€” initial public release

Choose a tag to compare

@drakulavich drakulavich released this 01 May 06:19

First public release of Iago β€” Greptile-style Mermaid diagrams for AI code reviews.

What's in the box

  • πŸ€– GitHub Action (`drakulavich/iago@v0.1.0`) β€” comment `/iago` on any PR, no CLI needed.
  • πŸ’» Claude Code skill β€” `/iago`, `/squawk`.
  • 🦦 Codex CLI skill β€” same skill, same open standard.

Diagram types

`sequence`, `flow`, `class`, `er` β€” auto-detected from the diff, override anytime with `/iago `.

Generation modes

  • LLM-quality (Anthropic or OpenAI key in secrets).
  • Heuristic fallback (no key needed) β€” basic but always works.

Install (Action)

```yaml

  • uses: drakulavich/iago@v0.1.0
    with:
    anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
    ```

See README for Claude Code, Codex CLI, Copilot, and Gemini install paths.