diff --git a/CHANGELOG.md b/CHANGELOG.md index 147960c3..914eb1fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ Full release notes with details on each version: [GitHub Releases](https://github.com/safishamsi/graphify/releases) +## 0.3.24 (2026-04-09) + +- Fix: `graphify codex install` (and opencode) no longer exits early when `AGENTS.md` already has the graphify section — partial installs with a missing `.codex/hooks.json` can now recover on re-run (#153) + ## 0.3.23 (2026-04-09) - Add: Gemini CLI support — `graphify gemini install` writes a `GEMINI.md` section and a `BeforeTool` hook in `.gemini/settings.json` that fires before file-read tool calls (#105) diff --git a/graphify/__main__.py b/graphify/__main__.py index c2c27d4a..604fa524 100644 --- a/graphify/__main__.py +++ b/graphify/__main__.py @@ -450,13 +450,12 @@ def _agents_install(project_dir: Path, platform: str) -> None: content = target.read_text(encoding="utf-8") if _AGENTS_MD_MARKER in content: print(f"graphify already configured in AGENTS.md") - return - new_content = content.rstrip() + "\n\n" + _AGENTS_MD_SECTION + else: + target.write_text(content.rstrip() + "\n\n" + _AGENTS_MD_SECTION, encoding="utf-8") + print(f"graphify section written to {target.resolve()}") else: - new_content = _AGENTS_MD_SECTION - - target.write_text(new_content, encoding="utf-8") - print(f"graphify section written to {target.resolve()}") + target.write_text(_AGENTS_MD_SECTION, encoding="utf-8") + print(f"graphify section written to {target.resolve()}") if platform == "codex": _install_codex_hook(project_dir or Path(".")) diff --git a/pyproject.toml b/pyproject.toml index a18d0873..0d6568fc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "graphifyy" -version = "0.3.23" +version = "0.3.24" description = "AI coding assistant skill (Claude Code, Codex, OpenCode, Cursor, OpenClaw, Factory Droid, Trae) - turn any folder of code, docs, papers, or images into a queryable knowledge graph" readme = "README.md" license = { file = "LICENSE" }