wherdr 2.3.0 → 2.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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/1gzTzt3j.js +9 -0
- package/.output/public/_nuxt/1gzTzt3j.js.br +0 -0
- package/.output/public/_nuxt/1gzTzt3j.js.gz +0 -0
- package/.output/public/_nuxt/AgentView.B6zltno1.css +1 -0
- package/.output/public/_nuxt/AgentView.B6zltno1.css.br +0 -0
- package/.output/public/_nuxt/AgentView.B6zltno1.css.gz +0 -0
- package/.output/public/_nuxt/{DN2uhp8-.js → Bd0Z2zzq.js} +1 -1
- package/.output/public/_nuxt/BdJIc1Xf.js +1 -0
- package/.output/public/_nuxt/BdJIc1Xf.js.br +0 -0
- package/.output/public/_nuxt/BdJIc1Xf.js.gz +0 -0
- package/.output/public/_nuxt/BrxmYJEM.js +1 -0
- package/.output/public/_nuxt/BrxmYJEM.js.br +0 -0
- package/.output/public/_nuxt/BrxmYJEM.js.gz +0 -0
- package/.output/public/_nuxt/C6fXOTRV.js +3 -0
- package/.output/public/_nuxt/C6fXOTRV.js.br +0 -0
- package/.output/public/_nuxt/C6fXOTRV.js.gz +0 -0
- package/.output/public/_nuxt/{BqaV2jLN.js → CXbAL3Yu.js} +43 -42
- package/.output/public/_nuxt/CXbAL3Yu.js.br +0 -0
- package/.output/public/_nuxt/CXbAL3Yu.js.gz +0 -0
- package/.output/public/_nuxt/Cf1C5Vkb.js +27 -0
- package/.output/public/_nuxt/Cf1C5Vkb.js.br +0 -0
- package/.output/public/_nuxt/Cf1C5Vkb.js.gz +0 -0
- package/.output/public/_nuxt/CgUSTIM1.js +1 -0
- package/.output/public/_nuxt/CgUSTIM1.js.br +0 -0
- package/.output/public/_nuxt/CgUSTIM1.js.gz +0 -0
- package/.output/public/_nuxt/CmTpxyM2.js +62 -0
- package/.output/public/_nuxt/CmTpxyM2.js.br +0 -0
- package/.output/public/_nuxt/CmTpxyM2.js.gz +0 -0
- package/.output/public/_nuxt/DMzjoyW_.js +1 -0
- package/.output/public/_nuxt/DMzjoyW_.js.br +0 -0
- package/.output/public/_nuxt/DMzjoyW_.js.gz +0 -0
- package/.output/public/_nuxt/{B2KlcBQ-.js → DOVT2Tt8.js} +1 -1
- package/.output/public/_nuxt/DOVT2Tt8.js.br +0 -0
- package/.output/public/_nuxt/{B2KlcBQ-.js.gz → DOVT2Tt8.js.gz} +0 -0
- package/.output/public/_nuxt/PjGJWal8.js +23 -0
- package/.output/public/_nuxt/PjGJWal8.js.br +0 -0
- package/.output/public/_nuxt/PjGJWal8.js.gz +0 -0
- package/.output/public/_nuxt/WPcHpWhL.js +31 -0
- package/.output/public/_nuxt/WPcHpWhL.js.br +0 -0
- package/.output/public/_nuxt/WPcHpWhL.js.gz +0 -0
- package/.output/public/_nuxt/{board.CeTYM1XN.css → board.CpFnG_Ho.css} +1 -1
- package/.output/public/_nuxt/board.CpFnG_Ho.css.br +0 -0
- package/.output/public/_nuxt/{board.CeTYM1XN.css.gz → board.CpFnG_Ho.css.gz} +0 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/d4aab09d-c1c4-4743-b8aa-35541006e853.json +1 -0
- package/.output/public/_nuxt/entry.DosS87kQ.css +2 -0
- package/.output/public/_nuxt/entry.DosS87kQ.css.br +0 -0
- package/.output/public/_nuxt/entry.DosS87kQ.css.gz +0 -0
- package/.output/public/_nuxt/nfsDZG4P.js +123 -0
- package/.output/public/_nuxt/nfsDZG4P.js.br +0 -0
- package/.output/public/_nuxt/nfsDZG4P.js.gz +0 -0
- package/.output/public/_nuxt/qODuBH5E.js +1 -0
- package/.output/public/_nuxt/{settings.Cdb21nNw.css → settings.ycbeituV.css} +1 -1
- package/.output/public/_nuxt/settings.ycbeituV.css.br +0 -0
- package/.output/public/_nuxt/settings.ycbeituV.css.gz +0 -0
- package/.output/public/_nuxt/tYQOxjM1.js +1 -0
- package/.output/public/_nuxt/tYQOxjM1.js.br +0 -0
- package/.output/public/_nuxt/tYQOxjM1.js.gz +0 -0
- package/.output/public/sw.js +1 -1
- package/.output/server/chunks/_/branding.mjs +1 -1
- package/.output/server/chunks/_/fileDownload.mjs +1 -1
- package/.output/server/chunks/_/machineOrder.mjs +1 -1
- package/.output/server/chunks/_/onboarding.mjs +1 -1
- package/.output/server/chunks/_/package.mjs +1 -1
- package/.output/server/chunks/_/plugins.mjs +1 -1
- package/.output/server/chunks/_/restart.mjs +1 -1
- package/.output/server/chunks/_/selfupdate.mjs +1 -1
- package/.output/server/chunks/_/splitShell.mjs +42 -0
- package/.output/server/chunks/_/updates.mjs +18 -5
- package/.output/server/chunks/_/worktrees.mjs +1 -1
- package/.output/server/chunks/_/ws.mjs +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +6946 -6412
- package/.output/server/chunks/raw/check-leaks.mjs +1 -1
- package/.output/server/chunks/raw/ci-browser-plan.mjs +5 -0
- package/.output/server/chunks/raw/engine-changes.mjs +5 -0
- package/.output/server/chunks/raw/engine-result.mjs +7 -0
- package/.output/server/chunks/raw/install-claude-statusline.mjs +1 -1
- package/.output/server/chunks/raw/prerelease.mjs +1 -1
- package/.output/server/chunks/raw/test-affected.mjs +1 -1
- package/.output/server/chunks/routes/api/_..._.mjs +3 -3
- package/.output/server/chunks/routes/api/agents.post.mjs +3 -3
- package/.output/server/chunks/routes/api/ask-tab.post.mjs +3 -3
- package/.output/server/chunks/routes/api/attach.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/disable.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/lock-all.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/lock.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/login/options.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/login/verify.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/max-session.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/register/options.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/register/verify.post.mjs +3 -3
- package/.output/server/chunks/routes/api/auth/status.get.mjs +3 -3
- package/.output/server/chunks/routes/api/changes.get.mjs +3 -3
- package/.output/server/chunks/routes/api/chat/image.get.mjs +3 -3
- package/.output/server/chunks/routes/api/chat.get.mjs +3 -3
- package/.output/server/chunks/routes/api/choose.post.mjs +3 -3
- package/.output/server/chunks/routes/api/claude-setup.post.mjs +3 -3
- package/.output/server/chunks/routes/api/claude-statusline.post.mjs +3 -3
- package/.output/server/chunks/routes/api/clear-queued-input.post.mjs +3 -3
- package/.output/server/chunks/routes/api/close/status.get.mjs +3 -3
- package/.output/server/chunks/routes/api/close-preview.get.mjs +62 -0
- package/.output/server/chunks/routes/api/close.post.mjs +3 -3
- package/.output/server/chunks/routes/api/codex-update.post.mjs +4 -4
- package/.output/server/chunks/routes/api/commands.get.mjs +4 -4
- package/.output/server/chunks/routes/api/config.get.mjs +4 -4
- package/.output/server/chunks/routes/api/dirs.get.mjs +4 -4
- package/.output/server/chunks/routes/api/dismiss-stopped.post.mjs +4 -4
- package/.output/server/chunks/routes/api/dismiss.post.mjs +4 -4
- package/.output/server/chunks/routes/api/effort.post.mjs +4 -4
- package/.output/server/chunks/routes/api/efforts.get.mjs +4 -4
- package/.output/server/chunks/routes/api/file.post.mjs +4 -4
- package/.output/server/chunks/routes/api/files/download.get.mjs +3 -3
- package/.output/server/chunks/routes/api/files/download.head.mjs +3 -3
- package/.output/server/chunks/routes/api/files/read.get.mjs +3 -3
- package/.output/server/chunks/routes/api/files.get.mjs +3 -3
- package/.output/server/chunks/routes/api/health.get.mjs +3 -3
- package/.output/server/chunks/routes/api/input.post.mjs +4 -4
- package/.output/server/chunks/routes/api/interrupt.post.mjs +4 -4
- package/.output/server/chunks/routes/api/isgit.get.mjs +4 -4
- package/.output/server/chunks/routes/api/machine/awake.get.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/awake.post.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/order.get.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/order.post.mjs +3 -3
- package/.output/server/chunks/routes/api/machine/reconnect.post.mjs +4 -4
- package/.output/server/chunks/routes/api/machine/rename.post.mjs +4 -4
- package/.output/server/chunks/routes/api/machine/status.post.mjs +4 -4
- package/.output/server/chunks/routes/api/menu-left.post.mjs +4 -4
- package/.output/server/chunks/routes/api/menu.post.mjs +4 -4
- package/.output/server/chunks/routes/api/model.post.mjs +4 -4
- package/.output/server/chunks/routes/api/models.get.mjs +4 -4
- package/.output/server/chunks/routes/api/nav.post.mjs +4 -4
- package/.output/server/chunks/routes/api/onboarding.get.mjs +3 -3
- package/.output/server/chunks/routes/api/onboarding.post.mjs +3 -3
- package/.output/server/chunks/routes/api/phone.get.mjs +4 -4
- package/.output/server/chunks/routes/api/phone.post.mjs +4 -4
- package/.output/server/chunks/routes/api/plugins/actions.get.mjs +3 -3
- package/.output/server/chunks/routes/api/plugins/invoke.post.mjs +3 -3
- package/.output/server/chunks/routes/api/plugins/projects.get.mjs +4 -4
- package/.output/server/chunks/routes/api/plugins/projects.post.mjs +4 -4
- package/.output/server/chunks/routes/api/prompt.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/devices.post.mjs +49 -0
- package/.output/server/chunks/routes/api/push/quiet.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/subscribe.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/test.post.mjs +4 -4
- package/.output/server/chunks/routes/api/push/unsubscribe.post.mjs +4 -4
- package/.output/server/chunks/routes/api/quotas.get.mjs +4 -4
- package/.output/server/chunks/routes/api/rename.post.mjs +3 -3
- package/.output/server/chunks/routes/api/requeue.post.mjs +4 -4
- package/.output/server/chunks/routes/api/restart.get.mjs +3 -3
- package/.output/server/chunks/routes/api/restart.post.mjs +3 -3
- package/.output/server/chunks/routes/api/reveal.post.mjs +4 -4
- package/.output/server/chunks/routes/api/screen-key.post.mjs +4 -4
- package/.output/server/chunks/routes/api/screen.get.mjs +4 -4
- package/.output/server/chunks/routes/api/search.get.mjs +58 -5
- package/.output/server/chunks/routes/api/seen.post.mjs +4 -4
- package/.output/server/chunks/routes/api/send-now.post.mjs +53 -0
- package/.output/server/chunks/routes/api/sessions.get.mjs +4 -4
- package/.output/server/chunks/routes/api/sessions.post.mjs +4 -4
- package/.output/server/chunks/routes/api/settings-tab.post.mjs +4 -4
- package/.output/server/chunks/routes/api/settings.get.mjs +4 -4
- package/.output/server/chunks/routes/api/settings.post.mjs +4 -4
- package/.output/server/chunks/routes/api/space.post.mjs +4 -4
- package/.output/server/chunks/routes/api/split-command.post.mjs +122 -0
- package/.output/server/chunks/routes/api/state.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/action.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/add.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/after.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/approve.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/archive-done.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/archived.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/autopilot.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/autopilot.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/board-settings.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/board-settings.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/coordinator.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/coordinator.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/describe.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/details.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/limit.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/links.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/models.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/pick.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/project.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/project.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/question.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/scheduled.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/settings.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/start.get.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks/tell.post.mjs +4 -4
- package/.output/server/chunks/routes/api/tasks.get.mjs +4 -4
- package/.output/server/chunks/routes/api/unqueue.post.mjs +4 -4
- package/.output/server/chunks/routes/api/update/status.get.mjs +3 -3
- package/.output/server/chunks/routes/api/update.get.mjs +3 -3
- package/.output/server/chunks/routes/api/update.post.mjs +3 -3
- package/.output/server/chunks/routes/api/upload.post.mjs +4 -4
- package/.output/server/chunks/routes/api/worktrees/remove.post.mjs +3 -3
- package/.output/server/chunks/routes/api/worktrees.get.mjs +3 -3
- package/.output/server/chunks/routes/favicon.ico.get.mjs +3 -3
- package/.output/server/chunks/routes/icons/_name_.get.mjs +4 -4
- package/.output/server/chunks/routes/renderer.mjs +5 -5
- package/.output/server/chunks/routes/uploads/_...name_.get.mjs +4 -4
- package/.output/server/chunks/routes/ws/_..._.mjs +4 -4
- package/.output/server/chunks/routes/ws/events.mjs +8 -4
- package/.output/server/chunks/routes/ws/term.mjs +4 -4
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +4 -4
- package/.output/server/package.json +1 -1
- package/docs/README.md +5 -0
- package/docs/RELEASING.md +27 -5
- package/docs/board.md +8 -1
- package/docs/configuration.md +3 -4
- package/docs/conversation.md +2 -3
- package/docs/design.md +112 -0
- package/docs/devices.md +33 -0
- package/docs/herdr-projects-1x.md +28 -0
- package/docs/home.md +9 -0
- package/docs/installation.md +12 -0
- package/docs/notifications.md +7 -0
- package/docs/quotas.md +13 -1
- package/docs/release-notes-2.4.0.md +37 -0
- package/docs/release-notes-2.5.0.md +25 -0
- package/docs/security.md +7 -0
- package/package.json +1 -1
- package/skills/wherdr/SKILL.md +21 -0
- package/.output/public/_nuxt/30nuHmZs.js +0 -1
- package/.output/public/_nuxt/30nuHmZs.js.br +0 -0
- package/.output/public/_nuxt/30nuHmZs.js.gz +0 -0
- package/.output/public/_nuxt/AgentView.CfD2RWZY.css +0 -1
- package/.output/public/_nuxt/AgentView.CfD2RWZY.css.br +0 -0
- package/.output/public/_nuxt/AgentView.CfD2RWZY.css.gz +0 -0
- package/.output/public/_nuxt/B2KlcBQ-.js.br +0 -0
- package/.output/public/_nuxt/BF2qZ0lx.js +0 -31
- package/.output/public/_nuxt/BF2qZ0lx.js.br +0 -0
- package/.output/public/_nuxt/BF2qZ0lx.js.gz +0 -0
- package/.output/public/_nuxt/BU6Ihnb9.js +0 -62
- package/.output/public/_nuxt/BU6Ihnb9.js.br +0 -0
- package/.output/public/_nuxt/BU6Ihnb9.js.gz +0 -0
- package/.output/public/_nuxt/BmF5BXwf.js +0 -23
- package/.output/public/_nuxt/BmF5BXwf.js.br +0 -0
- package/.output/public/_nuxt/BmF5BXwf.js.gz +0 -0
- package/.output/public/_nuxt/BqaV2jLN.js.br +0 -0
- package/.output/public/_nuxt/BqaV2jLN.js.gz +0 -0
- package/.output/public/_nuxt/C_pXkozx.js +0 -1
- package/.output/public/_nuxt/C_pXkozx.js.br +0 -0
- package/.output/public/_nuxt/C_pXkozx.js.gz +0 -0
- package/.output/public/_nuxt/Cq1IlvFx.js +0 -3
- package/.output/public/_nuxt/Cq1IlvFx.js.br +0 -0
- package/.output/public/_nuxt/Cq1IlvFx.js.gz +0 -0
- package/.output/public/_nuxt/DNk1pHah.js +0 -1
- package/.output/public/_nuxt/DNk1pHah.js.br +0 -0
- package/.output/public/_nuxt/DNk1pHah.js.gz +0 -0
- package/.output/public/_nuxt/DcQrp3bD.js +0 -25
- package/.output/public/_nuxt/DcQrp3bD.js.br +0 -0
- package/.output/public/_nuxt/DcQrp3bD.js.gz +0 -0
- package/.output/public/_nuxt/I_R_EgeO.js +0 -1
- package/.output/public/_nuxt/L_vgVKcG.js +0 -105
- package/.output/public/_nuxt/L_vgVKcG.js.br +0 -0
- package/.output/public/_nuxt/L_vgVKcG.js.gz +0 -0
- package/.output/public/_nuxt/RI4B_b2M.js +0 -9
- package/.output/public/_nuxt/RI4B_b2M.js.br +0 -0
- package/.output/public/_nuxt/RI4B_b2M.js.gz +0 -0
- package/.output/public/_nuxt/Y-4S7Nuf.js +0 -1
- package/.output/public/_nuxt/Y-4S7Nuf.js.br +0 -0
- package/.output/public/_nuxt/Y-4S7Nuf.js.gz +0 -0
- package/.output/public/_nuxt/board.CeTYM1XN.css.br +0 -0
- package/.output/public/_nuxt/builds/meta/9240e8b5-8099-4108-9ff2-34b7f376d31a.json +0 -1
- package/.output/public/_nuxt/entry._gNxiS8l.css +0 -2
- package/.output/public/_nuxt/entry._gNxiS8l.css.br +0 -0
- package/.output/public/_nuxt/entry._gNxiS8l.css.gz +0 -0
- package/.output/public/_nuxt/settings.Cdb21nNw.css.br +0 -0
- package/.output/public/_nuxt/settings.Cdb21nNw.css.gz +0 -0
|
@@ -276,3 +276,31 @@ devices open keep working.
|
|
|
276
276
|
|
|
277
277
|
Follow [Migrate a 1.x Docker install](migrate-from-1.x-docker.md): back up, stop the container,
|
|
278
278
|
install the native service, check, and go back if needed. It is written so an AI agent can run it.
|
|
279
|
+
|
|
280
|
+
## Shepherdr 2
|
|
281
|
+
|
|
282
|
+
Shepherdr 2.x retains the `herdr-projects` plugin id but uses a different CLI and
|
|
283
|
+
store. wherdr detects its version or manifest and reports **Shepherdr 2 detected:
|
|
284
|
+
wherdr’s Board does not support it**, rather than asking for an update. Agents,
|
|
285
|
+
terminal, files and machines remain available. wherdr never starts Shepherdr or
|
|
286
|
+
migrates its data automatically.
|
|
287
|
+
|
|
288
|
+
To return to the Board's supported herdr-projects 1.2.x release:
|
|
289
|
+
|
|
290
|
+
1. Finish or stop ongoing work, then stop Shepherdr using its own controls.
|
|
291
|
+
2. Back up both data stores (`~/.herdr-projects` and `~/.shepherdr`), worktrees and
|
|
292
|
+
Herdr configuration. Keep the takeover backup made by Shepherdr too.
|
|
293
|
+
3. On the affected machine, reinstall the pinned release yourself:
|
|
294
|
+
|
|
295
|
+
```sh
|
|
296
|
+
herdr plugin uninstall herdr-projects && herdr plugin install eliasstravik/herdr-projects --ref v1.2.21 --yes
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
4. Check Herdr configuration against the takeover backup; restore only the required
|
|
300
|
+
sidebar/configuration entries, preserving subsequent changes, then reload Herdr's
|
|
301
|
+
configuration and open the 1.x board. Refresh wherdr to check detection.
|
|
302
|
+
|
|
303
|
+
Reinstalling the plugin does not import Shepherdr tasks, undo its configuration or
|
|
304
|
+
network changes, or restore the state of ongoing agents. Keep the 2.x store and
|
|
305
|
+
backups; do not delete them to make the Board work. Avoid an unpinned plugin update:
|
|
306
|
+
it can replace 1.x with Shepherdr 2 again.
|
package/docs/home.md
CHANGED
|
@@ -48,5 +48,14 @@
|
|
|
48
48
|
first online machine), or the empty view. All always keeps the current conversation. Phones keep
|
|
49
49
|
the list first and check the same rule when reopening a conversation through browser history.
|
|
50
50
|
Explicit choices from search, cards or links open the chosen conversation. Unsent drafts stay saved.
|
|
51
|
+
- **Global search** (magnifier, ⌘K) finds agents, conversations and Board tasks: a task's name
|
|
52
|
+
(`WHR-12`), title or description, with its machine, project and state. Choosing a task opens it on the Board.
|
|
51
53
|
- **Named Herdr sessions**, **quotas** (remaining Claude and Codex usage limits), **Herdr plugin
|
|
52
54
|
actions** in the menus, **passkey lock** (Face ID, Touch ID, Windows Hello, Android…).
|
|
55
|
+
|
|
56
|
+
Settings › Appearance › Home screen › **Individual agents** expands standalone
|
|
57
|
+
agent spaces into one row per pane, using their pane or tab labels. Workspace
|
|
58
|
+
cards remain the default. Board tasks and repository headers keep their existing
|
|
59
|
+
grouping, and **Show terminals** still controls plain terminal rows. The setting
|
|
60
|
+
follows you across devices. Workspace drag reordering is disabled in this view;
|
|
61
|
+
switch it off to reorder spaces.
|
package/docs/installation.md
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
[Documentation](README.md) · [Project](../README.md)
|
|
6
6
|
|
|
7
|
+
**Shepherdr 2.x is not supported by the Board**, even though its plugin id is still
|
|
8
|
+
`herdr-projects`. wherdr shows a compatibility message and a manual command pinned
|
|
9
|
+
to herdr-projects 1.2.21, without starting or migrating anything. Agents, terminal,
|
|
10
|
+
files and machines remain available. See [returning from Shepherdr 2](herdr-projects-1x.md#shepherdr-2)
|
|
11
|
+
for backups, reinstallation and configuration limitations. Do not use an unpinned
|
|
12
|
+
plugin update to restore Board compatibility.
|
|
13
|
+
|
|
7
14
|
## Requirements
|
|
8
15
|
|
|
9
16
|
- **Herdr ≥ 0.9.1** running on the server (`herdr` or `herdr server`), with its Claude Code /
|
|
@@ -172,3 +179,8 @@ and the app says so. Every step is logged in `~/wherdr/update.log`.
|
|
|
172
179
|
| `wherdr` command (npm) | `npm install -g wherdr@latest && wherdr restart` (npx: stop it, then `npx wherdr@latest`) |
|
|
173
180
|
| `wherdr` command (Homebrew) | `brew upgrade wherdr`, then `brew services restart wherdr` |
|
|
174
181
|
| From source | `git pull && npm ci && npm run build`, then restart wherdr |
|
|
182
|
+
|
|
183
|
+
Update notices also show the number of newer stable releases and up to four
|
|
184
|
+
additional version numbers besides the latest. This measures published releases,
|
|
185
|
+
not Git commits or whether a fork has merged develop. When GitHub returns a full
|
|
186
|
+
100-entry page, the count is labelled as a lower bound.
|
package/docs/notifications.md
CHANGED
|
@@ -52,6 +52,13 @@ The screen reads top to bottom:
|
|
|
52
52
|
others). Each says how it differs from the default; removing one goes back to it.
|
|
53
53
|
4. **This device's notifications** only asks this browser or phone for permission to
|
|
54
54
|
show push notifications, and shows whether it is allowed, blocked or not asked yet.
|
|
55
|
+
Below it, every registered device is listed with the result of the last push sent to it:
|
|
56
|
+
delivered, expired (404/410: the browser dropped the subscription), rejected (401/403),
|
|
57
|
+
push service unreachable, or failed with its HTTP status. Each device keeps its own result,
|
|
58
|
+
so one device's success never hides another's failure. An expired device is no longer
|
|
59
|
+
tried; **Remove** forgets it (otherwise it goes away on its own after 30 days). Only the
|
|
60
|
+
time, the class and the status code are stored in `data/push.json`, never the push
|
|
61
|
+
service's response.
|
|
55
62
|
|
|
56
63
|
A coordinator's exception is kept by its identity (machine, Herdr session, level and
|
|
57
64
|
repo), not its pane: it still applies after `coordinator new` or a restart.
|
package/docs/quotas.md
CHANGED
|
@@ -30,7 +30,13 @@ week, with reset times), for every online machine.
|
|
|
30
30
|
|
|
31
31
|
- **Codex**: nothing to do, Codex writes its limits in its session files. Machines on different
|
|
32
32
|
Codex accounts get one block each (told apart by a short hash of the account ID found in the
|
|
33
|
-
session files; `~/.codex/auth.json` is never read).
|
|
33
|
+
session files; `~/.codex/auth.json` is never read). If a session has no recognized account
|
|
34
|
+
fingerprint, its reading stays under its own machine and is never merged with another
|
|
35
|
+
conversation or machine. A new conversation identifies an account switch even before it
|
|
36
|
+
logs limits; until a reading for that account is available, no Codex gauge is shown. Failed reads do not
|
|
37
|
+
reuse an older machine snapshot, and remembered weekly limits cannot cross account
|
|
38
|
+
identities. Without a known fingerprint, remembered weekly corrections are not reused,
|
|
39
|
+
even on the same machine. Session files are read from `~/.codex/sessions`.
|
|
34
40
|
- **Claude Code** only gives them to its status line. On each machine, install wherdr's
|
|
35
41
|
invisible status line (it displays nothing, and chains to your existing status line if you
|
|
36
42
|
have one):
|
|
@@ -60,6 +66,12 @@ week, with reset times), for every online machine.
|
|
|
60
66
|
with Claude to produce the new snapshot. The status line also requires `python3` in Claude’s
|
|
61
67
|
`PATH` at runtime.
|
|
62
68
|
|
|
69
|
+
**API billing** (API key or Anthropic Console credits): Claude Code passes no rate limits, so
|
|
70
|
+
once a session has had an API response the status line keeps its snapshot without them, and
|
|
71
|
+
the machine reads **API usage (no quota)** in Settings and *Claude · API usage, no quota* on the
|
|
72
|
+
home screen (no gauge, no setup prompt); switching back to a subscription shows the gauges
|
|
73
|
+
again after the next exchange. Status lines installed before this need **Update**.
|
|
74
|
+
|
|
63
75
|
**New machine**: run `sh scripts/install-claude-statusline.sh` on it once (or **Install** in
|
|
64
76
|
Settings › Agents › Claude quotas), then send a message to any Claude agent there; its quotas
|
|
65
77
|
appear on the home screen.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
## New
|
|
2
|
+
|
|
3
|
+
**Protection for users who upgraded to Shepherdr 2.** wherdr recognizes Shepherdr 2.x and displays **Shepherdr 2 detected: wherdr’s Board does not support it**, instead of saying the plugin is too old. It refuses to install or update herdr-projects over Shepherdr 2. Agents, terminal, files and machines remain available; wherdr does not start Shepherdr or migrate its data automatically.
|
|
4
|
+
|
|
5
|
+
To return manually to the supported herdr-projects 1.2.21, first finish or stop ongoing work, stop Shepherdr using its own controls, and back up both data stores, worktrees and Herdr configuration, including Shepherdr's takeover backup. On the affected machine, run:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
herdr plugin uninstall herdr-projects && herdr plugin install eliasstravik/herdr-projects --ref v1.2.21 --yes
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Follow the [Shepherdr 2 return checklist](https://github.com/afloury/wherdr/blob/v2.4.0/docs/herdr-projects-1x.md#shepherdr-2) to check and restore the required configuration entries before reloading Herdr and refreshing wherdr. Reinstalling does not import Shepherdr tasks, undo its configuration or network changes, or restore ongoing agents. Keep the 2.x store and backups, and avoid an unpinned plugin update that could install Shepherdr 2 again.
|
|
12
|
+
|
|
13
|
+
Global search (⌘K) now finds Board tasks by key, title or description and opens the selected task on the Board. Terminal Ctrl, Alt and Shift can be armed for the next key, and an optional individual-agent list shows standalone agents as separate rows. Thanks to [@followcat](https://github.com/followcat) for the modifier controls and individual-agent list.
|
|
14
|
+
|
|
15
|
+
## Improved
|
|
16
|
+
|
|
17
|
+
Swipe between machine and group tabs on Home. Task panels combine conversation and terminal in one Agent tab, queued Claude messages can be sent immediately, and chat commands run in a verified wherdr-managed split terminal.
|
|
18
|
+
|
|
19
|
+
A device-local beta setting enables smooth terminal touch scrolling, while the existing behavior remains the default. Transcript notices can be dismissed, and update banners show how many newer stable releases are available. Thanks to [@followcat](https://github.com/followcat) for these contributions, including the original scrolling work.
|
|
20
|
+
|
|
21
|
+
Claude sessions billed through an API key or Console credits show API usage with no quota on Home and in Settings. Update the Claude status line on those machines to enable detection. A shared keyboard shortcut reference and refreshed narrated tutorials, including “wherdr in one minute”, help you find your way around.
|
|
22
|
+
|
|
23
|
+
## Fixed
|
|
24
|
+
|
|
25
|
+
Connections recover after the device wakes without competing socket probes. Starting a command just after creating a split or tab no longer falsely reports that it did not start while the new pane is being discovered.
|
|
26
|
+
|
|
27
|
+
The WebGL terminal stays sharp and correctly sized on high-density screens, and long agent state lines fit phone headers. Wrapped task titles keep their height, and Autopilot messages show their copy button only on hover.
|
|
28
|
+
|
|
29
|
+
Codex self-updates are detected with Ubuntu shell prompts, status reset information remains visible alongside footer warnings, and passive reads leave shell history alone. A folder used as a transcript path returns “no conversation”. omp 18.14 tool approval cards are recognized again, including grants and expanded details, while older dialogs remain supported.
|
|
30
|
+
|
|
31
|
+
Settings navigation tests wait for phone history transitions before teardown. Tutorial fonts are pinned and checksum-verified, CI actions use Node 24 runtimes on Ubuntu 24.04, and contributors share one interface design reference.
|
|
32
|
+
|
|
33
|
+
## Update
|
|
34
|
+
|
|
35
|
+
No migration is required from 2.3.0; existing tasks and settings are kept. Node.js 22 or newer and Herdr 0.9.1 or newer are still required. The Board supports herdr-projects 1.2.x, not Shepherdr 2.x; use the checklist above if you already upgraded that plugin. Users upgrading wherdr from 1.x should follow the [2.0 migration guide](https://github.com/afloury/wherdr/blob/v2.4.0/docs/herdr-projects-1x.md).
|
|
36
|
+
|
|
37
|
+
[Full changelog](https://github.com/afloury/wherdr/blob/v2.4.0/CHANGELOG.md)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
## New
|
|
2
|
+
|
|
3
|
+
You can choose the order of the phone key bar in Settings › Terminal, with a preview and a reset to the default. The order is saved on the device and shared by Conversation and Terminal. Thanks to [@followcat](https://github.com/followcat) for the idea.
|
|
4
|
+
|
|
5
|
+
Notification settings show each registered device's last push delivery result and let you remove expired registrations.
|
|
6
|
+
|
|
7
|
+
## Improved
|
|
8
|
+
|
|
9
|
+
The interface is always in English, including on browsers previously set to French. Messages written by you and your agents keep their original language. The phone header chevron has a full-size button box, and desktop view switching uses a single action button.
|
|
10
|
+
|
|
11
|
+
The agent skill explains how to share verified links that users can open. Focused unit and component coverage replaces repeated browser cases, CI shards phone tests, and full develop coverage runs nightly. Develop prereleases are built only from commits that passed CI.
|
|
12
|
+
|
|
13
|
+
## Fixed
|
|
14
|
+
|
|
15
|
+
After a server restart, machines recover independently and existing panes remain visible until their machine has been read or confirmed offline. Codex quota readings stay with the correct account, and Home WORKING counters follow Board groups without counting remote tasks twice.
|
|
16
|
+
|
|
17
|
+
On iPhone and iPad, tapping the terminal keeps the keyboard closed; the message field and keyboard button still open it. Phone navigation returns from tasks to the Board, wherdr links reuse the existing window, and closing a terminal no longer falsely reports that its process stopped.
|
|
18
|
+
|
|
19
|
+
Conversation images can load from other machines and ports on the same tailnet, with an explanation and an open link when loading fails. Codex photo placeholders no longer appear as message text, older explicitly resumed conversations can be found, and current Codex sessions no longer show a false restart-to-update notice. omp provider errors now appear in the conversation, and coordinators can be found by conversation after their pane closes.
|
|
20
|
+
|
|
21
|
+
## Update
|
|
22
|
+
|
|
23
|
+
No migration is required from 2.4.0. Node.js 22 or newer and Herdr 0.9.1 or newer remain required. The Board continues to support herdr-projects 1.2.x, not Shepherdr 2.x.
|
|
24
|
+
|
|
25
|
+
[Full changelog](https://github.com/afloury/wherdr/blob/v2.5.0/CHANGELOG.md)
|
package/docs/security.md
CHANGED
|
@@ -44,6 +44,13 @@ wherdr drives Herdr, so **it can run anything as your user**.
|
|
|
44
44
|
- A strict Content Security Policy limits scripts to the app's own origin and hashed inline
|
|
45
45
|
scripts, and connections to that origin and its WebSockets. It also blocks embedded objects
|
|
46
46
|
and framing.
|
|
47
|
+
- Images in agent replies load from the app's own origin (`data:` and `blob:` included) and,
|
|
48
|
+
over HTTPS only, from any machine and port of the tailnet wherdr is reached on
|
|
49
|
+
(`https://*.<tailnet>.ts.net:*`). That tailnet is read from Tailscale on the machine, from
|
|
50
|
+
`APP_URL`, from `HERDR_WEB_ALLOWED_HOSTS` and from what `tailscale serve` publishes, never from
|
|
51
|
+
a request; a name outside `*.ts.net` adds nothing. Any other image (public sites, another
|
|
52
|
+
tailnet, plain HTTP, Tailscale IP addresses) is refused by the browser and shown as a note with
|
|
53
|
+
a link to open it in a new tab.
|
|
47
54
|
- wherdr never changes your agents' global settings: model and effort changes are for the
|
|
48
55
|
current session only.
|
|
49
56
|
|
package/package.json
CHANGED
package/skills/wherdr/SKILL.md
CHANGED
|
@@ -30,6 +30,27 @@ So a message from the Board is the user's own words: answer and act on it as on
|
|
|
30
30
|
from them. Report your progress with `herdr-projects report` as usual: the Board shows the
|
|
31
31
|
state, the message and the progress you report, the pull request and the review.
|
|
32
32
|
|
|
33
|
+
## Links
|
|
34
|
+
|
|
35
|
+
- **Files:** verify that the file exists and is readable on the agent's machine, then
|
|
36
|
+
write its absolute path in inline code (backticks), optionally with `:line` or
|
|
37
|
+
`:line:column` (these suffixes are stripped, not navigated to). Chat recognizes
|
|
38
|
+
paths; Markdown file links do not use its file viewer. `~/` means that machine's
|
|
39
|
+
home; relative paths use the pane's working folder, falling back to home when
|
|
40
|
+
unknown or outside home. Never use a path relative to another folder (such as a
|
|
41
|
+
vault). The file and its symlink target must stay inside that machine's home.
|
|
42
|
+
Terminal links open only HTTP(S) URLs, not file paths.
|
|
43
|
+
- **Web:** give an absolute HTTPS URL reachable from the user's phone and other
|
|
44
|
+
machines (for example through their tailnet). Never offer localhost, loopback
|
|
45
|
+
addresses (including `127.0.0.1`) or relative URLs as portable links. Follow
|
|
46
|
+
redirects and verify a successful HTTP status and the final destination; a local
|
|
47
|
+
response alone does not prove access from another device.
|
|
48
|
+
- **Images:** prefer displaying them directly in chat (web images must come from
|
|
49
|
+
wherdr's own origin or an HTTPS tailnet address). For an image URL, verify
|
|
50
|
+
that the final response serves the image itself with an `image/*` Content-Type,
|
|
51
|
+
rather than an HTML page.
|
|
52
|
+
- If no verified link is available, say so clearly instead of offering a broken one.
|
|
53
|
+
|
|
33
54
|
## What the Board does not do
|
|
34
55
|
|
|
35
56
|
No task is added, delegated, stopped, archived or cleared from wherdr: the user asks the
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ot as e,P as t,gr as n,j as r}from"./C25ROUa9.js";import{t as i}from"./BDNMzG2s.js";import{lt as a}from"#entry";var o={class:`antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide`},s={class:`max-w-520px text-center`},c=[`textContent`],l=[`textContent`],u=[`textContent`],d=i({__name:`error-500`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:500},statusText:{type:String,default:`Internal server error`},description:{type:String,default:`This page is temporarily unavailable.`},refresh:{type:String,default:`Refresh this page`}},setup(i){let d=i;return a({title:`${d.status} - ${d.statusText} | ${d.appName}`,script:[{innerHTML:`!function(){let e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(let e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(let t of e)if("childList"===t.type)for(let e of t.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;let r=function(e){let r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),r.credentials="use-credentials"===e.crossOrigin?"include":"anonymous"===e.crossOrigin?"omit":"same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(a,d)=>(e(),t(`div`,o,[r(`div`,s,[r(`h1`,{class:`font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]`,textContent:n(i.status)},null,8,c),r(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:n(i.statusText)},null,8,l),r(`p`,{class:`mb-4 px-2 text-[#64748B] text-md`,textContent:n(i.description)},null,8,u)])]))}},[[`__scopeId`,`data-v-f91406c7`]]);export{d as default};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.header-menu[data-v-562a5bfa]{display:contents}.grid-backdrop[data-v-a290ab6b]{z-index:-1;pointer-events:none;contain:strict;overflow:hidden}.gbd-dots[data-v-a290ab6b],.grid-backdrop[data-v-a290ab6b]{position:absolute;inset:0}.gbd-dots[data-v-a290ab6b]{background-image:radial-gradient(circle at 32px 32px,color-mix(in srgb,var(--muted) 60%,transparent) 1.4px,transparent 2.2px),linear-gradient(color-mix(in srgb,var(--line) 30%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 30%,transparent) 1px,transparent 1px),radial-gradient(ellipse 50% 40% at 50% 25%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 75%);background-position:calc(50% - 32px) -32px,top,top,0 0;background-size:64px 64px,64px 64px,64px 64px,100% 100%;-webkit-mask:radial-gradient(85% 75% at 50% 35%,#000 25%,#00000073 60%,#0000 88%);mask:radial-gradient(85% 75% at 50% 35%,#000 25%,#00000073 60%,#0000 88%)}.gbd-packets[data-v-a290ab6b]{position:absolute;inset:0;-webkit-mask:radial-gradient(70% 60% at 50% 30%,#000 30%,#0000 75%);mask:radial-gradient(70% 60% at 50% 30%,#000 30%,#0000 75%)}.gbd-packets[data-v-a290ab6b] .pkt{will-change:transform,opacity;--c:var(--accent);display:block;position:absolute}.gbd-packets[data-v-a290ab6b] .pkt.alt{--c:var(--lav)}.gbd-packets[data-v-a290ab6b] .pkt.h{background:linear-gradient(90deg,transparent,var(--c));width:56px;height:1px;margin-left:-56px}.gbd-packets[data-v-a290ab6b] .pkt.h.rev{background:linear-gradient(270deg,transparent,var(--c));margin-left:0}.gbd-packets[data-v-a290ab6b] .pkt.h:after{content:"";background:var(--c);width:6px;height:5px;box-shadow:0 0 10px var(--c);position:absolute;top:-2px;right:-3px}.gbd-packets[data-v-a290ab6b] .pkt.h.rev:after{left:-3px;right:auto}.gbd-packets[data-v-a290ab6b] .pkt.v{background:linear-gradient(180deg,transparent,var(--c));width:1px;height:56px;margin-top:-56px}.gbd-packets[data-v-a290ab6b] .pkt.v.rev{background:linear-gradient(0deg,transparent,var(--c));margin-top:0}.gbd-packets[data-v-a290ab6b] .pkt.v:after{content:"";background:var(--c);width:5px;height:6px;box-shadow:0 0 10px var(--c);position:absolute;bottom:-3px;left:-2px}.gbd-packets[data-v-a290ab6b] .pkt.v.rev:after{top:-3px;bottom:auto}.gbd-vignette[data-v-a290ab6b]{background:linear-gradient(to right,var(--bg),transparent 14%,transparent 86%,var(--bg)),linear-gradient(to bottom,var(--bg),transparent 18%,transparent 70%,var(--bg));position:absolute;inset:0}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::-moz-selection{color:#0000}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.usage-limit-card[data-v-8c0c9595]{border-top:1px solid var(--line);white-space:normal;text-align:left;color:var(--ochre);flex-wrap:wrap;justify-content:flex-start;padding-top:8px}.restart-text small[data-v-8c0c9595]{color:var(--muted);display:block}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|