Skip to content

[pull] main from gi-dellav:main#81

Merged
pull[bot] merged 10 commits into
lenylvt:mainfrom
gi-dellav:main
Jun 28, 2026
Merged

[pull] main from gi-dellav:main#81
pull[bot] merged 10 commits into
lenylvt:mainfrom
gi-dellav:main

Conversation

@pull

@pull pull Bot commented Jun 28, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Note

Add session rewind/redo commands and exponential backoff retry logic for agent streams

  • Adds /rewind and /redo slash commands: /rewind opens a two-stage modal picker to select a prior user turn, truncates the session to that point, and restores the user's original input; /redo restores the truncated messages if no new messages have been added since.
  • Introduces a new retry module (src/retry.rs) with RetryConfig (default: 3 attempts, 500ms–10s exponential backoff with jitter), with_retry, and retry_stream_chat helpers used across agent runner, advisor, ACP, and provider.
  • Propagates RetryConfig from Config.retry through all spawn_runner, run_print, spawn_btw, and run_subagent call sites; emits AgentEvent::Retrying { attempt, max } in the UI during backoff.
  • Adds YAML/YML config file support alongside TOML and JSON, updating load/save logic, documentation, and tests to prefer config.tomlconfig.yamlconfig.ymlconfig.json.
  • Risk: undo_last now calls session.rewind_to instead of session.truncate_to, making /undo reversible — existing behavior is preserved but the operation is now undoable via /redo.

Macroscope summarized 9d4fe39.

xavierforge and others added 10 commits June 28, 2026 21:53
Route /undo through a new Session::rewind_to, which records a single-step
restore point before truncating the conversation. /redo restores the last
rewind, and the restore point is dropped once the conversation moves
forward (add_message), so /redo only ever reverses the cut it follows.

This is the shared primitive a double-Esc rewind picker builds on next:
the only difference between /undo and a rewind-to-here is which length
they pass.
YAML is a superset of JSON and improves editability for users
(no braces, no trailing commas). Since serde_yaml_ng is in our
transitive dependencies anyway, supporting it does not increase
our footprint.
/rewind opens a two-level picker over earlier user turns. Pick one,
confirm with "Rewind and start from here", and the conversation rewinds
in place (via Session::rewind_to) with that turn loaded back into the
input box for editing.

Implemented as a slash command rather than a key binding so it does not
reserve Esc, which host TUIs may use for their own navigation.
feat: /rewind to an earlier turn and a reversible /undo
Retrying and ACP didn't talk to each other.
@pull pull Bot locked and limited conversation to collaborators Jun 28, 2026
@pull pull Bot added the ⤵️ pull label Jun 28, 2026
@pull pull Bot merged commit 9d4fe39 into lenylvt:main Jun 28, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants