You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6157dc3
Browse filesBrowse the repository at this point in the historyBrowse files
* feat: harden session discovery and add Prime Agent
* fix: make Windows executable tests portable
* test: use Windows-safe temporary paths
* test: respect Windows timestamp resolution
Copy file name to clipboardExpand all lines: CHANGELOG.md
+33Lines changed: 33 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,39 @@
2
2
3
3
## [Unreleased]
4
4
5
+
## [0.14.0] - 2026-08-15
6
+
7
+
### Added
8
+
9
+
-**Prime Agent support** — discovers flat Prime Agent v3 JSONL sessions, resumes exact IDs with `prime-agent --resume`, honors environment/global session-root settings, and sorts by durable user/assistant activity. Named sessions, git state, and current recap metadata are surfaced. Deletion is fail-closed because upstream exposes no public safe delete command for active daemon sessions.
10
+
-**Kiro v3 support** — discovers metadata/event pairs under `$KIRO_HOME/sessions/cli` in addition to the v2 SQLite store. Kiro resume now uses the selected conversation ID via `--resume-id`.
11
+
-**Codex non-interactive filtering** — subagent and exec threads are hidden by default and can be included with `--include-non-interactive` or the matching setting.
12
+
- Linux ARM64 release artifacts, an MSRV 1.88 CI lane, and a RustSec audit gate.
13
+
14
+
### Fixed
15
+
16
+
- Codex scans are now strictly read-only. Partial rollout walks can no longer delete valid rows from Codex-owned SQLite databases.
17
+
- Cache invalidation uses nanosecond/size/path fingerprints, follows deeper Codex stores, and watches SQLite WAL files plus every secondary scanner input. Stale rows remain visible when a refresh fails and failed scans are never cached as successful emptiness.
18
+
- Project View stores stable `(agent, session ID)` identities and rebuilds groups after streamed results, preventing wrong-session actions and out-of-bounds panics. `max_sessions` is now display-only and never truncates persistent cache data.
19
+
- Time, name, and agent sorts use deterministic total ordering; timestamps are normalized globally and legacy Codex activity uses rollout mtime.
20
+
- Exact quick-resume behavior: summary queries work, agent filters push down to one scanner, invalid permission modes fail clearly, and current Codex approval/sandbox flags replace removed aliases.
21
+
- Terminal behavior: non-TTY TUI/watch calls fail cleanly, the session-row mouse offset is correct, shell wrappers preserve agent exit status, cwd-independent Hermes resumes execute, `NO_COLOR`/`TERM=dumb` are honored, and untrusted display metadata cannot emit terminal controls.
22
+
- Deletes use collision-safe atomic writes and exact session matching; Claude append-only history is never rewritten while an agent may be writing it, Gemini duplicates are removed across stores, and Hermes prefix siblings survive.
23
+
- Stats windows are cumulative and future/invalid timestamps are separate. Watch opens from cache immediately, preserves selection by identity, rejects zero intervals, and avoids repeated missing-`pgrep` probes.
24
+
25
+
### Performance
26
+
27
+
- Cursor store databases are indexed once instead of scanned once per transcript.
28
+
- Pi, Cursor, Kiro, and Prime Agent JSONL parsing has total and per-line allocation bounds; Kiro v2 previews no longer materialize unlimited conversation blobs.
29
+
- CLI commands reuse fresh per-agent cache entries and scan only stale/requested agents.
30
+
- Text truncation is grapheme-aware, preserving emoji/ZWJ clusters while maintaining terminal-column alignment.
31
+
32
+
### Changed
33
+
34
+
- SuperLightTUI 0.20.1 → 0.22.3, including upstream terminal lifecycle, suspend/resume, bidi, and Unicode fixes.
35
+
- Rusqlite is pinned to 0.39.0 so the declared Rust 1.88 MSRV remains buildable; the 0.40 transitive build script currently requires Rust 1.95 without declaring it.
36
+
- Cache schema 8 → 9. Pin and summary state now use composite agent/session identities while legacy bare-ID pins remain readable.
37
+
5
38
## [0.13.1] - 2026-07-31
6
39
7
40
Post-release audit of 0.13.0. No new features and no CLI changes; everything below is a correctness, durability, or performance fix found by reading the 0.13.0 diff and then the rest of the tree.
Copy file name to clipboardExpand all lines: Cargo.toml
+8-5Lines changed: 8 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,33 @@
1
1
[package]
2
2
name = "agf"
3
-
version = "0.13.1"
3
+
version = "0.14.0"
4
4
edition = "2024"
5
5
# 1.88 = let-chains (edition 2024); also covers usize::is_multiple_of (1.87).
6
6
rust-version = "1.88"
7
-
description = "Find and resume local AI coding-agent sessions across Claude Code, Codex, Gemini, Cursor CLI, OpenCode, Kiro, pi, Hermes, Oh My Pi, and Yolop"
7
+
description = "Find and resume local AI coding-agent sessions across Claude Code, Codex, Prime Agent, Gemini, Cursor CLI, OpenCode, Kiro, pi, Hermes, Oh My Pi, and Yolop"
Copy file name to clipboardExpand all lines: README.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
> Find the AI coding session you meant to resume.
9
9
10
10
`agf` is a local-first fuzzy finder for AI coding-agent sessions.
11
-
Search local sessions across **Claude Code**, **Codex**, **Gemini CLI**, **Cursor CLI**, **OpenCode**, **Kiro**, **pi**, and **Hermes** — then resume the right one in a keystroke.
11
+
Search local sessions across **Claude Code**, **Codex**, **Prime Agent**, **Gemini CLI**, **Cursor CLI**, **OpenCode**, **Kiro**, **pi**, and **Hermes** — then resume the right one in a keystroke.
12
12
13
13

