@leftoff/cli 0.9.17-beta.6 → 0.9.17-beta.8
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 +10 -0
- package/bin/leftoff.js +451 -446
- package/mod/.claude-plugin/plugin.json +1 -1
- package/mod/hooks/core.js +6 -1
- package/mod/hooks/register.js +1 -1
- package/package.json +1 -1
- package/ui/app.css +135 -6
- package/ui/app.js +131 -14
- package/ui/hosted-by.js +50 -0
- package/ui/live-view.js +1 -0
- package/ui/needs.js +66 -20
- package/ui/prs.js +53 -8
- package/ui/relay-client.js +96 -6
- package/ui/scroll-keep.js +247 -0
- package/ui/walk-pop.js +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
What changed in Leftoff (called Checkpoints until 0.4.5), newest first. The board's **What's new** page and `leftoff changelog` both read this file.
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
|
+
|
|
7
|
+
- **“Away” never claims more than a session’s age.** A session that started while you were away still reads at full depth, but its Catch me up label now says how long it really went unseen (a 30-minute-old session said “Away 12h”).
|
|
8
|
+
|
|
9
|
+
- **Choose which machine hosts your board, and it fails over on its own.** Settings → Use from anywhere → Hosted by lists your machines (● online / ○ offline), marks the host, and has Make host and a Preferred choice (or Automatic); `leftoff relay host [name|auto]` does the same and `leftoff relay status` shows it. The relay keeps the host while it’s online (a machine reconnecting after an upgrade no longer takes the board), prefers a Mac that can open your paired browsers’ keys, hands the board to another online machine when the host’s lid closes (about 25 s, was 75), and gives it back to your preferred host 10 s after it returns. The reconnecting screen says which machine is out, switches, and offers “Use nightblood instead” when several are online. Needs the relay update for the host choice; phones stay paired.
|
|
10
|
+
- **Choose which machine hosts your board, and it fails over on its own.** Settings → Use from anywhere → Hosted by lists your machines (● online / ○ offline), marks the host, and has Make host and a Preferred choice (or Automatic); `leftoff relay host [name|auto]` does the same and `leftoff relay status` shows it. The relay keeps the host while it’s online (a machine reconnecting after an upgrade no longer takes the board), prefers a Mac that can open your paired browsers’ keys, hands the board to another online machine when the host’s lid closes (about 25 s, was 75), and gives it back to your preferred host 10 s after it returns. The reconnecting screen says which machine is out, switches, and offers “Use laptop instead” when several are online. Needs the relay update for the host choice; phones stay paired.
|
|
11
|
+
- **A Needs-you reply shows as your words.** Claude Code wraps a prompt the plugin sends between turns as “The leftoff plugin sent a message: … Address the message above.”; the thread, titles and previews now show only what you typed (“You · from Needs you”).
|
|
12
|
+
- **PRs named as `repo#123`, even from a sandbox with no git remote.** When Claude writes a session's PRs as `api#574` or `acme/web#12` (in its words or yours), or suggests a `gh pr edit 574` to run on another machine, they link: a bare repo name is matched against the GitHub repos your other sessions use (never a guess when two orgs share the name), and whichever machine has gh signed in checks each one, so a session in a sandbox without git remote or gh still shows its PRs. A session can list PRs from several repos. Merged and closed PRs show too, each with an icon and its word (Open, Draft, Merged, Closed). A reference that can't be checked yet shows as a quiet “api#574 · not checked” chip that says why. An issue number never shows as a PR. After updating, run `leftoff restart`.
|
|
13
|
+
- **Needs you on a phone, better suggestions, your own words in the thread.** In full screen on a phone, Needs you no longer covers the message you're answering: it takes at most 45% of what you can see with the keyboard up (it measured the whole screen before, so the keyboard squeezed the thread to a sliver), leaves the question and Claude's last lines to the thread right above it, folds to a one-line bar, and the thread keeps its end in view. Suggested replies are now the question's own choices word for word (a numbered menu, "A, B, or C?", "X, or Y?"), or Yes / No for a yes/no question, and none at all for an open question; the old fallback ("Yes, go ahead" / "No" / "Show me the diff first") is gone, and the composer's suggestion is no longer made up when the question offers choices or asks something only you know. A reply sent from Needs you shows in the thread as what you typed, "You · from Needs you", whatever form the session's transcript gave it. On a touch screen the composer's suggestion is a "↳ Use suggestion" chip above the box (a tap puts it in the box to edit; ⌄ or a long-press shows all of it; ✕ dismisses it); with a mouse, Tab still takes it, the Tab key stays visible, and a long one has ⋯ with all of it in its tip.
|
|
14
|
+
- **Nothing jumps back to the top anymore.** A background update (any session changing, on this Mac or another) redrew the page and reset whatever you had scrolled, most visibly the session panel on the right (checkpoints, what it did, to-dos, PRs) and the phone's session sheet. Now the board keeps every scroll box where you left it through any redraw, along with your focus, the caret in a field and a section you opened. It does this everywhere at once, not panel by panel. The chat still follows new replies when you're at the bottom, and opening another session still starts it fresh.
|
|
15
|
+
- **A tidier session panel head, and PRs a session worked on from main.** The panel's head is one row: hide ›, the title (two lines at most, the whole title on hover), then ✎ Rename and ⋯ lined up with its first line; Regenerate title moved into the ⋯. A session now links the PR named in its title ("Fix PR 428 …"), a PR number in your messages, one it checked out or worked on with gh, one whose branch it pushed to, or one that holds its commits, even when it ran on main. With none, the PRs section says why in one line, with Link a PR….
|
|
6
16
|
- **Walkthrough: file status, standard diff colours, steadier scrolling.** Files show added, modified, deleted or renamed as GitHub-style square icons (+, dot, −, arrow) with the word in a tip. Diffs use GitHub's green and red everywhere, a step stronger in the line numbers. In Files, the file list and the diff scroll separately (on a phone the list folds above the diff). A slide no longer jumps back to the top when the session updates in the background, and the slides / one-page button has a tip.
|
|
7
17
|
- **The left nav on every screen.** The sidebar no longer steps aside in full screen: it stays beside a session, the walkthrough, Settings and PRs, so there's no detour through Board. Its button at the bottom (or ⌘B, Ctrl+B off a Mac, or [ when you're not typing) collapses it to a slim rail of icons, each with its name on hover, and expands it again; it's remembered on this device and opening a session never changes it. The current page is marked by a filled pill and a bar, not colour alone. When the window is too narrow, or the session panel leaves the chat too little room, it collapses for that view and comes back when there's room, without changing your choice. On a phone, ☰ in full screen's bar opens the nav as a drawer (close it with the scrim, Esc, a swipe left or by picking a page); in a Home Screen app or a browser other than Safari, a swipe in from the left edge opens it too (Safari keeps that edge for Back). Reload the board after updating.
|
|
8
18
|
- **The downloaded walkthrough shows its code again.** In the .html slideshow, the hidden slide switches shared a style with the diff lines, so every code line was hidden and slides showed only their notes.
|