hopback 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hopback-0.2.0/CHANGELOG.md +171 -0
- hopback-0.2.0/Cargo.lock +1212 -0
- hopback-0.2.0/Cargo.toml +60 -0
- hopback-0.2.0/LICENSE +21 -0
- hopback-0.2.0/PKG-INFO +245 -0
- hopback-0.2.0/README.md +223 -0
- hopback-0.2.0/man/hopback.1 +100 -0
- hopback-0.2.0/pyproject.toml +44 -0
- hopback-0.2.0/skills/hopback/SKILL.md +68 -0
- hopback-0.2.0/src/adapters/antigravity.rs +817 -0
- hopback-0.2.0/src/adapters/claude.rs +518 -0
- hopback-0.2.0/src/adapters/codex.rs +611 -0
- hopback-0.2.0/src/adapters/copilot.rs +363 -0
- hopback-0.2.0/src/adapters/copilot_vscode.rs +380 -0
- hopback-0.2.0/src/adapters/crush.rs +437 -0
- hopback-0.2.0/src/adapters/cursor.rs +599 -0
- hopback-0.2.0/src/adapters/gemini.rs +810 -0
- hopback-0.2.0/src/adapters/goose.rs +581 -0
- hopback-0.2.0/src/adapters/grok.rs +564 -0
- hopback-0.2.0/src/adapters/kimi.rs +867 -0
- hopback-0.2.0/src/adapters/kiro.rs +408 -0
- hopback-0.2.0/src/adapters/mod.rs +453 -0
- hopback-0.2.0/src/adapters/opencode.rs +702 -0
- hopback-0.2.0/src/adapters/pi.rs +756 -0
- hopback-0.2.0/src/adapters/registry.rs +52 -0
- hopback-0.2.0/src/adapters/vibe.rs +348 -0
- hopback-0.2.0/src/agent.rs +153 -0
- hopback-0.2.0/src/app.rs +967 -0
- hopback-0.2.0/src/bin/hb.rs +3 -0
- hopback-0.2.0/src/bridge.rs +1630 -0
- hopback-0.2.0/src/cli.rs +255 -0
- hopback-0.2.0/src/config.rs +281 -0
- hopback-0.2.0/src/index.rs +279 -0
- hopback-0.2.0/src/launcher.rs +358 -0
- hopback-0.2.0/src/lib.rs +17 -0
- hopback-0.2.0/src/main.rs +3 -0
- hopback-0.2.0/src/model.rs +228 -0
- hopback-0.2.0/src/output.rs +447 -0
- hopback-0.2.0/src/query.rs +758 -0
- hopback-0.2.0/src/quick.rs +263 -0
- hopback-0.2.0/src/search.rs +607 -0
- hopback-0.2.0/src/stats.rs +288 -0
- hopback-0.2.0/src/store/dirs.rs +97 -0
- hopback-0.2.0/src/store/forks.rs +252 -0
- hopback-0.2.0/src/store/legacy.rs +360 -0
- hopback-0.2.0/src/store/mod.rs +512 -0
- hopback-0.2.0/src/store/overrides.rs +244 -0
- hopback-0.2.0/src/store/sessions.rs +442 -0
- hopback-0.2.0/src/store/settings.rs +93 -0
- hopback-0.2.0/src/title.rs +626 -0
- hopback-0.2.0/src/tui/app.rs +2395 -0
- hopback-0.2.0/src/tui/format.rs +296 -0
- hopback-0.2.0/src/tui/keys.rs +665 -0
- hopback-0.2.0/src/tui/layout.rs +223 -0
- hopback-0.2.0/src/tui/mod.rs +9 -0
- hopback-0.2.0/src/tui/render.rs +1959 -0
- hopback-0.2.0/src/tui/theme.rs +86 -0
- hopback-0.2.0/tests/antigravity_adapter.rs +784 -0
- hopback-0.2.0/tests/claude_adapter.rs +80 -0
- hopback-0.2.0/tests/cli_actions.rs +463 -0
- hopback-0.2.0/tests/codex_adapter.rs +280 -0
- hopback-0.2.0/tests/cursor_adapter.rs +753 -0
- hopback-0.2.0/tests/gemini_adapter.rs +585 -0
- hopback-0.2.0/tests/goose_adapter.rs +441 -0
- hopback-0.2.0/tests/grok_adapter.rs +786 -0
- hopback-0.2.0/tests/handoff.rs +46 -0
- hopback-0.2.0/tests/indexing.rs +314 -0
- hopback-0.2.0/tests/json_output.rs +361 -0
- hopback-0.2.0/tests/kimi_adapter.rs +801 -0
- hopback-0.2.0/tests/kiro_adapter.rs +397 -0
- hopback-0.2.0/tests/non_interactive.rs +392 -0
- hopback-0.2.0/tests/opencode_adapter.rs +756 -0
- hopback-0.2.0/tests/pi_adapter.rs +614 -0
- hopback-0.2.0/tests/quick_continue.rs +262 -0
- hopback-0.2.0/tests/title_cleaning.rs +271 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.2.0] - 2026-11-13
|
|
11
|
+
|
|
12
|
+
The relaunch of aiz as hopback.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- `hb`, a short command installed next to `hopback`. Both are the same program.
|
|
17
|
+
- First-run import of aiz pins, local renames, hidden sessions and the
|
|
18
|
+
permission setting. The old `~/.cache/aiz` data is left in place.
|
|
19
|
+
- Packaging for every install channel: cargo-dist (release archives for
|
|
20
|
+
macOS and Linux on arm64 and x86_64 with checksums, a shell installer, a
|
|
21
|
+
Homebrew formula for `avgvi/homebrew-tap`, an npm installer and the release
|
|
22
|
+
workflow), a `pyproject.toml` for maturin wheels, and a Nix flake. Every
|
|
23
|
+
channel installs both `hopback` and `hb`. See `docs/packaging.md`.
|
|
24
|
+
- `--agent-context` prints a bundled Agent Skill (`skills/hopback/SKILL.md`)
|
|
25
|
+
that tells a coding agent how to search, page, resume and fork with `hb`.
|
|
26
|
+
- `hopback completions bash|zsh|fish` (also elvish and powershell) and
|
|
27
|
+
`hopback man`; the generated man page is in `man/hopback.1`.
|
|
28
|
+
- `AGENTS.md` for contributors and `llms.txt`.
|
|
29
|
+
- `hopback pin`, `unpin`, `rename`, `hide` and `unhide <selector>`, each with
|
|
30
|
+
`--json` to print the session after the change.
|
|
31
|
+
- `hopback fork --json` prints the new session, its `resume_command` and the
|
|
32
|
+
`launch_command` instead of starting the agent.
|
|
33
|
+
- Search-line editing: ← → Home End, `Ctrl+A`, `Ctrl+E`, `Ctrl+W`, `Ctrl+U`
|
|
34
|
+
and Delete, with a real cursor.
|
|
35
|
+
- Mouse support: click selects, double-click resumes, the wheel scrolls the
|
|
36
|
+
list or the preview under the pointer.
|
|
37
|
+
- Adapters for Antigravity (`agy`), Kimi Code, Pi, Cursor CLI, Grok Build and
|
|
38
|
+
Gemini CLI, each with its own id, badge color and resume command.
|
|
39
|
+
- `--json`: the matching sessions as one JSON object on stdout, with a
|
|
40
|
+
versioned schema (`schema_version: 1`), local metadata (`pinned`, `hidden`,
|
|
41
|
+
`original_title`, `forked_from`) and the exact `resume_command`. Paging with
|
|
42
|
+
`--limit`, `--offset` and `--all`. See `docs/json.md`.
|
|
43
|
+
- Quick continue: `hb .` resumes the most recently used session of the current
|
|
44
|
+
folder, whatever the agent, or of the closest parent folder that has one.
|
|
45
|
+
`--agent` narrows it; with no session it exits 1 with a clear message.
|
|
46
|
+
- `--print` prints the folder and the resume command instead of running it.
|
|
47
|
+
- `--no-refresh` to answer from the existing index, and `--include-hidden`.
|
|
48
|
+
- CI on Linux and macOS: `cargo fmt --check`, `cargo clippy` with warnings
|
|
49
|
+
denied, and `cargo test`.
|
|
50
|
+
- Kiro CLI sessions are indexed, in both layouts it keeps under
|
|
51
|
+
`~/.kiro/sessions`, and resume with `kiro-cli chat --resume-id <id>`.
|
|
52
|
+
- Goose sessions are indexed from its SQLite store and resume with
|
|
53
|
+
`goose session --resume --session-id <id>`; `Ctrl+F` forks one with Goose's
|
|
54
|
+
own `--fork`. When the Goose desktop app is installed but `goose` is not on
|
|
55
|
+
`PATH`, hopback runs the copy inside the app.
|
|
56
|
+
- `Ctrl+T` pins or unpins the selected session, `Ctrl+R` or `F2` renames it,
|
|
57
|
+
and `Ctrl+X` hides it, straight from the list. The footer shows the pin and
|
|
58
|
+
rename keys.
|
|
59
|
+
- Filter keywords in the search line are colored: the keyword, an agent's name
|
|
60
|
+
in that agent's color, other values in green, and a value hopback does not
|
|
61
|
+
know in red and struck through.
|
|
62
|
+
- While an agent or date value is being typed, the rest is suggested after the
|
|
63
|
+
cursor. `Tab` or `→` takes it, and the list already shows the suggested
|
|
64
|
+
filter.
|
|
65
|
+
- Right-click on a session opens the actions menu for it.
|
|
66
|
+
- The rename box has a cursor and the same editing keys as the search line.
|
|
67
|
+
- `--json --include-messages` adds `messages`, the prompts and replies of each
|
|
68
|
+
session, to the output.
|
|
69
|
+
- hopback reads the permission mode Claude Code records in a session, so a
|
|
70
|
+
session that ran with skipped permissions is known as one.
|
|
71
|
+
|
|
72
|
+
### Changed
|
|
73
|
+
|
|
74
|
+
- Long titles in the table are cut with `…` instead of being clipped, and a
|
|
75
|
+
translated fork's title is cleaned like any other.
|
|
76
|
+
- The README is rewritten around the install commands, `hb .`, translated
|
|
77
|
+
forks, the supported agents and the keys.
|
|
78
|
+
- New keys. Typing always goes to the search; `Ctrl+O` opens an actions menu
|
|
79
|
+
for the selected session (`f` fork, `p` pin, `r` rename, `h` hide, `y`
|
|
80
|
+
copy); `Ctrl+P` now toggles the preview; `F1` lists every key; `Esc` clears
|
|
81
|
+
the search and quits only when it is already empty.
|
|
82
|
+
- Removed ``Ctrl+` `` and the direct `Ctrl+P` pin, `Ctrl+R` rename and
|
|
83
|
+
`Ctrl+X` hide bindings. Pin, rename and hide are in the `Ctrl+O` menu.
|
|
84
|
+
- New TUI layout: a status line with the refresh summary and "shown /
|
|
85
|
+
indexed" counts, a framed search box with a syntax hint, agent tabs with
|
|
86
|
+
session counts in each agent's color, a table with Agent, Title, Directory,
|
|
87
|
+
Turns and Age columns plus pin (★) and fork (↳) marks, a preview to the
|
|
88
|
+
right of the table, and a footer with each key in a chip. Narrow terminals
|
|
89
|
+
drop the Directory column first, then the preview.
|
|
90
|
+
- The preview shows the session's title, folder and local date above the
|
|
91
|
+
conversation, and colors the user's prompts apart from the replies.
|
|
92
|
+
- Removed the Ctrl+Up / Ctrl+Down preview resize; the preview now takes a
|
|
93
|
+
fixed share of the width.
|
|
94
|
+
- The index is rebuilt once after an upgrade that changes how sessions are
|
|
95
|
+
read. Pins, renames and hidden flags are kept.
|
|
96
|
+
- An unknown `--agent` value is now an error instead of being ignored.
|
|
97
|
+
|
|
98
|
+
- The project is renamed from aiz to hopback: crate, binaries, help text and
|
|
99
|
+
the store location (`~/.cache/hopback/hopback.db`).
|
|
100
|
+
- `Tab` writes the agent into the search line as `agent:<name>` instead of
|
|
101
|
+
keeping a separate, invisible tab filter. A typed `agent:` filter fills in
|
|
102
|
+
the matching tabs, and `--agent` on the command line shows up there too.
|
|
103
|
+
- Every pop-up (actions, fork, rename, hide, help) is drawn on one frame with
|
|
104
|
+
the same selection bar and hint line.
|
|
105
|
+
- Resuming and forking no longer ask about permissions. A session starts in
|
|
106
|
+
the mode it was started with: with the agent's skip-permission flags when
|
|
107
|
+
it ran that way, without them otherwise. `--yolo` and
|
|
108
|
+
`hb config permission set normal|yolo|inherit` still override that.
|
|
109
|
+
- A translated fork holds the conversation as it was. It no longer starts
|
|
110
|
+
with a notice telling the new agent to treat the transcript as untrusted
|
|
111
|
+
history, tool calls keep their names, and Codex's instructions are not
|
|
112
|
+
replaced. The one addition is `[hopback]` in front of the title the target
|
|
113
|
+
agent shows.
|
|
114
|
+
- A fork into Codex is listed with the sandbox and approval settings of your
|
|
115
|
+
latest Codex session in that folder (or anywhere, when the folder has
|
|
116
|
+
none) instead of being forced to read-only. It is recorded for the model
|
|
117
|
+
provider Codex is configured with, where it used to say `openai`, which
|
|
118
|
+
made Codex refuse to open it on any other provider.
|
|
119
|
+
- A fork into Codex shows the earlier replies in Codex's transcript, not
|
|
120
|
+
only the prompts.
|
|
121
|
+
- A fork into Claude Code leaves out the instructions Codex gave itself,
|
|
122
|
+
which used to appear as prompts you had typed.
|
|
123
|
+
- A Codex session counts as started with skipped permissions only when it
|
|
124
|
+
ran with approvals off and no sandbox. Runs with approvals off inside a
|
|
125
|
+
sandbox, which is what `codex exec` does, resume normally.
|
|
126
|
+
- The agent skill and `llms.txt` no longer tell agents to ask for approval
|
|
127
|
+
before resuming, forking, pinning or renaming.
|
|
128
|
+
- The actions menu lists each action with the key that runs it directly, in
|
|
129
|
+
the order pin, rename, fork, copy, hide. Its single-letter keys are gone.
|
|
130
|
+
- Key chips and hint text use fixed colors instead of the terminal's own
|
|
131
|
+
grays, which were too light or too dim depending on the terminal theme.
|
|
132
|
+
- The footer drops chips on a narrow terminal instead of running off the
|
|
133
|
+
edge, and no longer lists `Tab` and `Ctrl+P` (they are in the `F1` help).
|
|
134
|
+
- A footer message such as "pinned" clears on the next key press.
|
|
135
|
+
|
|
136
|
+
### Fixed
|
|
137
|
+
|
|
138
|
+
- Codex sessions written by current Codex builds are indexed. Prompts are now
|
|
139
|
+
read from `response_item` messages, the session id comes from the rollout
|
|
140
|
+
file name, and subagent rollouts (reviews, guardian checks, spawned threads)
|
|
141
|
+
are skipped, as `codex resume` does.
|
|
142
|
+
- Titles are readable: paste wrappers (`<pasted_content …>`), slash-command
|
|
143
|
+
envelopes, injected context blocks, image labels and leading slash commands
|
|
144
|
+
are stripped, and the title falls back to the first meaningful line a user
|
|
145
|
+
wrote. Titles are one line, at most 80 characters.
|
|
146
|
+
- Claude Code sessions use the name Claude Code itself shows: the `/rename`
|
|
147
|
+
sidecar, then `custom-title` records, the sessions index and `ai-title`
|
|
148
|
+
records, before the first prompt.
|
|
149
|
+
- Codex sessions are titled from the prompt as typed, not from the model input
|
|
150
|
+
with its image labels and context blocks.
|
|
151
|
+
- OpenCode sessions are found again: the adapter reads the `session_v2` and
|
|
152
|
+
`session_message` tables of current OpenCode as well as the older schema,
|
|
153
|
+
and skips subagent child sessions.
|
|
154
|
+
- A Codex thread rename in `session_index.jsonl` updates the indexed title.
|
|
155
|
+
- Saving an empty name in the rename box brings the original title back at
|
|
156
|
+
once, not only after a restart.
|
|
157
|
+
- A half-typed `agent:` value no longer empties the list.
|
|
158
|
+
|
|
159
|
+
## [0.1.0] - 2026-06-19
|
|
160
|
+
|
|
161
|
+
### Added
|
|
162
|
+
|
|
163
|
+
- Initial release as aiz: a TUI that indexes Claude Code, Codex, Copilot CLI,
|
|
164
|
+
Copilot in VS Code, Crush, OpenCode and Vibe sessions, searches them with
|
|
165
|
+
SQLite FTS5 and fuzzy matching, and resumes or forks the selected session.
|
|
166
|
+
- Pins, local renames and hidden sessions, kept in hopback's own store.
|
|
167
|
+
- Native forks, and translated forks between Claude Code and Codex.
|
|
168
|
+
|
|
169
|
+
[Unreleased]: https://github.com/avgvi/hopback/compare/v0.2.0...HEAD
|
|
170
|
+
[0.2.0]: https://github.com/avgvi/hopback/compare/v0.1.0...v0.2.0
|
|
171
|
+
[0.1.0]: https://github.com/avgvi/hopback/releases/tag/v0.1.0
|