14
14
@@ -45,10 +45,11 @@ Then you either dig through history files or start over.
|[Kiro](https://kiro.dev)|`kiro-cli chat --resume`*(no per-session resume — always opens the latest session for the cwd)*|`~/Library/Application Support/kiro-cli/data.sqlite3`|
|[Hermes](https://github.com/NousResearch/hermes-agent)|`hermes --resume <id>`*(cwd-independent — resumes in your current shell directory)*|`~/.hermes/state.db`|
54
55
|[Oh My Pi](https://github.com/can1357/oh-my-pi)|`omp --resume <id>`|`~/.omp/agent/sessions/<cwd>/*.jsonl`|
@@ -61,10 +62,11 @@ Then you either dig through history files or start over.
61
62
|:---|:---|:---|
62
63
| Claude Code | JSONL |`~/.claude/history.jsonl` (sessions)<br>`~/.claude/projects/*/` (worktree detection) |
| Kiro | SQLite + JSON/JSONL | v2: macOS `~/Library/Application Support/kiro-cli/data.sqlite3`, Linux `~/.local/share/kiro-cli/data.sqlite3`<br>v3: `$KIRO_HOME/sessions/cli/` or `~/.kiro/sessions/cli/`|
68
70
| Cursor CLI | SQLite + JSONL/TXT |`~/.cursor/chats/<workspace>/<id>/store.db` (metadata; required for `.jsonl` to be resumable)<br>`~/.cursor/projects/*/agent-transcripts/<id>/<id>.jsonl` (Composer 2+ transcript)<br>`~/.cursor/projects/*/agent-transcripts/<id>.txt` (legacy transcript) |
69
71
| Gemini | JSON |`~/.gemini/tmp/<project>/chats/session-<date>-<id>.json`<br>`<project>` is a named dir or SHA-256 hash of the project path<br>Project paths resolved via `~/.gemini/projects.json`|
70
72
| Hermes | SQLite |`~/.hermes/state.db` (sessions + messages)<br>JSON dumps in `~/.hermes/sessions/session_<id>.json`<br>Hermes is cwd-independent — resume runs in your current shell directory |
summary_search_count = 5# number of summaries included when search_scope = "all"
148
+
include_non_interactive = false# show Codex subagent/exec threads
146
149
```
147
150
148
151
You can also edit `search_scope` and `summary_search_count` interactively by pressing `?` in the TUI.
149
152
150
153
## Shell integration
151
154
152
-
`agf setup` auto-detects your shell and installs the wrapper. Supported shells:
155
+
`agf setup` auto-detects your shell and installs the wrapper. Use `agf setup --shell powershell` (or another supported shell) when auto-detection is ambiguous.
153
156
154
157
-**zsh / bash** — appends to `~/.zshrc` or `~/.bashrc`
155
158
-**fish** — writes to `~/.config/fish/config.fish`
@@ -170,7 +173,7 @@ See [CHANGELOG.md](CHANGELOG.md) for release notes.
170
173
## Requirements
171
174
172
175
- macOS, Linux, or Windows (PowerShell 5.1+ / PowerShell 7+)
173
-
- One or more of: `claude`, `codex`, `opencode`, `pi`, `kiro-cli`, `cursor-agent`, `gemini`, `hermes`, `omp`, `yolop`
176
+
- One or more of: `claude`, `codex`, `prime-agent`, `opencode`, `pi`, `kiro-cli`, `cursor-agent`, `gemini`, `hermes`, `omp`, `yolop`
174
177
175
178
## Install from source
176
179
@@ -185,6 +188,8 @@ agf setup
185
188
186
189
`agf` works best with agents that store resumable sessions locally.
187
190
191
+
Prime Agent session discovery and resume are supported, but deletion is intentionally disabled: Prime Agent has no public session-delete command and direct file deletion would bypass its active-daemon guard.
192
+
188
193
**Amp** is not supported yet because its sessions are stored remotely, which makes it hard to reliably resolve local project paths from session metadata. We are monitoring upstream changes and will add support when feasible.
0 commit comments