Skip to content

Conversation

@ben-grande
Copy link
Contributor

@ben-grande ben-grande commented Oct 2, 2025

  • Dom0: hide shutdown and pause, technically, shutdown can be used by GUIVMs in the future if the action was modified, currently, qubesd logs a failure.
  • There is no possibility to differentiate between "APPS" and "TEMPLATES" tabs, this means that disposable template "Start qube" is hidden from both tabs, that is not the intended behavior though but would require a redesign to fix. Current behavior though, allows searching for "default-dvm" and not have the "Start qube" button appear. Therefore, to start the disposable template from the app menu, select an application in the "TEMPLATES" tab.

Fixes: QubesOS/qubes-issues#10288
For: QubesOS/qubes-issues#1512
Requires: QubesOS/qubes-core-admin-client#384

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

  • disposable template "Start qube" is hidden from both tabs

Can the button be retained, but in the APPS tab start a new disposable (without any application)?

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

But also, @marmarta we noticed at the summit possible UX issue here: when searching for disposable template name (for example default-dvm), you get results from both disposable template and for starting new disposable based on that template. Those entries are slightly different, but it's easy to confuse them...

@ben-grande
Copy link
Contributor Author

Can the button be retained, but in the APPS tab start a new disposable (without any application)?

What will hold the disposable open? A terminal? We will be deviating from unnamed disposable destroying when closing the initial application.

About the limitation of "APPS" and "TEMPLATES" tab, it may be that I just didn't find the solution to identify which tab it is...

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

What will hold the disposable open? A terminal? We will be deviating from unnamed disposable destroying when closing the initial application.

That's a good question. If you just start it (using qvm-start, possibly modified to support it) it would need to be killed manually...

@ben-grande
Copy link
Contributor Author

ben-grande commented Oct 2, 2025

), you get results from both disposable template and for starting new disposable based on that template. Those entries are slightly different, but it's easy to confuse them...

Two things here:

2025-10-02-161116 2025-10-02-161711
  • The sorting is not so nice, the first image has: dvm, disp, dom0, disp, dvm, disp.
  • The second image sorting with another template interleaves applications between the templates.
  • Sorting should focus on qube name them application name
  • It has the same problem as the old menu, to easy to miss the difference... that I will leave to you Marta, to design...

It might make sense to have the default-dvm listed twice in the search. This would solve two problems:

  • if selecting default-dvm, "Start qube" will be available
  • if selecting default-dvm (dvm), "Start qube" won't be available

@ben-grande
Copy link
Contributor Author

PipelineRetryFailed

@ben-grande
Copy link
Contributor Author

=================================== FAILURES ===================================
____________________________ test_app_page_vm_state ____________________________
test_desktop_file_path = PosixPath('/tmp/pytest-of-gitlab-runner/pytest-0/test_app_page_vm_state0')
test_qapp = <qubesadmin.tests.mock_app.MockQubesComplete object at 0x7f730b289100>
test_builder = <Gtk.Builder object at 0x7f730b16ba40 (GtkBuilder at 0x55edb4c11140)>
    def test_app_page_vm_state(test_desktop_file_path, test_qapp, test_builder):
        dispatcher = MockDispatcher(test_qapp)
        vm_manager = VMManager(test_qapp, dispatcher)
    
        with mock.patch.object(DesktopFileManager, 'desktop_dirs',
                               [test_desktop_file_path]):
            desktop_file_manager = DesktopFileManager(test_qapp)
    
        app_page = AppPage(vm_manager, test_builder, desktop_file_manager)
    
        # select a turned off vm
        app_page.vm_list.select_row([row for row in app_page.vm_list.get_children()
                                     if row.vm_name == 'test-red'][0])
    
>       assert app_page.control_list.start_item.row_label.get_label() == \
               "Start qube"
E       AssertionError: assert '' == 'Start qube'
E         - Start qube
qubes_menu/tests/test_app_page.py:43: AssertionError
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
  File "/home/gitlab-runner/builds/QubesOS/qubes-desktop-linux-menu/qubes_menu/application_page.py", line 334, in _selection_changed
    self.control_list.update_visibility(row.vm_entry.power_state)
  File "/home/gitlab-runner/builds/QubesOS/qubes-desktop-linux-menu/qubes_menu/custom_widgets.py", line 568, in update_visibility
    row.update_state(state)
  File "/home/gitlab-runner/builds/QubesOS/qubes-desktop-linux-menu/qubes_menu/custom_widgets.py", line 470, in update_state
    self.get_toplevel().get_application().get_currently_selected_vm()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get_currently_selected_vm'

