@leftoff/cli 0.9.18-beta.11 → 0.9.18-beta.13
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 +6 -0
- package/bin/leftoff.js +600 -591
- package/mod/.claude-plugin/plugin.json +1 -1
- package/mod/hooks/core.js +3 -2
- package/mod/hooks/register.js +1 -1
- package/package.json +1 -1
- package/ui/app.css +34 -2
- package/ui/app.js +141 -35
- package/ui/live-wake.js +47 -0
- package/ui/prs.js +28 -10
- package/ui/pull.js +16 -2
- package/ui/relay-client.js +2 -0
- package/ui/semdiff.js +20 -6
- package/ui/subagents-view.js +41 -0
- package/ui/viewport-fit.js +27 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,13 @@ What changed in Leftoff (called Checkpoints until 0.4.5), newest first. The boar
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
- **The reply box clears the iPhone keyboard's bar.** With the session sheet out of the way, the reply box could still sit behind the keyboard's ^ v ✓ bar with only its top edge showing. Since iOS 26 that bar floats over the page and the size iOS reports for what you can see runs down behind it, so on an iPhone or iPad with Safari 26 or later full screen now keeps room for the bar while the keyboard is up. It also follows the keyboard frame by frame for a second after the box takes focus and after each change iOS reports, so a late or silent last step is caught. Other phones and desktop browsers are unchanged.
|
|
8
|
+
- **`leftoff https on` turns on https://leftoff.localhost by itself.** On a machine that already runs Leftoff, you no longer go back through all of `leftoff setup` to add it. `leftoff https off` turns it off, and `leftoff https` says whether it's on and what's left to do. Run `leftoff upgrade --beta` to get it.
|
|
9
|
+
- **Walk me through any one PR.** When a session opened several PRs, each one now has its own range in Walk me through it. Up to two show as chips; with more, one PRs chip opens a list with each PR's state. A PR's walkthrough reads only that PR's own commits, whatever branch the folder has checked out. If its branch is checked out somewhere, uncommitted work counts too. When the branch isn't on this Mac, or the PR is merged, it reads GitHub's diff with `gh pr diff`. Each PR row in the session panel and on the PRs page has one Open button that asks where: Walk me through it in Leftoff, or GitHub. Test plans use each PR's own walkthrough as well. An opened PR's details in the session panel now use the panel's full width. Needs `leftoff restart`, then reload the board.
|
|
7
10
|
- **Slash commands from the board.** Type / in a session's message box and pick a command: /model, /effort, /compact, /clear, /context or /usage. /model and /effort then list their choices. The command runs in the session, and its bubble shows what Claude Code printed. In a session Leftoff runs, /model and /effort apply to that session only. In a session in your own terminal they're greyed out, because there Claude Code also saves them as your default for new sessions. Run them in that terminal instead. Needs `leftoff restart`, then `leftoff upgrade --beta` and a restart of Claude Code for terminal sessions.
|
|
11
|
+
- **Subagents show as working.** While a subagent works, the session's own conversation goes quiet (the subagent writes to its own file), so the board could look idle, and a turn that launched a background agent was settled as done. Now the session's status reads "2 subagents working" (with a tip naming them), Live shows a line with what the newest one is doing ("Bash: pnpm test") and how long ago, and the status stays working until the subagents finish. Read from Claude Code's own files; an agent silent for 20 minutes is taken as gone so nothing sticks on working.
|
|
12
|
+
- **The board catches up when you come back to it.** On a phone, a board left open in the background could show old sessions and an old Live thread when you returned: iOS cuts the live-update connection while the app is frozen without saying so, the board trusted that connection if its last check-in was under half a minute old, a refresh already in flight when the app froze held new ones back, and a redraw skipped while you had a draft was never made. Now coming back (or the board noticing it was frozen, even when the phone doesn't say so) opens a fresh connection, reads the session list, the open session and Live again, and shows a quiet "Updated" when something changed. A lost stretch of updates (the Mac restarted, another Mac took over, or more happened than it keeps) also reads the board again.
|
|
13
|
+
- **Pull to refresh from the top bar.** On a phone, pulling down on the top row, a session's head or the Live box's head now refreshes wherever the page or the chat is scrolled to, so you no longer scroll a long thread all the way up first. Fields, menus, sideways scrollers and the session sheet still never start a pull.
|
|
8
14
|
- **Decisions you already made don't wait for a second yes.** A question you answered in the session, or a plan you approved, now goes into the decision log as Accepted, marked "automatically", with a Reject next to it. If you answer the same question differently later in the session, the earlier answer is rejected on its own. A one-off choice about the task in front of you (who does a step, whether to push now) isn't recorded at all. The agent's own trade-offs and corrections still wait for you, and so does an answer that would change a decision you accepted before. Your own Accept or Reject is never overridden. Needs `leftoff restart` and `leftoff upgrade --beta`.
|
|
9
15
|
- **https://leftoff.localhost works next to another app's Caddy.** When port 443 already belongs to another Caddy (one serving another app's https://<name>.localhost, say), `leftoff setup` no longer stops at "Something else is using port 443". It writes Leftoff's site to a file and gives you the one `import` line to add to that Caddy's Caddyfile, with the reload command. The daemon then runs no Caddy of its own, and you don't need Caddy installed yourself. When something else holds the port, setup and `leftoff doctor` now name it ("Tailscale (pid 1689)"), and macOS no longer gets a Linux-only fix. Needs `leftoff restart`, then `leftoff setup`.
|
|
10
16
|
- **Tab titles get the room.** A tab's status shape (spinner, !, dot) now sits where its × is, and the × comes back when you point at the tab. The words "Working", "Needs you" and the rest moved to the tab's tip. With many tabs open, the one you're on keeps its full width, the others stay readable and the strip scrolls with a fade where more tabs continue, and a pinned tab shrinks to its pin and status. Reload the board.
|