<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/integration/actions.rs, branch tmuxrdr</title>
<subtitle>herdr but with less disrespect for the tmux community
</subtitle>
<id>https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr</id>
<link rel='self' href='https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/'/>
<updated>2026-09-16T20:22:37+00:00</updated>
<entry>
<title>fix: respect opencode tui.json registrations (#4250)</title>
<updated>2026-09-16T20:22:37+00:00</updated>
<author>
<name>akbash</name>
<email>akbash@herdr.dev</email>
</author>
<published>2026-09-16T20:22:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=266d6f6d876ab3eb020b88ef6caee0f91776db37'/>
<id>urn:sha1:266d6f6d876ab3eb020b88ef6caee0f91776db37</id>
<content type='text'>
refs #4240

Co-authored-by: akbash-bot &lt;300245827+akbash-bot@users.noreply.github.com&gt;
Co-authored-by: JJ Liebig &lt;jonathan.liebig@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add Letta Code detection and restore (#3107)</title>
<updated>2026-09-13T15:36:47+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-13T15:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=fc1cb77f0572948552377b23f7754a3016ac7dfa'/>
<id>urn:sha1:fc1cb77f0572948552377b23f7754a3016ac7dfa</id>
<content type='text'>
refs #3106

Co-authored-by: Cameron &lt;cameron@pfiffer.org&gt;</content>
</entry>
<entry>
<title>fix: opencode v2 lifecycle reporting (#3757)</title>
<updated>2026-09-11T20:36:18+00:00</updated>
<author>
<name>Mark Jaquith</name>
<email>mark.jaquith@gusto.com</email>
</author>
<published>2026-09-11T20:36:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=fb5525fc2234a246dfdfc9e0d7ed73c824cbd8a6'/>
<id>urn:sha1:fb5525fc2234a246dfdfc9e0d7ed73c824cbd8a6</id>
<content type='text'>
* fix: support opencode v2 lifecycle reporting

* fix: repair Japanese docs

* fix: ignore payload-less OpenCode events

* fix: harden opencode v2 integration install and reporting

Follow-ups on top of the V2 lifecycle support:

- create `cli.json` when OpenCode has no V1 TUI preferences (`tui.json` or
  `kv.json`) to migrate, instead of only registering into an existing file
- settle stalled socket attempts with a plain connect timer, and resend the
  latest lifecycle state after a failed delivery so the pane cannot get stuck
- resolve the OpenCode state directory from `XDG_STATE_HOME`
- remove the managed `herdr-opencode` directory on uninstall
- document failed executions reporting `blocked`, keep the integration test
  environment independent of an inherited `XDG_STATE_HOME`, and simplify
  `reconcileBlockers` to reassign its map

---------

Co-authored-by: Jonathan Liebig &lt;jonathan.liebig@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add qwen code detection and restore (#2743)</title>
<updated>2026-08-13T00:00:35+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-13T00:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=a4d52ab60282b2ad021cb90978a7ed4d3898704b'/>
<id>urn:sha1:a4d52ab60282b2ad021cb90978a7ed4d3898704b</id>
<content type='text'>
refs #2730</content>
</entry>
<entry>
<title>fix: track opencode tui session selection (#2455)</title>
<updated>2026-08-10T11:57:44+00:00</updated>
<author>
<name>akbash</name>
<email>akbash@herdr.dev</email>
</author>
<published>2026-08-10T11:57:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=ccccda54c21f6ef1649a44bb098d7c498724404d'/>
<id>urn:sha1:ccccda54c21f6ef1649a44bb098d7c498724404d</id>
<content type='text'>
refs #2450

Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add antigravity-cli integration (#2087)</title>
<updated>2026-08-01T16:32:47+00:00</updated>
<author>
<name>Ludovico Magnocavallo</name>
<email>ludo@qix.it</email>
</author>
<published>2026-08-01T16:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=679584fdd49f9dee5ad95755af65eedc7d0f455c'/>
<id>urn:sha1:679584fdd49f9dee5ad95755af65eedc7d0f455c</id>
<content type='text'>
* feat: add antigravity_cli integration harness

Register the `antigravity_cli` target, resolve its configuration
directory to `~/.gemini/antigravity-cli/`, wire target actions,
and add lifecycle hook scripts for Unix and Windows.

* feat: support session resume for antigravity-cli

* fix: correct antigravity-cli hook config path, shape, and agent label

Antigravity CLI reads global customizations from ~/.gemini/config, keys
hooks.json by hook name, and only accepts the matcher/hooks wrapper for
the tool events. The previous install wrote event arrays at the top level
of ~/.gemini/antigravity-cli/hooks.json, which agy never reads and would
reject anyway, so no Herdr hook ever ran.

Session reports were dropped for a third reason: the hooks reported the
agent as antigravity-cli, but the server normalizes that to the canonical
label agy before matching, so is_official_agent_source never matched and
agy --conversation resume was unreachable.

- Resolve the config dir to ~/.gemini/config
- Nest Herdr entries under a Herdr-owned "herdr" block that install
  rewrites and uninstall removes, leaving other named hooks untouched
- Emit grouped entries for PreToolUse/PostToolUse and flat handler lists
  for PreInvocation/PostInvocation/Stop
- Report the canonical agy label from both hook assets and match it in
  agent_resume
- Compile-gate the hook asset constants and stop shadowing $args in the
  PowerShell hook
- Document the real directory, that it must already exist, and the
  named-block behavior

refs #1011
refs #1571

* fix: make antigravity-cli integration session-only

antigravity cli cannot express lifecycle safely: there is no blocked
event, postinvocation is skipped on interruption, and stop fires at the
end of a turn rather than on process exit, which left stale state and
released authority at the wrong time.

report only the conversation on preinvocation and let screen detection
own agent state. resume via `agy --conversation &lt;id&gt;` is unchanged.

* fix: update antigravity session after conversation switch

---------

Co-authored-by: Can Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add grok cli integration for native session restore (#1807)</title>
<updated>2026-07-24T19:05:20+00:00</updated>
<author>
<name>Enrico Carlesso</name>
<email>enricocarlesso@gmail.com</email>
</author>
<published>2026-07-24T19:05:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=e9b22084e03880f43d1f1daaf5d9f45c717b77c4'/>
<id>urn:sha1:e9b22084e03880f43d1f1daaf5d9f45c717b77c4</id>
<content type='text'>
* feat: add grok cli integration for native session restore

tl;dr: adds `herdr integration install grok` (session-identity tier: a
SessionStart hook reports the grok session id for native restore; state
stays screen-detected via the bundled manifest).

Grok merges every ~/.grok/hooks/*.json, so install writes a
self-contained hooks/herdr.json registering a SessionStart hook next to
hooks/herdr-agent-state.sh, and never touches other hook files. The hook
prefers $GROK_SESSION_ID (injected into every grok hook process) and
reports through the socket API; herdr:grok is a reserved-native-state
source so screen detection stays authoritative. Restore uses
`grok --resume &lt;id&gt;`. Additive JSON API change; no protocol bump; the
schema artifact is regenerated.

refs #1800

* fix: honor GROK_HOME and validate grok hook config in status

Review follow-ups: grok_dir now resolves GROK_CONFIG_DIR (herdr test
seam) before GROK_HOME (the grok CLI's own config-home override) before
~/.grok, so hook installs land where grok actually looks. Integration
status now also validates the herdr-owned hooks/herdr.json next to the
hook script — missing, corrupt, or no-longer-referencing configs report
the install as outdated instead of masking a hook grok never invokes.

refs #1800

* fix: validate the exact grok session hook command in status

The config validator matched on a filename substring, so a SessionStart
command like `echo herdr-agent-state.sh`, or one invoking the script
without the `session` action, still reported the integration as current
while grok never delivered a session id. Status now compares against the
exact command the installer writes, via a shared builder, and the
degradation tests cover both nonfunctional shapes.

refs #1800

* fix: require a command-type grok session hook in status validation

A config entry carrying the exact generated command under a non-command
hook type (e.g. "http") is never executed by grok, so it must not report
the integration as current. The validator now also requires
type = "command", with a degradation test for the mismatched-type shape.

refs #1800

* fix: validate the complete grok hook config

refs #1800

---------

Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add mastracode integration (#788)</title>
<updated>2026-07-03T22:29:42+00:00</updated>
<author>
<name>Ward Peeters</name>
<email>ward@coding-tech.com</email>
</author>
<published>2026-07-03T22:29:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=d0e333451bd794a419e96f28db925772950ea156'/>
<id>urn:sha1:d0e333451bd794a419e96f28db925772950ea156</id>
<content type='text'>
* feat: add mastracode integration

refs #337

Co-authored-by: Mastra Code (openai/gpt-5.5) &lt;noreply@mastra.ai&gt;
Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>refactor: split integration module</title>
<updated>2026-06-25T17:50:13+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-25T17:50:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=12cce7deeb2d27f7b11daece75881fcfd88ea607'/>
<id>urn:sha1:12cce7deeb2d27f7b11daece75881fcfd88ea607</id>
<content type='text'>
</content>
</entry>
</feed>
