Skip to content

[WIP] feat: session sidebar with edit history#39

Draft
cachebag wants to merge 4 commits into
masterfrom
sidebar
Draft

[WIP] feat: session sidebar with edit history#39
cachebag wants to merge 4 commits into
masterfrom
sidebar

Conversation

@cachebag

@cachebag cachebag commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Up/Down history recall edited the buffer inside an expr mapping, which Vim forbids (E565: Not allowed to change text). Schedule the swap with vim.schedule so it runs outside expr evaluation.

image image

[WIP]

Up/Down history recall edited the buffer inside an expr mapping, which
Vim forbids (E565: Not allowed to change text). Schedule the swap with
vim.schedule so it runs outside expr evaluation.
@cachebag cachebag self-assigned this Jul 21, 2026
cachebag added 3 commits July 20, 2026 23:25
Add a session log that records every prompt and its per-file hunk
outcomes, surfaced in an interactive sidebar (:JumpySidebar / <leader>s):
jump to, accept/reject, and reprompt hunks from one panel. Position and
width are configurable so it can sit opposite a file tree.

Sessions are saved per project root under stdpath("data")/jumpy/sessions
(debounced writes + VimLeavePre flush) and reopened read-only via
:JumpySessions.

- session.lua: prompt/result log, supersede-on-new-proposal, status counts
- persist.lua: JSON save/load/list, bufnr stripped, per-root isolation
- navigate/prompt: record outcomes; add navigate.jump_to_hunk
- tests: session + persist specs
- docs: condense README, move contributing guide to CONTRIBUTING.md
Both surfaced while testing the session sidebar end to end:

- loading: collapse newlines before rendering the single-line float, so
  multi-line error messages no longer crash nvim_buf_set_lines
  ("replacement string item contains newlines")
- llm: pass a `--` end-of-options separator before the Claude Code prompt
  so multi-file payloads (which begin with "--- FILE: ...") are not parsed
  as CLI options ("unknown option --- FILE: ...")
Multi-file payloads listed all tagged files without indicating which
buffer the request came from, so relative references like "in this file"
had no referent and the model defaulted to whichever file was named
explicitly. Add a "current file" hint line naming primary_path before the
instruction, leaving the FILE headers verbatim so SEARCH paths still
match during patch application.
@cachebag cachebag changed the title [WIP] feat: sidebar [WIP] feat: session sidebar with edit history Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant