Fix installer host integration
Rolling release / release (push) Successful in 8m25s
CI / verify (push) Successful in 1m24s

This commit is contained in:
2026-09-11 15:20:39 -04:00
parent fede00f902
commit 65efad934b
4 changed files with 47 additions and 8 deletions
+23 -2
View File
@@ -24,14 +24,35 @@ optional, explicitly enabled fallback.
## The extension is missing ## The extension is missing
Check that `metadata.json` has UUID `[email protected]`, copy the extension into Re-run the installer so it registers the bundle through GNOME's extension
`~/.local/share/gnome-shell/extensions/[email protected]`, then run: installer. 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 ```bash
gnome-extensions enable [email protected] gnome-extensions enable [email protected]
journalctl --user -b | grep -i jarvis 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.
## The service reports `203/EXEC` for `/usr/bin/node`
Older installers wrote a fixed `/usr/bin/node` path. Re-run the current web
installer; it records the Node executable found in the installing user's PATH
when it writes the user service. Check the result with:
```bash
systemctl --user cat jarvisd.service | grep ExecStart
command -v node
```
## The daemon restarts ## The daemon restarts
Inspect `journalctl --user -u jarvisd.service`. Common causes are Node version, Inspect `journalctl --user -u jarvisd.service`. Common causes are Node version,
+7 -3
View File
@@ -5,11 +5,15 @@ cd "${ROOT_DIR}"
echo "JARVIS-QVAC first-run setup" echo "JARVIS-QVAC first-run setup"
echo "The daemon is GPU-gated and keeps QVAC behind one master owner." echo "The daemon is GPU-gated and keeps QVAC behind one master owner."
echo echo
echo "[1/4] GPU and QVAC preflight" echo "[1/5] GPU and QVAC preflight"
npm run gpu-doctor || true npm run gpu-doctor || true
npm run qvac:doctor || true if command -v timeout >/dev/null; then
timeout --foreground 30s npm run qvac:doctor || echo "QVAC doctor timed out or reported an unavailable host dependency; continuing with local setup."
else
npm run qvac:doctor || true
fi
echo echo
echo "[2/4] Microphone and PipeWire preflight" echo "[2/5] Microphone and PipeWire preflight"
npm run voice-doctor || true npm run voice-doctor || true
echo echo
echo "[3/5] Wake phrase and model profile" echo "[3/5] Wake phrase and model profile"
+16 -2
View File
@@ -1,6 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
NODE_BIN="$(command -v node || true)"
if [[ -z "${NODE_BIN}" ]]; then
echo "Node.js is required" >&2
exit 1
fi
command -v zip >/dev/null || { echo "zip is required to register the GNOME extension" >&2; exit 1; }
APP_DIR="${HOME}/.local/share/jarvis-qvac" APP_DIR="${HOME}/.local/share/jarvis-qvac"
EXT_DIR="${HOME}/.local/share/gnome-shell/extensions/[email protected]" EXT_DIR="${HOME}/.local/share/gnome-shell/extensions/[email protected]"
CONFIG_DIR="${HOME}/.config/jarvis" CONFIG_DIR="${HOME}/.config/jarvis"
@@ -12,8 +18,16 @@ if [[ ! -d "${APP_DIR}/node_modules" ]]; then
fi fi
rm -rf "${EXT_DIR}" rm -rf "${EXT_DIR}"
mkdir -p "${EXT_DIR}" mkdir -p "${EXT_DIR}"
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/" EXT_ZIP="$(mktemp "${TMPDIR:-/tmp}/jarvis-extension.XXXXXX.zip")"
cp "${ROOT_DIR}/packaging/jarvisd.service" "${HOME}/.config/systemd/user/jarvisd.service" cleanup_ext() { rm -f "${EXT_ZIP}"; }
trap cleanup_ext EXIT
( cd "${ROOT_DIR}/apps/gnome-extension" && zip -q -r "${EXT_ZIP}" "[email protected]" )
if command -v gnome-extensions >/dev/null && gnome-extensions install --force "${EXT_ZIP}" >/dev/null 2>&1; then
:
else
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
fi
sed "s#__JARVIS_NODE__#${NODE_BIN}#" "${ROOT_DIR}/packaging/jarvisd.service" > "${HOME}/.config/systemd/user/jarvisd.service"
if [[ ! -f "${CONFIG_DIR}/qvac.config.json" ]]; then if [[ ! -f "${CONFIG_DIR}/qvac.config.json" ]]; then
sed "s#__JARVIS_CACHE__#${CACHE_DIR}#g" "${ROOT_DIR}/packaging/qvac.config.template.json" > "${CONFIG_DIR}/qvac.config.json" sed "s#__JARVIS_CACHE__#${CACHE_DIR}#g" "${ROOT_DIR}/packaging/qvac.config.template.json" > "${CONFIG_DIR}/qvac.config.json"
fi fi
+1 -1
View File
@@ -6,7 +6,7 @@ Wants=pipewire.service
[Service] [Service]
Type=simple Type=simple
WorkingDirectory=%h/.local/share/jarvis-qvac WorkingDirectory=%h/.local/share/jarvis-qvac
ExecStart=/usr/bin/node %h/.local/share/jarvis-qvac/daemon/index.js ExecStart=__JARVIS_NODE__ %h/.local/share/jarvis-qvac/daemon/index.js
Environment=QVAC_CONFIG_PATH=%h/.config/jarvis/qvac.config.json Environment=QVAC_CONFIG_PATH=%h/.config/jarvis/qvac.config.json
Environment=JARVIS_GPU_REQUIRED=1 Environment=JARVIS_GPU_REQUIRED=1
Environment=JARVIS_QVAC_OWNER=jarvisd Environment=JARVIS_QVAC_OWNER=jarvisd