fix(installer): opencode .jsonc + AGENTS.md (0.7.8) (#163)

* release: 0.7.7 (multi-agent installer — Cursor, Codex, opencode)

* fix(installer): opencode .jsonc + AGENTS.md (0.7.8)

v0.7.7 wrote ~/.config/opencode/opencode.json, but opencode reads
opencode.jsonc by default — so the codegraph MCP entry never appeared
in any opencode session. Also installs AGENTS.md so opencode's model
reaches for codegraph_* tools instead of native Grep.

- Prefer existing .jsonc, fall back to .json, default new installs
  to .jsonc.
- Surgical edits via jsonc-parser preserve user comments and
  formatting across install / re-install / uninstall round-trips.
- Install AGENTS.md (global ~/.config/opencode/AGENTS.md, local
  ./AGENTS.md) with the shared INSTRUCTIONS_TEMPLATE — same
  marker-delimited approach Codex uses.
- +9 opencode-specific tests covering filename precedence, comment
  preservation, AGENTS.md install + sibling-content preservation,
  uninstall reverses both files.

575/575 tests pass. Hand-verified end-to-end: opencode session calls
codegraph_node + codegraph_callers for a structural query, zero Grep
calls.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: overhaul CLAUDE.md and add scripts/release.sh + Cursor rules file

Replaces the old Claude-only CLAUDE.md with a comprehensive guide covering
the full project architecture, multi-agent installer, test conventions,
NodeKind/EdgeKind reference, and release workflow. Key additions:

- Documents the layered pipeline, all module paths, and the multi-target
  installer (targets/, registry.ts, AgentTarget interface).
- Adds the Cursor `--path` quirk and the "update all three surfaces" rule
  when changing MCP tool guidance.
- Documents `npm run eval`, `test:eval`, and the full set of build/test
  commands including single-file patterns.
- `scripts/release.sh` — idempotent bash script that tags the current
  commit, pushes the tag, and creates a GitHub Release whose notes are
  extracted from the matching `## [X.Y.Z]` block in CHANGELOG.md. Safe
  to re-run after partial failure.
- `.cursor/rules/codegraph.mdc` — Cursor-specific agent instructions
  (tool decision table, rules of thumb, index-lag warning) written by
  the installer and kept in sync with server-instructions.ts and
  instructions-template.ts.

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Colby Mchenry
2026-05-17 20:26:49 -05:00
committed by GitHub
co-authored by Claude Opus 4.7
parent 7d87126ee8
commit 58c1414ce5
8 changed files with 519 additions and 181 deletions
+23
View File
@@ -7,6 +7,29 @@ a [GitHub Release](https://github.com/colbymchenry/codegraph/releases) tagged
This project follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.7.8] - 2026-05-17
### Fixed
- **opencode**: install actually wires up the MCP server now. v0.7.7 wrote
`~/.config/opencode/opencode.json`, but opencode reads `opencode.jsonc` by
default — so the `codegraph` entry never showed up in any opencode session.
The installer now prefers an existing `.jsonc`, falls back to `.json` when
only that exists, and creates `.jsonc` for greenfield installs. **Re-run
`codegraph install --target=opencode` after upgrading** so the entry lands
in the file opencode actually reads.
### Added
- **opencode**: installer now writes `AGENTS.md` (global
`~/.config/opencode/AGENTS.md`, local `./AGENTS.md`) with the same
codegraph usage guidance the other agents already received. Without it,
opencode's model would call native `Grep` instead of the `codegraph_*`
tools it could see in its MCP list.
- User comments and formatting in `opencode.jsonc` survive install /
re-install / uninstall round-trips — surgical edits via `jsonc-parser`
rather than full-file rewrites.
[0.7.8]: https://github.com/colbymchenry/codegraph/releases/tag/v0.7.8
## [0.7.7] - 2026-05-17
### Added