This is strange and appears only on tests...

@marmarek
Copy link
Member

marmarek commented Oct 2, 2025

Maybe test don't initialize application object?

@ben-grande
Copy link
Contributor Author

Maybe test don't initialize application object?

TOPLEVEL: {}
APP:

Yeah, not even toplevel is initialized... trying to find a test that depends on the toplevel being set... any help from Gtk experts welcome.

@ben-grande
Copy link
Contributor Author

The solution was to pass the whole vm_entry object as it already has all the necessary info such as vm_name and power_state.

ben-grande added a commit to ben-grande/qubes-core-admin-client that referenced this pull request Oct 6, 2025
@ben-grande
Copy link
Contributor Author

To test the running disposable template, this PR requires QubesOS/qubes-core-admin-client#384

@marmarta
Copy link
Member

marmarta commented Oct 8, 2025

It might make sense to have the default-dvm listed twice in the search. This would solve two problems:

* if selecting `default-dvm`, "Start qube" will be available

* if selecting `default-dvm (dvm)`, "Start qube" won't be available

that is probably a good idea. Right now yeah, it's an improvement but it's a little confusing.

@ben-grande
Copy link
Contributor Author


that is probably a good idea. Right now yeah, it's an improvement but it's a little confusing.

I agree it can be a bit confusing, it was actually an improvement from the old app menu that had

  • Disposable: default-dvm
  • ...
  • Template (disp): default-dvm

And that caused problems, so I am not sure if my idea was good or not right now.

I looked at the code a bit more, I was thinking of duplicating the VMEntry for disposable templates and adding (dvm) via GtkLabel for on one of the entries.

But having duplicate qube entries get worse when you have some disposable templates. If you have 3 disposable templates, you will have 6 qube entries on the search.... not so fun anymore.

@ben-grande
Copy link
Contributor Author

But having duplicate qube entries get worse when you have some disposable templates. If you have 3 disposable templates, you will have 6 qube entries on the search.... not so fun anymore.

I enjoy the new menu separation of APPS and TEMPLATES, but for this "Start qube" action, it needs different objects to be loaded at each tab and also for search to have different entries to have at least one that can start the qube. I looked a bit more and it seems that there will be a lot of duplication if I start using different objects for the qube for different tabs. I also looked at AnyVMRow for the Any qube entry, which is very simple, maybe I can reuse something similar for the stub entry.

@marmarta
Copy link
Member

I don't think that two groups per disp template is a problem though? I think that in some ideal world there would be a custom magical panel to the side, but I think this is a problem for a future bigger menu improvements project; right now having two categories would solve the issue here? Unless I misunderstood the last comment and it's not possible here..

@codecov
Copy link

codecov bot commented Oct 20, 2025

Codecov Report

❌ Patch coverage is 96.29630% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.82%. Comparing base (4d858cd) to head (b44889e).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
qubes_menu/custom_widgets.py 96.42% 1 Missing ⚠️
qubes_menu/search_page.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #67      +/-   ##
==========================================
+ Coverage   80.42%   80.82%   +0.39%     
==========================================
  Files          23       23              
  Lines        2779     2800      +21     
==========================================
+ Hits         2235     2263      +28     
+ Misses        544      537       -7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ben-grande
Copy link
Contributor Author

What will hold the disposable open? A terminal? We will be deviating from unnamed disposable destroying when closing the initial application.

That's a good question. If you just start it (using qvm-start, possibly modified to support it) it would need to be killed manually...

The qui-devices does create disposables and attach a device to it without opening an application. I am not sure it makes sense for the app menu to do that. Can you provide workflows that a user might want to do that via the the app menu and who that user might be? Once the personas page is written, it would be easier/possible to reference these users.

@ben-grande ben-grande force-pushed the hide-dvm-start branch 2 times, most recently from 4833c62 to 398be69 Compare October 20, 2025 20:28
@ben-grande
Copy link
Contributor Author

