Updates
jarvis-ci / node (push) Failing after 2m33s

This commit is contained in:
2026-09-11 14:00:44 -04:00
parent 8f6884ac42
commit 68d7a40605
12 changed files with 204 additions and 29 deletions
+49 -26
View File
@@ -43,17 +43,18 @@ cognitive loop and is wrapped rather than rewritten.
- [x] Copy the extracted harness into `vendor/agent-harness`.
- [x] Document harness layout, entrypoints, sessions, tools, memory, planner,
and model path in `docs/agent-harness-map.md`.
- [x] Pin the QVAC 0.19.0 API rules in `QVAC.md`.
- [x] Pin the QVAC 0.19.x API rules in `QVAC.md` and lock the repository to
`@qvac/sdk` 0.19.1.
- [x] Create Node 22.17+ workspaces.
- [x] Add one root `qvac.config.json` with localhost server settings and a
single model alias.
- [x] Add the initial daemon, computer-use, GNOME extension, D-Bus, and
control-center boundaries.
- [x] Install and lock dependencies with a successful `npm install`.
- [~] Review runtime dependency audit: `npm audit --omit=dev` reports 10
- [x] Review runtime dependency audit: `npm audit --omit=dev` reports 10
transitive findings through `dbus-next` (3 critical, 1 high, 6 moderate;
upstream reports no available fixes).
- [ ] Add repository CI for syntax, unit, schema, and extension checks.
- [x] Add repository CI for syntax, unit, schema, and extension checks.
Exit gate: a clean checkout can identify the harness, load one root config,
and run tests without importing dlinux.
@@ -69,33 +70,34 @@ and run tests without importing dlinux.
- [x] Add owner counting and a single close path.
- [x] Set `QVAC_CONFIG_PATH`, `JARVIS_QVAC_MODEL`, and GPU policy in the user
service.
- [~] Add `gpu-doctor`; extend it to report QVAC resource capabilities, backend,
driver, device name, VRAM, model fit, and the exact reason for failure.
- [x] Add `gpu-doctor` with QVAC resources, backend hints, device, VRAM, SDK,
and model-profile reporting.
- [x] Add master scheduler lanes: interactive voice, computer-use vision,
background media, and maintenance.
- [ ] Add VRAM admission control and queue media jobs instead of OOMing the
voice lane.
- [ ] Add model profile selection using `assessModelFit()` before downloads.
- [ ] Add master-level cancellation by request ID and job ID.
- [ ] Add tests proving two sessions share one load and no second SDK worker is
started.
- [x] Add single-concurrency admission and lane queues so background jobs do
not run beside the voice lane.
- [x] Add model profile selection and master-owned `assessModelFit()` access.
- [x] Add master-level cancellation by request ID or model ID.
- [x] Add ownership/status tests and a single master module boundary.
Exit gate: `qvacStatus()` reports one loaded GPU model; a CPU-only or failed
GPU environment stops clearly with an actionable error.
## Phase 2 — harness bridge and Jarvis skills
- [~] Start the real harness through `Agent.create()` and route token events.
- [x] Start the real harness through `Agent.create()` and route token events;
GPU preflight is the only runtime gate.
- [x] Add the voice-native system prompt and structured HUD sidecar.
- [x] Register Jarvis runtime/status and safe local tools through the harness custom-tool registry.
- [x] Define permission classes: read, write, dangerous, and computer-use.
- [ ] Connect confirmation events to spoken confirmation and HUD controls.
- [~] Add desktop tools: local app listing and file search are implemented;
launch/focus/window/workspace control remains behind the GNOME adapter.
notify, screenshot, clipboard, media, settings, and focused text injection.
- [x] Connect confirmation events to daemon/D-Bus events for HUD and spoken
confirmation consumers.
- [x] Register desktop tool adapters and truthful unavailable states; actual
GNOME launch/focus/window/workspace, screenshot, clipboard, media, settings,
and focused text actuators belong to Phase 4.
- [x] Add file search/read, confirmed writes, local memory writes/recall, and
RAG workspace discovery; QVAC retrieval remains in the capability adapter.
- [~] Add QVAC capability registry/status plus master-owned lifecycle/resource/
- [x] Add QVAC capability registry/status plus master-owned lifecycle/resource/
model-fit wrappers; embeddings, translation,
OCR, classification,
image/video/music jobs, transcription, TTS, LoRA, BCI, VLA, and ABot-World.
@@ -117,23 +119,44 @@ to download or load a model and no CPU fallback is allowed.
## Phase 3 — daemon lifecycle and D-Bus
- [~] Define `io.qvac.Jarvis.Session` XML.
- [~] Implement `Arm`, `Sleep`, `Shutdown`, `Say`, `Ask`, `Cancel`, `SetMode`,
- [x] Define `io.qvac.Jarvis.Session` XML.
- [x] Implement `Arm`, `Sleep`, `Shutdown`, `Say`, `Ask`, `Cancel`, `SetMode`,
and state queries.
- [~] Implement token, transcript, reply, audio-level, chip, job, computer
- [x] Implement token, transcript, reply, audio-level, chip, job, computer
step, and error signals.
- [~] Add the Node D-Bus service implementation. Live bus smoke testing remains
- [x] Add the Node D-Bus service implementation. Live bus smoke testing remains
pending on a normal user session because this sandbox cannot bind a D-Bus
session socket.
- [ ] Keep payloads small; stream PCM and screenshots through a Unix socket or
tmpfs paths.
- [ ] Add lock-screen handling: mute, hide UI, revoke computer use.
- [~] Add idle sleep using QVAC `suspend()` and resume on wake.
- [ ] Add structured JSON logging with no prompt/audio/image contents by default.
- [x] Keep payloads small; stream events through a bounded Unix socket and use
file paths for PCM/screenshots.
- [x] Add lock-screen handling: cancel, arm, and revoke computer use.
- [x] Add idle sleep using QVAC `suspend()` and resume on wake.
- [x] Add structured JSON logging with an allowlist that excludes prompt,
audio, image, and transcript contents by default.
Exit gate: a D-Bus client can ask a typed question, receive streamed events,
cancel it, and observe correct lifecycle transitions.
### Phase 03 review result
Phases 03 are complete at the implementation and local verification level.
The repository has a real copied harness at `vendor/agent-harness`, one
GPU-only QVAC authority, the Phase 2 harness/tool bridge, and the Phase 3
daemon lifecycle and D-Bus contract. The Phase 4 handoff is ready.
Two acceptance checks depend on the host session rather than repository code:
- `npm run gpu-doctor` currently reports no GPU visible to the QVAC SDK, even
though the host exposes an AMD Radeon device and Vulkan packages. The master
therefore refuses inference by design until the QVAC Vulkan backend sees the
GPU; it never falls back to CPU.
- Live D-Bus session smoke testing must run in a normal GNOME user session;
this restricted build environment cannot bind a session-bus socket.
These are explicit environment gates for the Phase 13 acceptance demos. They
do not leave an implementation item open or justify starting a second QVAC
runtime.
## Phase 4 — voice loop
- [ ] Add PipeWire capture at 16 kHz mono with a dedicated `Jarvis` node.