Skip to content

feat: add IcodeMate agent support#872

Merged
wesm merged 2 commits into
kenn-io:mainfrom
LeonidasLux:feat/icodemate-support
Jun 26, 2026
Merged

feat: add IcodeMate agent support#872
wesm merged 2 commits into
kenn-io:mainfrom
LeonidasLux:feat/icodemate-support

Conversation

@LeonidasLux

Copy link
Copy Markdown
Contributor

Add support for IcodeMate, a kilo-based agent tool that stores sessions using
the shared OpenCode format at ~/.local/share/icodemate.

IcodeMate uses the same on-disk layout as MiMoCode (storage/session_diff
for file-backed storage + icodemate.db for SQLite fallback), so the parser
delegates to the existing OpenCode parser and relabels session IDs with the
icodemate: prefix — the same pattern used by Kilo and MiMoCode.

Key changes:

  • Register AgentIcodemate type and its AgentDef in the registry
  • Add icodemate.go parser with session ID relabeling logic
  • Register the icodemateFmt OpenCode format variant in discovery.go
  • Wire up sync, discovery, and file-watching in engine.go

Reviewer's attention:

Closes #858

Add IcodeMate as a first-class supported agent in agentsview. IcodeMate
is a kilo-based agent tool with sessions stored at ~/.local/share/icodemate,
using the shared OpenCode-format storage (icodemate.db + storage/session_diff).

- Add AgentIcodemate type constant and Registry entry with env var ICODEMATE_DIR
- Add icodemate format discovery functions (DiscoverIcodemateSessions, etc.)
- Add parser wrapper that delegates to OpenCode parser with icodemate: prefix relabel
- Wire icodemate into all sync engine dispatch points alongside OpenCode/Kilo/MiMoCode
- Add unit tests covering file parsing, discovery, and SQLite virtual paths
@roborev-ci

roborev-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown

roborev: Combined Review (28c55f1)

Medium issue found: parse-diff coverage for SQLite-backed IcodeMate sessions is incomplete.

Medium

  • internal/sync/parsediff.go:288 - parse-diff accepts icodemate as a file-backed agent, but does not synthesize SQLite-backed IcodeMate roots like it does for OpenCode/Kilo/MiMoCode. For --agent icodemate on an icodemate.db-only or hybrid root, DB sessions may be skipped instead of re-parsed.

    Suggested fix: add parser.AgentIcodemate to the OpenCode-format DB source case, and add parser.ParseIcodemateSQLiteVirtualPath to stripVirtualSourceSuffix so DB-backed IcodeMate rows and per-session DB parse errors are attributed to icodemate.db.


Panel: ci_default_security | Synthesis: codex, 8s | Members: codex_default (codex/default, done, 5m13s), codex_security (codex/security, done, 1m7s) | Total: 6m28s

- Add AgentIcodemate to parseDiffDatabaseSources case so icodemate.db
  sessions are re-parsed in parse-diff runs.
- Add ParseIcodemateSQLiteVirtualPath to stripVirtualSourceSuffix so
  DB-backed Icodemate virtual paths resolve to icodemate.db.

Fixes roborev review finding: parse-diff coverage for SQLite-backed
Icodemate sessions was incomplete.
@roborev-ci

roborev-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown

roborev: Combined Review (b3bdf34)

No issues found.


Panel: ci_default_security | Synthesis: codex | Members: codex_default (codex/default, done, 5m51s), codex_security (codex/security, done, 13s) | Total: 6m4s

@LeonidasLux

Copy link
Copy Markdown
Contributor Author

@wesm Please review this PR; if there are any issues, feel free to comment and I will make timely revisions.
image

@wesm wesm merged commit a2f31b3 into kenn-io:main Jun 26, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Integrate IcodeMate agent support

2 participants