sidebud 0.4.0 → 0.5.0

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
@@ -1,5 +1,75 @@
1
1
  # companion
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 0cf39d3: Settings can follow your Sidebud account across computers. Once this computer is signed in and the Sidebud site offers sync, **Settings → Sidebud account** (and setup's last step) asks whether to "Sync settings to my account", with a plain list of what syncs; nothing is uploaded until you confirm, and each part can be turned off under Advanced. Voice and alert choices, contacts, agent profiles, inline skills, your default agent, installed integrations, customized integrations, and built-in widgets sync. Keys, sign-ins, this computer's name, folders, and paths stay on the computer, and a value that looks like a key is never sent.
8
+
9
+ The companion checks your account every minute and sends changes as you make them; offline changes wait and are sent later. When two computers change the same setting, the account's value wins and Settings lists the other one with "Use this instead". Integrations from your account install turned off until you set them up here, and customized integrations that run their own code ask before they are installed on each computer. An agent profile whose app is not installed here shows what it needs. While sync is on, settings show where each value comes from (Account, This computer, or Default), and any value can be kept on this computer only. "Stop syncing" keeps your settings; "Delete account copy" removes the copy stored in your account.
10
+
11
+ - d567ace: Optional crash reports: a new **Send crash reports to Sidebud** switch in Setup and Settings (off by default) sends crash and error reports to Sidebud's Sentry, with prompts, transcripts, audio, message text, keys, tokens, and emails removed and the home folder hidden in file paths. It applies at once, stays on this computer (never synced), and is unavailable when running from source.
12
+ - 0509468: Keep Sidebud running without a terminal. On macOS, `sidebud service install` adds a login item that starts Sidebud now and whenever you log in, and starts it again if it crashes. `sidebud service status`, `restart`, and `uninstall` manage it. Setup's new last step, and **Settings**, offer **Start Sidebud when I log in**. Logs are in `~/.remote-voice-agent/logs/companion.log`.
13
+
14
+ Sidebud now checks npm once a day for a new version. Now and then during a call it asks whether to update now, once you're idle, or tonight after you go to bed, and it updates and restarts when you say so. That works with or without the login item, and your pairing, account, and settings carry over. The management page offers **Update now**, **When idle**, and **Tonight**. It never updates without you asking. Turn the check off with `"updates": { "check": false }` in config.json.
15
+
16
+ `sidebud uninstall` lists what it will remove, stops Sidebud and removes the login item, then asks before deleting your Sidebud data folder and keychain items. `--yes` deletes them without asking.
17
+
18
+ - cf12beb: Ready for Sidebud plans. Nothing changes until the Sidebud site turns its paywall on; until then everything works as before, with or without an account, and no plan appears anywhere.
19
+
20
+ Once the site sells plans, **Settings → Plan** has a **Manage plan** link that opens your plan page on the Sidebud site. Prices are only shown there.
21
+
22
+ Once the paywall is on, this computer needs you signed in to a Sidebud account with an active plan. First-run setup adds a **Sign in to Sidebud** step before pairing your phone. The computer checks your plan about once an hour and remembers the last answer, so a paid plan keeps working offline for up to three days. Without an active plan, calls, messages, new tasks, and account sync are paused, and a call in progress ends. The phone then says "Your Sidebud plan isn't active. Manage it on your computer." Settings, signing in and out, pairing, and your existing conversation and tasks keep working.
23
+
24
+ - c815d4e: You now choose who can reach this computer. Setup has a new **Network** step, and **Settings → Network** shows and changes the choice:
25
+
26
+ - **Only this computer and my tailnet**: phones connect over Tailscale, and other devices on your Wi-Fi can't reach Sidebud. A computer that hasn't chosen yet works this way.
27
+ - **This network (LAN)**: any phone on the same network can reach this computer, as before.
28
+
29
+ If Tailscale connects after Sidebud starts, Sidebud starts listening on it within a minute. A `listen.host` you already set in config.json keeps working.
30
+
31
+ Adding a widget now starts with **What it can control**: _Full control of this computer_ (red), _Can change things_, or _Reads only_. Below that it lists what the widget reaches (your files, messages, or home devices), how many tools change things, and whether a program runs on your computer as you. You see it in the widget library, on each widget's page, in Setup, on the phone, and on sidebud.app. Widgets that can control your whole computer, like agents apps, always ask first before they're added or turned on, including when your agent sets them up.
32
+
33
+ Security fixes from a review of the companion:
34
+
35
+ - Customized integrations from your account always ask before they run code or use this computer's keys.
36
+ - Integration settings that choose what runs, or where your keys are sent, stay on each computer instead of syncing.
37
+ - An update that changes an integration's code stays off on your other computers until you turn it on there.
38
+ - A removed phone stops receiving updates right away, and a phone can only remove itself.
39
+ - Integrations can't open non-web links, can't send this computer's environment to a remote server, and can't change the sign-in safeguards of their account connection.
40
+ - The Sidebud site address, and your TypeSafe key, are only ever used over https.
41
+
42
+ - 656705f: Integrations from the Sidebud widget library are now checked before they install. Each library release is signed by Sidebud, and the companion installs or updates one only when the signature and the files match; otherwise it refuses and says why. Integrations you export and import yourself work as before.
43
+
44
+ Updating an integration now shows what changes in what it can do (its tools, the addresses it reaches, keys, account access, and its own server code). When it would be able to do more, the management page asks you to accept the changes first; your execution agent and settings sync never accept them for you. An integration you changed on this computer, and every customized copy, is never overwritten by an update, and the version you had before is kept so you can roll back from the integration's page.
45
+
46
+ If Sidebud pulls a release from the library, computers that installed it turn it off, keep it off while it is pulled, and say so on the management page and in the phone's conversation.
47
+
48
+ ### Patch Changes
49
+
50
+ - e2433fa: Integrations find their app wherever it is installed. A pack can list where its app usually lives; the companion uses the first place that exists until you save a path yourself, and "Set up with my agent" has your agent find it on that computer (extracting it from a Linux AppImage if needed) and save it. T3 Agents now works on Linux this way, running its gateway with the companion's own Node.js. Saving a pack's settings page keeps a found path found (clear the field to go back to finding it), and file-path settings stay on each computer instead of following your account.
51
+ - ff3caa8: Installs and updates from the Sidebud widget library work: the companion now trusts the library's signing key.
52
+ - 16d76d5: The assistant no longer talks over itself in a call. When several things finish at once (jobs, work on your screen, agent threads, messages, reminders), it waits until nobody is speaking and the phone has finished playing the last reply. Then it says them together in one short summary, oldest first, instead of reading them one after another. A single update is still said on its own. Typed messages sent during a call also wait for that pause, and they go ahead of any waiting updates.
53
+
54
+ Talking over the assistant now stops everything it is playing right away. The phone stops playback as soon as it hears you, even when the voice provider hasn't noticed yet or has already finished generating the reply.
55
+
56
+ After you ask for something, a quick answer (about a second) is just the answer, with no "let me check" first. If it takes a little longer, she says a quick "One sec." or "Yup, I'll check." first. Work that goes to your execution agent gets a longer line, such as "Yeah, that'll need a second." or "Gimme a minute." Now and then it's a joke, like "Sure, let me do that along with solving relativity." The answer follows when it's ready.
57
+
58
+ If you cut off an update, a question for you in it is asked again. Other waiting results, failures, and messages are kept for the summary, and routine progress is dropped. With fast decisions (Jev) on, Jev decides which updates in a summary need their details. Without it, the summary still happens.
59
+
60
+ Update the phone app along with this release: phones now report when each reply finishes playing, and replies carry a turn id that older phone builds don't understand.
61
+
62
+ - b63ab1e: An agent update is spoken once. When two of an integration's rules noticed the same event (a T3 thread asking you a question), the assistant read the same update twice in a row.
63
+ - 168ef17: Calls feel like talking to one assistant. Each request gets one acknowledgement and one answer: when something moves from the screen to the execution agent, you no longer hear about it, only the outcome. The assistant reports what happened, not which part of Sidebud did it. Requests are decided on what the voice assistant relays (it understands you in any language and leaves out what it already did, such as stopping a task), so "stop that and have Jev switch to the YouTube tab" goes to the screen, and "open that chat" opens it directly.
64
+ - c498ef2: "Go to the YouTube tab and hit play" now works in the Chrome window on your screen. Before, Sidebud could read the tabs of a hidden Chrome running in the background (for example one started by a test tool) instead of yours, and then said it "could not find" the tab.
65
+
66
+ When an app refuses to show its window to other apps (macOS blocks this when it can no longer verify the running app, for example after the app's files were removed while it was open), Sidebud now reads that window from a screenshot on this computer. It switches Chrome tabs with Chrome's own tab search and can press Space to play or pause. When Accessibility access is missing, the message and the management page's **Computer use** section name the app that needs it (for example Terminal or T3 Agents).
67
+
68
+ - 910ee2a: "Switch to Chrome, go to YouTube and play the song" works when Chrome's tabs can't be read directly. Tab search now also finds a site the request names ("go to youtube.com" finds the open YouTube tab), waits for Chrome's search panel, and checks the real browser window rather than a small overlay window. Asking twice no longer starts two runs that both hand off.
69
+ - @remote-voice-agent/connectors@0.5.0
70
+ - @remote-voice-agent/protocol@0.5.0
71
+ - @remote-voice-agent/voice@0.5.0
72
+
3
73
  ## 0.4.0
4
74
 
5
75
  ### Minor Changes
package/README.md CHANGED
@@ -18,6 +18,41 @@ The first start opens setup in your browser:
18
18
 
19
19
  Keep the companion running while you use the app. Run `npx sidebud setup` or `npx sidebud manage` from another terminal to reopen the page.
20
20
 
21
+ ## Start at login (macOS)
22
+
23
+ To keep Sidebud running without a terminal window, install it and add the login item:
24
+
25
+ ```sh
26
+ npm i -g sidebud
27
+ sidebud service install
28
+ ```
29
+
30
+ This writes a per-user launchd agent (`~/Library/LaunchAgents/app.sidebud.companion.plist`) that starts Sidebud now and whenever you log in, and starts it again if it crashes. Logs go to `~/.remote-voice-agent/logs/companion.log`. Quit a companion running in a terminal first; `service install` refuses while one is running. Setup offers the same option as its last step.
31
+
32
+ | Command | What it does |
33
+ | --------------------------- | ------------------------------------------------------------------- |
34
+ | `sidebud service install` | Starts Sidebud now and at every login; run again to reload it |
35
+ | `sidebud service status` | Whether the login item is installed and running, and its log file |
36
+ | `sidebud service restart` | Restarts it, for example after an update |
37
+ | `sidebud service uninstall` | Stops Sidebud and removes the login item |
38
+
39
+ The login item runs the Node.js that installed it. After switching Node versions (for example with nvm), run `npm i -g sidebud` and `sidebud service install` again.
40
+
41
+ ## Updates
42
+
43
+ Once a day Sidebud asks npm for the latest version. When there is one, the management page shows **Update available**. Now and then during a call, Sidebud asks whether to update now or tonight while you sleep.
44
+
45
+ Sidebud updates itself when you say so: answer the call (now, when you're done, or tonight), or use **Update now**, **When idle**, or **Tonight** on the page. It installs the new version and restarts. It waits for the call and any running agent work unless you say now, and your paired phones, account, and settings carry over. Sidebud never updates without you asking. To turn the check off, set `"updates": { "check": false }` in `~/.remote-voice-agent/config.json`.
46
+
47
+ ## Uninstall
48
+
49
+ ```sh
50
+ sidebud uninstall
51
+ npm uninstall -g sidebud
52
+ ```
53
+
54
+ `sidebud uninstall` lists what it will remove, stops Sidebud and removes the login item, then asks before deleting your data folder (`~/.remote-voice-agent`: settings, conversations, tasks, paired phones, widget packs, and logs) and Sidebud's keychain items (service `remote-voice-agent`). `sidebud uninstall --yes` deletes everything listed without asking.
55
+
21
56
  ## Requirements
22
57
 
23
58
  - Node.js 22.13 or newer.
@@ -28,4 +63,6 @@ Keep the companion running while you use the app. Run `npx sidebud setup` or `np
28
63
 
29
64
  Provider keys, account tokens, and agent work stay on this computer. The management page listens on `127.0.0.1` only and requires a token from this computer.
30
65
 
66
+ Crash reports are off unless you turn them on (**Settings → Crash reports**, or the last step of Setup). When on, an error that stops Sidebud is sent to Sidebud with its stack trace and version. Prompts, transcripts, audio, messages, keys, tokens, and emails are removed first, and your home folder is hidden in file paths. Turn the switch off at any time and nothing more is sent.
67
+
31
68
  Run `npx sidebud help` for every command.