Updates
Rolling release / release (push) Successful in 6m40s

This commit is contained in:
2026-09-12 14:45:04 -04:00
parent dac3b0b9f2
commit 390b2fa098
29 changed files with 381 additions and 174 deletions
+5 -2
View File
@@ -59,9 +59,11 @@ test('brand icons ship as SVG marks with gold visor and cyan core', () => {
test('HUD, settings, and launcher consume the brand package', () => {
assert.match(stylesheet, /--jarvis-accent/);
assert.match(stylesheet, /--jarvis-signal: #4FD2FF/);
assert.doesNotMatch(stylesheet, /alpha\(/);
assert.doesNotMatch(stylesheet, /icon-size:/);
assert.doesNotMatch(stylesheet, /\/\*/);
assert.match(stylesheet, /\.jarvis-panel-mark/);
assert.match(stylesheet, /\.jarvis-talk \{ background-color: var\(--jarvis-accent/);
assert.match(stylesheet, /\.jarvis-talk \{ background-color: #F4B942/);
assert.match(gtkCss, /@define-color jarvis_gold #F4B942/);
assert.match(gtkCss, /button\.jarvis-swatch-gold/);
assert.equal(metadata.name, 'Jarvis');
@@ -70,6 +72,7 @@ test('HUD, settings, and launcher consume the brand package', () => {
assert.match(settingsWindow, /brandBanner/);
assert.match(settingsWindow, /BRAND\.publisher/);
assert.match(settingsWindow, /accentRow/);
assert.doesNotMatch(settingsWindow, /maxlength/);
assert.match(extensionSource, /brand\/icons\/jarvis-mark\.svg/);
assert.match(extensionSource, /text: 'Jarvis'/);
assert.match(install, /io\.qvac\.Jarvis\.Control\.desktop/);
+15 -6
View File
@@ -233,7 +233,9 @@ test('GNOME GI imports expose default namespaces and panel has a real menu', ()
assert.match(extensionSource, /_openPopup/);
assert.match(uiSource, /Open conversation/);
assert.match(extensionSource, /PopupMenuSection/);
assert.match(extensionSource, /osd\.attach\(this\._panelBox\)/);
assert.match(extensionSource, /import Pango from 'gi:\/\/Pango'/);
assert.match(extensionSource, /ellipsize = Pango\.EllipsizeMode\.NONE/);
assert.match(extensionSource, /osd\.attach\(this\._panelBox, this\._glyph\)/);
assert.match(extensionSource, /jarvis-panel-mark/);
assert.match(extensionSource, /brand\/icons\/jarvis-mark\.svg/);
assert.match(uiSource, /jarvis-panel-state/);
@@ -274,12 +276,14 @@ test('lazy ASR still shows the microphone as available when capture is up', () =
const { ConversationView } = harness();
const popup = new ConversationView({ compact: true });
popup.setVoiceStatus({ tts: true, input: true, wake: true });
assert.match(popup.status.text, /SPEECH ON/);
assert.match(popup.status.text, /WAKE ON/);
assert.doesNotMatch(popup.status.text, /MIC UNAVAILABLE/);
assert.equal(popup.status.text, 'Local');
assert.match(popup.statusLine.text, /speech on/);
assert.match(popup.statusLine.text, /wake on/);
assert.doesNotMatch(popup.status.style_class, /jarvis-state-/);
assert.equal(popup.talk.label, 'Hold to talk');
popup.setVoiceStatus({ tts: false, input: false, wake: false });
assert.match(popup.status.text, /MIC UNAVAILABLE/);
assert.match(popup.status.text, /Mic off/);
assert.match(popup.statusLine.text, /mic off/);
assert.equal(popup.talk.label, 'Mic unavailable');
assert.match(extensionSource, /Boolean\(voice\.capture\)/);
assert.doesNotMatch(extensionSource, /voice\.asr && voice\.capture/);
@@ -289,22 +293,27 @@ test('voice status lives in the panel chip, not a floating overlay', () => {
const { JarvisOsd, SessionPanel, timers, chrome } = harness();
const osd = new JarvisOsd();
const session = new SessionPanel();
const name = { visible: true };
const bar = { children: [], add_child(child) { this.children.push(child); } };
osd.attach(bar);
osd.attach(bar, name);
session.attach();
assert.equal(bar.children[0], osd.root);
osd.setState('LISTENING');
assert.equal(osd.root.visible, true);
assert.equal(name.visible, false);
assert.match(osd.label.text, /Listening/);
assert.equal(session.root.visible, false);
osd.setState('ARMED');
assert.equal(osd.root.visible, false);
assert.equal(name.visible, true);
osd.setState('SPEAKING');
assert.equal(osd.root.visible, true);
assert.equal(name.visible, false);
assert.match(osd.label.text, /Speaking/);
assert.equal(timers.size, 0);
osd.setState('THINKING');
assert.match(osd.label.text, /Thinking/);
assert.equal(name.visible, false);
osd.setState('SLEEPING');
assert.match(osd.label.text, /Privacy/);
osd.showWake();