115 lines
4.3 KiB
Markdown
115 lines
4.3 KiB
Markdown
# Troubleshooting
|
|
|
|
## `gpu-doctor` reports no GPU
|
|
|
|
Confirm the driver and Vulkan/CUDA runtime are installed, then run the doctor
|
|
under the same graphical user session that will run `jarvisd`. A host command
|
|
such as `vulkaninfo` is insufficient if QVAC itself reports no device. Jarvis
|
|
will remain available for diagnostics but refuses inference until QVAC sees a
|
|
GPU.
|
|
|
|
## Voice doctor finds no wake engine
|
|
|
|
Fresh installs use the built-in CPU detector (`jarvis-wake-bridge`). If
|
|
`listeningMode` is Hold Talk only, or `wakeCommand` is empty, the detector is
|
|
disabled. A custom openWakeWord or sherpa-onnx bridge must read raw 16 kHz mono
|
|
PCM from stdin and write detected phrases, one per line, to stdout. Push-to-talk
|
|
remains useful for typed or manually triggered testing.
|
|
|
|
## Portal consent succeeds but input is unavailable
|
|
|
|
Grant desktop starts RemoteDesktop, then Jarvis connects to EIS with the
|
|
bundled libei sender. An external `JARVIS_LIBEI_BRIDGE` is optional. If input
|
|
still fails, run `npm run cu-doctor` and confirm `libei` is installed. Observation
|
|
does not need the injector: after a grant, `cu_observe` should return a screenshot
|
|
and accessibility tree even when pointer injection is down.
|
|
|
|
## Stylesheet parse `errcode:15`
|
|
|
|
GNOME Shell's St CSS parser rejects comments that contain `--`, `alpha(var())`,
|
|
and `icon-size`. If `journalctl` shows a stylesheet parse error on
|
|
`[email protected]`, copy the current `stylesheet.css` into the live extension
|
|
directory and disable/enable the extension (GNOME 50 cannot `ReloadExtension`).
|
|
See [brand](brand.md).
|
|
|
|
## Settings window crashes on accent hex
|
|
|
|
GTK 4 `Gtk.Entry` has no `maxLength` constructor property. The hex field uses
|
|
`entry.get_buffer().set_max_length(7)`. If an older checkout still constructs
|
|
`maxlength`, Settings will abort when opening the Desktop page.
|
|
|
|
## Panel label shows “Jarv…”
|
|
|
|
The panel used to show the product name and a state chip at the same time,
|
|
which GNOME truncated. Idle is mark plus **Jarvis**; busy is mark plus one
|
|
state chip (Listening / Thinking / Speaking / Privacy). Never both.
|
|
|
|
## The extension is missing
|
|
|
|
Preferences can open while the panel HUD is gone if the extension is installed
|
|
but not enabled in the running GNOME Shell. Re-run the installer so it copies
|
|
the HUD files and asks Shell to enable `[email protected]`. On GNOME 50 that
|
|
does not hot-reload; disable/enable the extension or log out if the panel is
|
|
still gone. The installer also keeps a copy at
|
|
`~/.local/share/gnome-shell/extensions/[email protected]`:
|
|
|
|
```bash
|
|
curl -fsSL https://git.ssh.surf/snxraven/gnome-jarvis/raw/branch/main/packaging/web-installer.sh | bash -s -- --enable
|
|
```
|
|
|
|
Then confirm `metadata.json` has UUID `[email protected]` and run:
|
|
|
|
```bash
|
|
gnome-extensions enable [email protected]
|
|
journalctl --user -b | grep -i jarvis
|
|
```
|
|
|
|
If the extension still does not appear, log out and back in once so GNOME Shell
|
|
reloads its extension search path.
|
|
|
|
## Browser tool says `no such file or directory`
|
|
|
|
`jarvisd` runs under Bare and starts a Node Playwright sidecar. Systemd user
|
|
services often do not have `node` on `PATH`, so spawn used to fail with that
|
|
message. Reinstall so `jarvisd.service` records `JARVIS_BROWSER_NODE`, then:
|
|
|
|
```bash
|
|
npm install
|
|
npm run browser:install
|
|
systemctl --user daemon-reload
|
|
systemctl --user restart jarvisd.service
|
|
```
|
|
|
|
To pin Node yourself:
|
|
|
|
```bash
|
|
systemctl --user edit jarvisd.service
|
|
```
|
|
|
|
Add `Environment=JARVIS_BROWSER_NODE=/usr/bin/node` under `[Service]`.
|
|
|
|
## The service reports `203/EXEC`
|
|
|
|
Current `jarvisd.service` starts packaged Bare, not `/usr/bin/node`. If
|
|
`ExecStart` still points at a missing `node` or Bare binary, re-run
|
|
`packaging/install.sh --enable` or the web installer. Check the result with:
|
|
|
|
```bash
|
|
systemctl --user cat jarvisd.service | grep ExecStart
|
|
```
|
|
|
|
## The daemon restarts
|
|
|
|
Inspect `journalctl --user -u jarvisd.service`. Common causes are a missing
|
|
Bare binary, invalid QVAC config, missing session D-Bus, missing GPU
|
|
visibility, or a stale portal grant. Run the three doctor commands before
|
|
changing model settings. Restarting `jarvisd` also clears an active desktop
|
|
grant.
|
|
|
|
## Rolling release did not publish
|
|
|
|
Check the Gitea Actions log and repository secret name. It must be exactly
|
|
`RELEASE_TOKEN` with repository write permission. The workflow only publishes
|
|
from `main`; pull requests and other branches run CI but do not replace the
|
|
`rolling` prerelease.
|