@leftoff/cli 0.9.18-beta.3 → 0.9.18-beta.5

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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,11 @@ What changed in Leftoff (called Checkpoints until 0.4.5), newest first. The boar
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ - **Let me answer prompts here.** When Claude Code's Security default skips Leftoff's hooks, the session's note now has a **Let me answer prompts here** button, and `leftoff doctor --fix` says the same. Both show the managed-settings lines that seat Leftoff after the Security default, with Copy: enable it, list it in appendPlugins and declare its marketplace. They also show the file the lines go in and who can write it (your admin, or you with sudo on your own Mac). Leftoff never writes managed settings. Earlier betas' doctor said to add `"appendPlugins": ["leftoff@checkpoints"]` to ~/.claude/settings.json instead. That doesn't work: Claude Code ignores the key there whenever the Security default is seated. `leftoff doctor --unfix` (or **Remove the ignored entry**) takes out just Leftoff's entry, after showing the diff and asking (default No), with a backup in ~/.config/checkpoints/backups. It never runs on a managed Mac. Once managed settings list Leftoff, a session that started before shows a quiet “restart Claude Code to apply” until its hooks arrive.
8
+ - **Needs you and turn ends work when another plugin takes Claude Code's hooks first.** On a Team or Enterprise plan, or a Mac with managed Claude Code settings, Claude Code 2.1.31x runs its built-in “cc-plugin-sec-default” ahead of the plugins you installed, and it sends every classic hook event (Stop, PermissionRequest, Notification, your prompt, SessionStart) on past them, so Leftoff's hooks never ran (“leftoff: its classic.Stop hook was skipped …”). A permission prompt now shows as Needs you anyway: the mod reads it from Claude Code's permission check, which still reaches it, and Needs you ends when the tool runs or the turn does (answer it in the terminal; the board can't answer it in this setup). Turn ends come from the mod and the transcript as before. The session's header note now says which hooks were skipped and why (“Stop and PermissionRequest skipped: cc-plugin-sec-default runs first”, the rest in its tip), and `leftoff doctor` names any plugin set to run ahead of Leftoff and the fix.
9
+ - **A finished turn stops spinning within seconds.** When Claude Code's end-of-turn signal never reached Leftoff, a session kept its spinner (“active”) until the whole dormancy window passed, and some never stopped at all. Now any Claude Code session (a board terminal, My terminal app, Live, the hooks, a headless one whose process is gone) settles about 20 seconds after its transcript goes still with Claude's answer last, or within seconds when the transcript itself marks the end; a tool call still running, a permission prompt or a queued message keeps it working or Needs you. It also reads turns Claude Code ends on a tool result, answers through the Live reply tool, and messages pulled back out of the queue, which used to keep a session “working” forever. The mod now reports a turn's end itself when no Stop follows it, a late Stop never counts a turn twice, and a terminal Leftoff opens for a daemon on its own folder reports to that folder. A session whose turns arrive but none of Claude Code's own hook events do now says so: one line in the daemon log, and a quiet “hooks not reporting” note beside its pills.
10
+ - **Fix: a file two walkthrough steps share shows its diff in both.** When two steps named exactly the same lines (a new test file cited by “Pin the bug” and again by the next step), they got one step id, so the board drew that file's diff into the later step only and left the first step's row open and empty; Mark reviewed on one also marked the other. Every step now has its own id (walkthroughs kept from before are mended when they load). The first step shows the file open; a later step that shows exactly the same lines folds it with a quiet “Also in step 1” that goes back there, and opens to the same diff. When steps point at different lines of one file, each step marks its own lines (“Lines 12–30 for this step”) and the rest steps back. A test file a step names now starts open even when some of its lines sit in Tests updated to match. Any changed lines no step names still land under Other changes.
11
+
7
12
  - **This session · Whole folder.** The walkthrough's Files view, What it did and Ask about this change now cover only what the session changed, like the walkthrough, with a toggle that shows the counts on both sides (“This session 4 · Whole folder 24”). Whole folder marks each file that isn't the session's “not from this session”; switching marks the story out of date (Update writes it again) and never runs a model on its own. Ask says which scope it drafted from, and the choice is kept on this device.
8
13
 
9
14
  - **Walk me through it covers only what the session changed.** A session started in a repo with uncommitted or untracked files counted them as its own (a new session read “20 files” before its first prompt). Leftoff now notes what was already changed as a session starts, on this Mac only, and the walkthrough and its count leave those files out; a file the session edited on top of earlier changes shows only its own change. A session with no turns yet shows no count, and one from before this update counts only the files it edited plus its commits, with a note saying so. Each repo of a multi-repo session gets the same rule.