I don't think that two groups per disp template is a problem though? I think that in some ideal world there would be a custom magical panel to the side, but I think this is a problem for a future bigger menu improvements project; right now having two categories would solve the issue here? Unless I misunderstood the last comment and it's not possible here..

The new behavior: "Start qube" is hidden from the "APPS" tab but is shown on the "TEMPLATES" tab and the "Search" page.

I avoided two VM entries as it seems rather complex to have a clone that replicates everything that is made to the clone, such as updating vm state, properties, features etc. There might be a way though, the same way I thought that the tab identification was difficult and it was simple, I was just looking at the wrong places.

- Dom0: hide shutdown and pause, technically, shutdown can be used by
  GUIVMs in the future if the action was modified, currently, qubesd
  logs a failure.
- Disposables templates have the "Start qube" button in the "TEMPLATES"
  tab and the "Search" page, but not in the "APPS" tab.

Fixes: QubesOS/qubes-issues#10288
For: QubesOS/qubes-issues#1512
@qubesos-bot
Copy link

qubesos-bot commented Oct 22, 2025

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025103005-4.3&flavor=pull-requests

Test run included the following:

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025081011-4.3&flavor=update

  • system_tests_extra

    • TC_00_QVCTest_debian-13-xfce: test_010_screenshare (failure + cleanup)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0

    • TC_00_QVCTest_fedora-42-xfce: test_010_screenshare (failure + cleanup)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0

    • TC_00_QVCTest_whonix-gateway-18: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...

    • TC_00_QVCTest_whonix-workstation-18: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...

  • system_tests_basic_vm_qrexec_gui_zfs

    • switch_pool: Failed (test died)
      # Test died: command 'modprobe zfs zfs_arc_max=67108864' failed at ...
  • system_tests_qwt_win10_seamless@hw13

    • windows_install: Failed (test died)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...
  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/iDVvW-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_gui_interactive_preloaded

    • collect_logs: wait_serial (wait serial expected)
      # wait_serial expected: qr/zhGWq-\d+-/...

    • collect_logs: Failed (test died + timed out)
      # Test died: command 'curl --form [email protected] --form upn...

    • collect_logs: wait_serial (wait serial expected)
      # wait_serial expected: qr/Dw02q-\d+-/...

  • system_tests_dispvm_perf@hw7

    • TC_00_DispVMPerf_whonix-workstation-18: test_006_dom0_dispvm (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf.py --dvm=test-ins...

    • TC_00_DispVMPerf_whonix-workstation-18: test_026_dom0_dispvm_preload (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf.py --dvm=test-ins...

  • system_tests_basic_vm_qrexec_gui_xfs

    • TC_20_NonAudio_fedora-42-xfce-pool: test_000_start_shutdown (error + timed out)
      qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_whonix@hw7

    • whonixcheck: fail (unknown)
      Whonixcheck for anon-whonix failed...

    • whonixcheck: fail (unknown)
      Whonixcheck for whonix-gateway-18 failed...

    • whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • whonixcheck: fail (unknown)
      Whonixcheck for whonix-workstation-18 failed...

    • whonixcheck: Failed (test died)
      # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...

Failed tests

19 failures
  • system_tests_extra

    • TC_00_QVCTest_debian-13-xfce: test_010_screenshare (failure + cleanup)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0

    • TC_00_QVCTest_fedora-42-xfce: test_010_screenshare (failure + cleanup)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0

    • TC_00_QVCTest_whonix-gateway-18: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...

    • TC_00_QVCTest_whonix-workstation-18: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...

  • system_tests_basic_vm_qrexec_gui_zfs

    • switch_pool: Failed (test died)
      # Test died: command 'modprobe zfs zfs_arc_max=67108864' failed at ...
  • system_tests_qwt_win10_seamless@hw13

    • windows_install: Failed (test died)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...
  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/iDVvW-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_gui_interactive_preloaded

    • collect_logs: wait_serial (wait serial expected)
      # wait_serial expected: qr/zhGWq-\d+-/...

    • collect_logs: Failed (test died + timed out)
      # Test died: command 'curl --form [email protected] --form upn...

    • collect_logs: wait_serial (wait serial expected)
      # wait_serial expected: qr/Dw02q-\d+-/...

  • system_tests_dispvm_perf@hw7

    • TC_00_DispVMPerf_whonix-workstation-18: test_006_dom0_dispvm (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf.py --dvm=test-ins...

    • TC_00_DispVMPerf_whonix-workstation-18: test_026_dom0_dispvm_preload (failure)
      AssertionError: '/usr/lib/qubes/tests/dispvm_perf.py --dvm=test-ins...

  • system_tests_basic_vm_qrexec_gui_xfs

    • TC_20_NonAudio_fedora-42-xfce-pool: test_000_start_shutdown (error + timed out)
      qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_whonix@hw7

    • whonixcheck: fail (unknown)
      Whonixcheck for anon-whonix failed...

    • whonixcheck: fail (unknown)
      Whonixcheck for whonix-gateway-18 failed...

    • whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • whonixcheck: fail (unknown)
      Whonixcheck for whonix-workstation-18 failed...

    • whonixcheck: Failed (test died)
      # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/149225#dependencies

82 fixed
  • system_tests_extra

    • TC_00_QVCTest_whonix-workstation-17: test_010_screenshare (failure)
      AssertionError: 1 != 0 : Timeout waiting for /dev/video0 in test-in...
  • system_tests_dispvm

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.dispvm failed (exit code 1), details report...

    • TC_20_DispVM_debian-13-xfce: test_012_preload_low_mem (failure)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1 != 0

    • TC_20_DispVM_debian-13-xfce: test_013_preload_gui (error)
      raise KeyError(key)... KeyError: 'disp3723'

    • TC_20_DispVM_debian-13-xfce: test_014_preload_nogui (error + cleanup)
      raise TimeoutError from exc_val... TimeoutError

    • TC_20_DispVM_debian-13-xfce: test_015_preload_race_more (error + cleanup)
      raise KeyError(key)... KeyError: 'disp1187'

    • TC_20_DispVM_debian-13-xfce: test_016_preload_race_less (failure + cleanup)
      ^^^^^^^^^^^^^^^^^^^^^^... AssertionError

    • TC_20_DispVM_debian-13-xfce: test_017_preload_autostart (error)
      raise KeyError(key)... KeyError: 'disp7317'

    • TC_20_DispVM_debian-13-xfce: test_018_preload_global (error)
      raise KeyError(key)... KeyError: 'disp8572'

    • TC_20_DispVM_debian-13-xfce: test_019_preload_refresh (error)
      raise KeyError(key)... KeyError: 'disp6425'

    • TC_20_DispVM_fedora-42-xfce: test_012_preload_low_mem (failure)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1 != 0

    • TC_20_DispVM_whonix-workstation-17: test_012_preload_low_mem (failure)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1 != 0

  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • system_tests_audio

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.audio failed (exit code 1), details reporte...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_223_audio_play_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_224_audio_rec_muted_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_225_audio_rec_unmuted_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_252_audio_playback_audiovm_switch_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_audio@hw1

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.audio failed (exit code 1), details reporte...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_223_audio_play_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 60 secon...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_224_audio_rec_muted_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 60 secon...

    • TC_20_AudioVM_Pulse_whonix-workstation-17: test_252_audio_playback_audiovm_switch_hvm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 60 secon...

  • system_tests_dispvm_perf@hw7

  • system_tests_guivm_gpu_gui_interactive@hw13

    • guivm_startup: wait_serial (wait serial expected)
      # wait_serial expected: qr/lEcbc-\d+-/...

    • guivm_startup: Failed (test died + timed out)
      # Test died: command '! qvm-check sys-whonix || time qvm-start sys-...

  • system_tests_basic_vm_qrexec_gui_ext4

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.vm_qrexec_gui failed (exit code 1), details...

    • TC_20_NonAudio_whonix-gateway-17-pool: test_012_qubes_desktop_run (error + cleanup)
      raise TimeoutError from exc_val... TimeoutError

Unstable tests

Performance Tests

Performance degradation:

13 performance degradations
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 163913.00 🔻 ( previous job: 497426.00, degradation: 32.95%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 93576.00 🔻 ( previous job: 265260.00, degradation: 35.28%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 253462.00 🔻 ( previous job: 431512.00, degradation: 58.74%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 74990.00 🔻 ( previous job: 196254.00, degradation: 38.21%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 13606.00 🔻 ( previous job: 23940.00, degradation: 56.83%)
  • fedora-42-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 2319.00 🔻 ( previous job: 3020.00, degradation: 76.79%)
  • fedora-42-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 1125.00 🔻 ( previous job: 1368.00, degradation: 82.24%)
  • fedora-42-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 2187.00 🔻 ( previous job: 3765.00, degradation: 58.09%)
  • fedora-42-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 461.00 🔻 ( previous job: 1251.00, degradation: 36.85%)
  • fedora-42-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 49371.00 🔻 ( previous job: 157382.00, degradation: 31.37%)
  • fedora-42-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 54705.00 🔻 ( previous job: 64217.00, degradation: 85.19%)
  • fedora-42-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2279.00 🔻 ( previous job: 4098.00, degradation: 55.61%)
  • fedora-42-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 535.00 🔻 ( previous job: 2384.00, degradation: 22.44%)

Remaining performance tests:

165 tests
  • debian-13-xfce_exec: 6.80 🟢 ( previous job: 8.36, improvement: 81.33%)
  • debian-13-xfce_exec-root: 25.94 🟢 ( previous job: 27.36, improvement: 94.79%)
  • debian-13-xfce_socket: 8.17 🟢 ( previous job: 8.57, improvement: 95.32%)
  • debian-13-xfce_socket-root: 8.44 🔻 ( previous job: 8.26, degradation: 102.24%)
  • debian-13-xfce_exec-data-simplex: 65.15 🟢 ( previous job: 72.43, improvement: 89.95%)
  • debian-13-xfce_exec-data-duplex: 65.06 🟢 ( previous job: 76.65, improvement: 84.88%)
  • debian-13-xfce_exec-data-duplex-root: 68.92 🟢 ( previous job: 91.79, improvement: 75.08%)
  • debian-13-xfce_socket-data-duplex: 86.38 🟢 ( previous job: 133.45, improvement: 64.73%)
  • fedora-42-xfce_exec: 8.97 🟢 ( previous job: 9.06, improvement: 98.98%)
  • fedora-42-xfce_exec-root: 57.68 🟢 ( previous job: 58.19, improvement: 99.13%)
  • fedora-42-xfce_socket: 8.50 🔻 ( previous job: 8.48, degradation: 100.24%)
  • fedora-42-xfce_socket-root: 8.00 🟢 ( previous job: 8.18, improvement: 97.75%)
  • fedora-42-xfce_exec-data-simplex: 66.24 🟢 ( previous job: 78.48, improvement: 84.40%)
  • fedora-42-xfce_exec-data-duplex: 68.92 🔻 ( previous job: 67.92, degradation: 101.48%)
  • fedora-42-xfce_exec-data-duplex-root: 89.52 🟢 ( previous job: 96.36, improvement: 92.90%)
  • fedora-42-xfce_socket-data-duplex: 90.26 🟢 ( previous job: 142.58, improvement: 63.30%)
  • whonix-gateway-18_exec: 6.51
  • whonix-gateway-18_exec-root: 128.17
  • whonix-gateway-18_socket: 7.69
  • whonix-gateway-18_socket-root: 7.94
  • whonix-gateway-18_exec-data-simplex: 64.75
  • whonix-gateway-18_exec-data-duplex: 71.21
  • whonix-gateway-18_exec-data-duplex-root: 127.25
  • whonix-gateway-18_socket-data-duplex: 99.12
  • whonix-workstation-18_exec: 8.69
  • whonix-workstation-18_exec-root: 132.79
  • whonix-workstation-18_socket: 8.89
  • whonix-workstation-18_socket-root: 8.11
  • whonix-workstation-18_exec-data-simplex: 64.76
  • whonix-workstation-18_exec-data-duplex: 68.53
  • whonix-workstation-18_exec-data-duplex-root: 125.16
  • whonix-workstation-18_socket-data-duplex: 86.41
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 2427.00 🔻 ( previous job: 2446.00, degradation: 99.22%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 11534.00 🟢 ( previous job: 5874.00, improvement: 196.36%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 4952.00 🟢 ( previous job: 29.00, improvement: 17075.86%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 307951.00 🟢 ( previous job: 292489.00, improvement: 105.29%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 122060.00 🟢 ( previous job: 110817.00, improvement: 110.15%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 444500.00 🟢 ( previous job: 137802.00, improvement: 322.56%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 203859.00 🟢 ( previous job: 121719.00, improvement: 167.48%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 107596.00 🟢 ( previous job: 103932.00, improvement: 103.53%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 6679.00 🟢 ( previous job: 6356.00, improvement: 105.08%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 8162.00 🟢 ( previous job: 7695.00, improvement: 106.07%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 4701.00 🟢 ( previous job: 3925.00, improvement: 119.77%)
  • fedora-42-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 345608.00 🔻 ( previous job: 366891.00, degradation: 94.20%)
  • fedora-42-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 257319.00 🟢 ( previous job: 140215.00, improvement: 183.52%)
  • fedora-42-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 309588.00 🟢 ( previous job: 299764.00, improvement: 103.28%)
  • fedora-42-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 60139.00 🟢 ( previous job: 47575.00, improvement: 126.41%)
  • fedora-42-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 81684.00 🔻 ( previous job: 86001.00, degradation: 94.98%)
  • fedora-42-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 9349.00 🟢 ( previous job: 9042.00, improvement: 103.40%)
  • fedora-42-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 359593.00 🔻 ( previous job: 387500.00, degradation: 92.80%)
  • fedora-42-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 241218.00 🟢 ( previous job: 136640.00, improvement: 176.54%)
  • fedora-42-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 366122.00 🟢 ( previous job: 325139.00, improvement: 112.60%)
  • fedora-42-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 99927.00 🟢 ( previous job: 79539.00, improvement: 125.63%)
  • fedora-42-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 82344.00 🔻 ( previous job: 87396.00, degradation: 94.22%)
  • fedora-42-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 9310.00 🟢 ( previous job: 8992.00, improvement: 103.54%)
  • fedora-42-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 374625.00 🔻 ( previous job: 383531.00, degradation: 97.68%)
  • fedora-42-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 298909.00 🟢 ( previous job: 293225.00, improvement: 101.94%)
  • fedora-42-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 81325.00 🔻 ( previous job: 87141.00, degradation: 93.33%)
  • fedora-42-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8717.00 🔻 ( previous job: 8804.00, degradation: 99.01%)
  • debian-13-xfce_vm-dispvm (mean:6.515): 78.18
  • debian-13-xfce_vm-dispvm-gui (mean:7.555): 90.66
  • debian-13-xfce_vm-dispvm-concurrent (mean:3.009): 36.10
  • debian-13-xfce_vm-dispvm-gui-concurrent (mean:4.258): 51.09
  • debian-13-xfce_dom0-dispvm (mean:7.005): 84.06
  • debian-13-xfce_dom0-dispvm-gui (mean:8.001): 96.01
  • debian-13-xfce_dom0-dispvm-concurrent (mean:3.46): 41.52
  • debian-13-xfce_dom0-dispvm-gui-concurrent (mean:4.215): 50.59
  • debian-13-xfce_vm-dispvm-preload (mean:2.793): 33.52
  • debian-13-xfce_vm-dispvm-preload-gui (mean:3.88): 46.56
  • debian-13-xfce_vm-dispvm-preload-concurrent (mean:2.546): 30.55
  • debian-13-xfce_vm-dispvm-preload-gui-concurrent (mean:3.603): 43.23
  • debian-13-xfce_dom0-dispvm-preload (mean:3.457): 41.48
  • debian-13-xfce_dom0-dispvm-preload-gui (mean:10.858): 130.30
  • debian-13-xfce_dom0-dispvm-preload-concurrent (mean:2.735): 32.82
  • debian-13-xfce_dom0-dispvm-preload-gui-concurrent (mean:3.655): 43.86
  • debian-13-xfce_dom0-dispvm-api (mean:6.966): 83.59
  • debian-13-xfce_dom0-dispvm-gui-api (mean:8.14): 97.68
  • debian-13-xfce_dom0-dispvm-concurrent-api (mean:3.315): 39.77
  • debian-13-xfce_dom0-dispvm-gui-concurrent-api (mean:4.003): 48.03
  • debian-13-xfce_dom0-dispvm-preload-less-less-api (mean:3.794): 45.53
  • debian-13-xfce_dom0-dispvm-preload-less-api (mean:3.704): 44.45
  • debian-13-xfce_dom0-dispvm-preload-api (mean:3.564): 42.77
  • debian-13-xfce_dom0-dispvm-preload-more-api (mean:3.188): 38.26
  • debian-13-xfce_dom0-dispvm-preload-more-more-api (mean:3.539): 42.47
  • debian-13-xfce_dom0-dispvm-preload-gui-api (mean:4.306): 51.67
  • debian-13-xfce_dom0-dispvm-preload-concurrent-api (mean:2.952): 35.42
  • debian-13-xfce_dom0-dispvm-preload-gui-concurrent-api (mean:3.682): 44.19
  • debian-13-xfce_vm-vm (mean:0.028): 0.34
  • debian-13-xfce_vm-vm-gui (mean:0.04): 0.48
  • debian-13-xfce_vm-vm-concurrent (mean:0.011): 0.13
  • debian-13-xfce_vm-vm-gui-concurrent (mean:0.021): 0.26
  • debian-13-xfce_dom0-vm-api (mean:0.034): 0.41
  • debian-13-xfce_dom0-vm-gui-api (mean:0.038): 0.46
  • debian-13-xfce_dom0-vm-concurrent-api (mean:0.029): 0.35
  • debian-13-xfce_dom0-vm-gui-concurrent-api (mean:0.03): 0.36
  • fedora-42-xfce_vm-dispvm (mean:7.018): 84.22
  • fedora-42-xfce_vm-dispvm-gui (mean:7.996): 95.95
  • fedora-42-xfce_vm-dispvm-concurrent (mean:3.727): 44.73
  • fedora-42-xfce_vm-dispvm-gui-concurrent (mean:4.494): 53.93
  • fedora-42-xfce_dom0-dispvm (mean:7.713): 92.55
  • fedora-42-xfce_dom0-dispvm-gui (mean:8.994): 107.93
  • fedora-42-xfce_dom0-dispvm-concurrent (mean:3.726): 44.71
  • fedora-42-xfce_dom0-dispvm-gui-concurrent (mean:4.595): 55.14
  • fedora-42-xfce_vm-dispvm-preload (mean:3.098): 37.17
  • fedora-42-xfce_vm-dispvm-preload-gui (mean:6.589): 79.07
  • fedora-42-xfce_vm-dispvm-preload-concurrent (mean:2.914): 34.97
  • fedora-42-xfce_vm-dispvm-preload-gui-concurrent (mean:3.492): 41.91
  • fedora-42-xfce_dom0-dispvm-preload (mean:3.662): 43.94
  • fedora-42-xfce_dom0-dispvm-preload-gui (mean:4.871): 58.45
  • fedora-42-xfce_dom0-dispvm-preload-concurrent (mean:3.415): 40.99
  • fedora-42-xfce_dom0-dispvm-preload-gui-concurrent (mean:4.069): 48.83
  • fedora-42-xfce_dom0-dispvm-api (mean:7.362): 88.34
  • fedora-42-xfce_dom0-dispvm-gui-api (mean:8.732): 104.78
  • fedora-42-xfce_dom0-dispvm-concurrent-api (mean:3.7): 44.40
  • fedora-42-xfce_dom0-dispvm-gui-concurrent-api (mean:4.339): 52.07
  • fedora-42-xfce_dom0-dispvm-preload-less-less-api (mean:4.181): 50.17
  • fedora-42-xfce_dom0-dispvm-preload-less-api (mean:4.149): 49.79
  • fedora-42-xfce_dom0-dispvm-preload-api (mean:4.026): 48.31
  • fedora-42-xfce_dom0-dispvm-preload-more-api (mean:3.647): 43.76
  • fedora-42-xfce_dom0-dispvm-preload-more-more-api (mean:3.742): 44.91
  • fedora-42-xfce_dom0-dispvm-preload-gui-api (mean:4.974): 59.69
  • fedora-42-xfce_dom0-dispvm-preload-concurrent-api (mean:3.454): 41.45
  • fedora-42-xfce_dom0-dispvm-preload-gui-concurrent-api (mean:3.967): 47.61
  • fedora-42-xfce_vm-vm (mean:0.025): 0.30
  • fedora-42-xfce_vm-vm-gui (mean:0.029): 0.35
  • fedora-42-xfce_vm-vm-concurrent (mean:0.016): 0.19
  • fedora-42-xfce_vm-vm-gui-concurrent (mean:0.027): 0.33
  • fedora-42-xfce_dom0-vm-api (mean:0.037): 0.45
  • fedora-42-xfce_dom0-vm-gui-api (mean:0.054): 0.65
  • fedora-42-xfce_dom0-vm-concurrent-api (mean:0.029): 0.35
  • fedora-42-xfce_dom0-vm-gui-concurrent-api (mean:0.025): 0.30
  • whonix-workstation-18_vm-dispvm (mean:8.938): 107.25
  • whonix-workstation-18_vm-dispvm-gui (mean:10.079): 120.95
  • whonix-workstation-18_vm-dispvm-concurrent (mean:5.196): 62.35
  • whonix-workstation-18_vm-dispvm-gui-concurrent (mean:5.826): 69.92
  • whonix-workstation-18_dom0-dispvm-gui (mean:10.691): 128.29
  • whonix-workstation-18_dom0-dispvm-concurrent (mean:5.32): 63.84
  • whonix-workstation-18_dom0-dispvm-gui-concurrent (mean:5.44): 65.28
  • whonix-workstation-18_vm-dispvm-preload (mean:4.118): 49.42
  • whonix-workstation-18_vm-dispvm-preload-gui (mean:11.353): 136.23
  • whonix-workstation-18_vm-dispvm-preload-concurrent (mean:3.987): 47.84
  • whonix-workstation-18_vm-dispvm-preload-gui-concurrent (mean:4.875): 58.49
  • whonix-workstation-18_dom0-dispvm-preload-gui (mean:6.008): 72.10
  • whonix-workstation-18_dom0-dispvm-preload-concurrent (mean:4.833): 58.00
  • whonix-workstation-18_dom0-dispvm-preload-gui-concurrent (mean:5.045): 60.54
  • whonix-workstation-18_dom0-dispvm-api (mean:9.876): 118.51
  • whonix-workstation-18_dom0-dispvm-gui-api (mean:10.664): 127.96
  • whonix-workstation-18_dom0-dispvm-concurrent-api (mean:5.124): 61.49
  • whonix-workstation-18_dom0-dispvm-gui-concurrent-api (mean:5.583): 66.99
  • whonix-workstation-18_dom0-dispvm-preload-less-less-api (mean:5.534): 66.40
  • whonix-workstation-18_dom0-dispvm-preload-less-api (mean:5.715): 68.58
  • whonix-workstation-18_dom0-dispvm-preload-api (mean:5.492): 65.91
  • whonix-workstation-18_dom0-dispvm-preload-more-api (mean:5.495): 65.94
  • whonix-workstation-18_dom0-dispvm-preload-more-more-api (mean:5.469): 65.63
  • whonix-workstation-18_dom0-dispvm-preload-gui-api (mean:5.954): 71.44
  • whonix-workstation-18_dom0-dispvm-preload-concurrent-api (mean:4.801): 57.61
  • whonix-workstation-18_dom0-dispvm-preload-gui-concurrent-api (mean:5.252): 63.02
  • whonix-workstation-18_vm-vm (mean:0.045): 0.54
  • whonix-workstation-18_vm-vm-gui (mean:0.062): 0.74
  • whonix-workstation-18_vm-vm-concurrent (mean:0.02): 0.24
  • whonix-workstation-18_vm-vm-gui-concurrent (mean:0.031): 0.38
  • whonix-workstation-18_dom0-vm-api (mean:0.039): 0.47
  • whonix-workstation-18_dom0-vm-gui-api (mean:0.042): 0.51
  • whonix-workstation-18_dom0-vm-concurrent-api (mean:0.045): 0.54
  • whonix-workstation-18_dom0-vm-gui-concurrent-api (mean:0.029): 0.35

@marmarta
Copy link
Member

The qui-devices does create disposables and attach a device to it without opening an application. I am not sure it makes sense for the app menu to do that. Can you provide workflows that a user might want to do that via the the app menu and who that user might be? Once the personas page is written, it would be easier/possible to reference these users.

I am not sure about it, no.

The new behavior: "Start qube" is hidden from the "APPS" tab but is shown on the "TEMPLATES" tab and the "Search" page.

I avoided two VM entries as it seems rather complex to have a clone that replicates everything that is made to the clone, such as updating vm state, properties, features etc. There might be a way though, the same way I thought that the tab identification was difficult and it was simple, I was just looking at the wrong places.

Ok, I think this works. I'll review this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Clicking start qube for a disposable template in App menu APPS section starts the qube

4 participants