Repository navigation
Description
Outcome
Deliver all unfinished GNOME 51 capabilities in the TunaOS desktop, prove their behavior against the Marlin GNOME baseline, and publish the working release across the 13 currently required TunaOS variant cells. Only albacore:tuna is temporarily owner-deferred/unqualified while its externally owned Mesa/GDM fix is pending; it is not counted as a pass.
Inventory and interpretation
The ledger at integration source a445af2e5f08397a0c7d970c19fe9782d96e4dd4 has 58 unfinished rows: 15 missing, 34 partial and 9 passing only in nested sessions. These are starting classifications, not fresh runtime qualifications. Code candidates and scoped proofs must be reviewed before another implementation is started. Nested-only behavior requires installed-image or hardware qualification.
Current ledger (main 8cd7dd75 plus the 2026-11-10 audit rows): 83 rows: 14 pass, 10 pass (nested), 49 partial, 10 missing, so 69 unfinished rows. P-A11Y-07 (pointer aids, split from P-A11Y-04) is tracked under #350. Every row that read missing before the audit now has an implementation and reads partial; per-row statuses below are refreshed to match, and a move from missing to partial is not a qualification. The audit found 10 GNOME 51 behaviours with no code and no ledger row; they are added below as missing rows (#1033–#1042).
Capability tasks
All58 capability issues carry implementation specifications. Existing descriptions were preserved; nested-only rows have explicit installed-image/hardware qualification tasks.
- [v1 capability] P-OV-04: Typing in the overview searches apps and launches the top hit with Enter #578 — P-OV-04: Typing in the overview searches apps and launches the top hit with Enter (pass (nested)).
- [v1 capability] P-WM-01: Alt-Tab switcher with app icons and window previews #579 — P-WM-01: Alt-Tab switcher with app icons and window previews (partial).
- [v1 capability] P-WM-06: App menus and popovers open as xdg popups and close on outside click #580 — P-WM-06: App menus and popovers open as xdg popups and close on outside click (pass (nested)).
- [v1 capability] P-WM-05: Window close, minimize, maximize via server-side or client decorations #581 — P-WM-05: Window close, minimize, maximize via server-side or client decorations (pass (nested)).
- [v1 capability] P-WM-07: Scrollable tiling (niri mode, Super+Shift+T): a strip of columns, Super+R widths, Super+arrows along the strip #582 — P-WM-07: Scrollable tiling (niri mode, Super+Shift+T): a strip of columns, Super+R widths, Super+arrows along the strip (pass (nested)).
- [v1 capability] P-LK-01: Idle blanks then locks; password unlocks; nothing leaks while locked #583 — P-LK-01: Idle blanks then locks; password unlocks; nothing leaks while locked (pass (nested)).
- [v1 capability] P-SY-01: Session starts from the display manager on hardware #584 — P-SY-01: Session starts from the display manager on hardware (partial).
- [v1 capability] P-SY-02: Multi-monitor with per-output panel and hotplug #585 — P-SY-02: Multi-monitor with per-output panel and hotplug (pass (nested)).
- [v1 capability] P-SY-03: Fractional scaling and mixed DPI #586 — P-SY-03: Fractional scaling and mixed DPI (partial).
- [v1 capability] P-SY-04: XWayland apps run by default #587 — P-SY-04: XWayland apps run by default (pass (nested)).
- [v1 capability] P-SY-06: Clients find the protocols Mutter offers (dmabuf, activation, viewporter, fractional scale, cursor shape, idle inhibit, presentation time, fifo, shortcuts inhibit, xdg-foreign, dialogs) #588 — P-SY-06: Clients find the protocols Mutter offers (dmabuf, activation, viewporter, fractional scale, cursor shape, idle inhibit, presentation time, fifo, shortcuts inhibit, xdg-foreign, dialogs) (partial).
- [v1 capability] P-SY-07: End session: Suspend, Restart…, Power Off…, Log Out with GNOME's 60 s confirmation dialog #589 — P-SY-07: End session: Suspend, Restart…, Power Off…, Log Out with GNOME's 60 s confirmation dialog (partial).
- [v1 capability] P-SY-05: Screen capture and sharing through portals with consent #590 — P-SY-05: Screen capture and sharing through portals with consent (partial).
- [v1 capability] P-A11Y-02: Every pointer action has a keyboard equivalent #591 — P-A11Y-02: Every pointer action has a keyboard equivalent (partial; ledger at main
8cd7dd75). - [v1 capability] P-IN-01: IME composition in GTK apps #592 — P-IN-01: IME composition in GTK apps (partial).
- [v1 capability] P-IN-02: Touchpad gestures (three-finger overview, workspace swipe) #593 — P-IN-02: Touchpad gestures (three-finger overview, workspace swipe) (partial).
- [v1 capability] P-ST-01: Settings written by GNOME Settings take effect (wallpaper, clock, fonts) #594 — P-ST-01: Settings written by GNOME Settings take effect (wallpaper, clock, fonts) (partial).
- [v1 capability] P-TR-01: AppIndicator tray items show icons and menus #595 — P-TR-01: AppIndicator tray items show icons and menus (pass (nested)).
- [GNOME 51 gap] Honor Multitasking workspace, edge-tiling and app-switcher preferences #337 — P-WM-08: Multitasking preferences: fixed workspace count, workspaces on primary only, edge tiling and current-workspace-only app switching (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Complete the GNOME window-manager shortcut and focus policy surface #347 — P-WM-09: The full GNOME window-manager shortcut list and focus policy (focus mode, auto-raise, raise on click, mouse-button modifier) (partial).
- [GNOME 51 gap] Implement GNOME 51 session save and restore #338 — P-SY-08: Session save and restore (opt-in window restoration across logout and reboot) (partial; ledger at main
8cd7dd75). - [GNOME 51 gap] Close remaining Mutter protocol and native GPU compatibility deviations #364 — P-SY-09: Clients find the remaining Mutter protocols and versions, including native DRM lease, explicit sync and dmabuf feedback (partial).
- [GNOME 51 gap] Complete GNOME 51 screenshot selection keyboard controls #363 — P-SY-10: Screenshot UI keyboard selection: arrows resize, Alt moves, Shift/Ctrl coarse and fine steps, R resets (partial).
- [GNOME 51 gap] Implement Night Light rather than only writing its setting #339 — P-DS-01: Night Light: colour temperature, schedule, manual times and temporary disable (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Implement display modes, refresh rate, rotation, mirroring and output disabling #340 — P-DS-02: Display modes, refresh rate, rotation, mirroring and output disabling from GNOME Settings (partial).
- [GNOME 51 gap] Implement ICC, HDR and GNOME color management #341 — P-DS-03: Colour management: ICC profiles, calibration, HDR and YUV colour conversion (partial; ledger at main
8cd7dd75). - [GNOME 51 gap] Implement touchscreens, output mapping and sensor-driven orientation #345 — P-DS-04: Touchscreens, touch output mapping and sensor-driven orientation with orientation lock (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Implement compositor cursor themes, sizes, shapes and locate-pointer #342 — P-IN-03: Compositor cursor themes, sizes, requested cursor shapes and locate-pointer (pass (nested); ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Honor mouse, touchpad, pointing-stick and trackball settings #343 — P-IN-04: Mouse, touchpad, pointing-stick and trackball settings from GNOME Settings (partial).
- [GNOME 51 gap] Route tablet input and implement GNOME Wacom settings #344 — P-IN-05: Graphics tablets and GNOME Wacom settings (mapping, calibration, pressure, stylus and pad buttons) (partial; ledger at main
8cd7dd75). - [GNOME 51 gap] Honor keyboard input-source policy, Num Lock and custom shortcuts #346 — P-IN-06: Keyboard input-source policy (per-window sources, MRU), remembered Num Lock and custom shortcuts (partial).
- [GNOME 51 gap] Honor per-app notification preferences and lock-screen privacy #348 — P-NT-03: Per-app notification preferences and lock-screen notification privacy (partial).
- [GNOME 51 gap] Implement magnification and on-screen keyboard accessibility #349 — P-A11Y-03: Screen magnifier and on-screen keyboard (partial; ledger at main
8cd7dd75). - [GNOME 51 gap] Implement accessibility keyboard and pointer input aids #350 — P-A11Y-04: Keyboard and pointer input aids: sticky/slow/bounce/toggle keys, Mouse Keys, dwell and simulated secondary click (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700; pointer aids split to P-A11Y-07 in GNOME 51 pointer accessibility aids: hover click with chooser and pie timer, simulated secondary click (#350) #551).
- [GNOME 51 gap] Honor reduced motion, focus visibility and accessibility-menu preferences #351 — P-A11Y-05: Reduced motion, keyboard focus visibility and the always-shown accessibility menu (partial).
- [GNOME 51 gap] Qualify Orca screen-reader activation and complete spoken shell navigation #352 — P-A11Y-06: Screen reader activation from Settings and complete spoken shell navigation with Orca (partial).
- [GNOME 51 gap] Honor visual/audible alerts, sound preferences and overamplification #353 — P-SN-01: Sound preferences: over-amplification, feedback sounds, visual and audible bell (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Implement Wellbeing screen-time recording, limits and break reminders #354 — P-ST-02: Wellbeing: screen-time history and limits, grayscale and break reminders (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Implement GNOME 51 brightness interface and qualify power policies #355 — P-ST-03: Power panel: GNOME 51 brightness interface, power saving, idle dim/blank and power policies (partial).
- [GNOME 51 gap] Enforce GNOME privacy device controls and qualify retention/security services #356 — P-ST-04: Privacy device controls: camera, microphone and sound-output disable, privacy screen and USB protection (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- [GNOME 51 gap] Enforce or explicitly delimit GNOME administrative lockdown policies #357 — P-ST-05: Administrative lockdown (
org.gnome.desktop.lockdown): disable command line, log out, user switching, lock screen and others (partial; ledger at main8cd7dd75). - [GNOME 51 gap] Qualify GNOME Settings RDP sharing and remote login end to end #358 — P-ST-06: Remote desktop: GNOME Settings Desktop Sharing, Remote Control and remote login over RDP (partial).
- Qualify GNOME Date & Time services on the shipped image #359 — P-ST-07: Date & Time: calendar preferences, automatic time and time zone on the shipped image (partial).
- [GNOME 51 gap] Complete background placement and dynamic wallpaper compatibility #360 — P-ST-08: Background placement modes, shading and slideshow (dynamic XML) wallpapers (partial).
- [GNOME 51 gap] Qualify Apps permissions, global shortcuts, default handlers and removable media #361 — P-ST-09: Apps panel: permissions, background apps, global shortcuts, default handlers and removable-media autorun (partial).
- [GNOME 51 gap] Qualify service-backed GNOME Settings panels on the shipped Marlin image #362 — P-ST-10: Service-backed Settings panels (network, Bluetooth, online accounts, printers, sharing, users, region, updates) on the shipped image (partial; ledger at main
8cd7dd75). - [GNOME 51 gap] Reconcile legacy and app-owned GNOME settings without false parity claims #365 — P-ST-11: Legacy and app-owned GNOME settings are classified without false parity claims (partial).
- [GNOME 51 gap] Support and qualify interactive authentication beyond one password #366 — P-LK-02: Authentication beyond one password: fingerprint, smartcard/PIN, multi-step and web login on the lock screen (partial; ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700; ledger at main
8cd7dd75). - Animations: GNOME motion policy (reduced motion = fades only, slow-down factor) and a deterministic test clock #493 — P-AN-01: Motion preferences: animations off is instant, reduced motion keeps fades only, slow-down factor scales durations (partial).
- Animations: window open and close (normal windows and attached dialogs) #494 — P-AN-02: Window open and close animations (150 ms map/destroy, 100 ms attached dialogs) (partial).
- Animations: minimize and unminimize toward the dash/dock icon #495 — P-AN-03: Minimize and unminimize toward the dash icon (400 ms) (pass (nested); ledger refreshed in docs(ledger): refresh rows for #654 and the published-image nightly #700).
- Animations: maximize, unmaximize, tile and fullscreen size-change transition #496 — P-AN-04: Maximize, unmaximize, tile and fullscreen size-change transition (250 ms crossfade) (partial).
- [v1 capability] P-AN-05: Workspace switch slide, finger-following swipe, switcher popup fade and Activities dots #596 — P-AN-05: Workspace switch slide, finger-following swipe, switcher popup fade and Activities dots (partial).
- Animations: dim the parent window behind an attached modal dialog #498 — P-AN-06: Parent window dims behind an attached modal dialog (500 ms in, 250 ms out) (partial).
- Animations: overview corrections (close easing, picker↔app grid, hover, thumbnails, drag, search, panel, gesture momentum) #499 — P-AN-07: Overview transitions: open/close easing, gesture momentum, picker and app grid, hover, thumbnails, drag, search, dash and panel (partial).
- Animations: app grid (folder zoom, icon scale-in, launch zoom, page curve, page arrows) #500 — P-AN-08: App grid animations: folder zoom, icon scale-in, launch zoom, page switch curve and page arrows (partial).
- Animations: menus, quick-settings submenus, OSD, notification banners and list, Alt+Tab, modal dialogs and lightbox #501 — P-AN-09: Menus, quick-settings submenus, OSD, notification banners and list, Alt+Tab, modal dialogs and lightbox (partial).
- Animations: lock curtain slide, wallpaper crossfade, screenshot flash, hot-corner ripples, startup and monitor-change transitions #502 — P-AN-10: Lock curtain slide, wallpaper crossfade, screenshot flash, hot-corner ripples, startup and monitor-change transitions (partial).
- [GNOME 51 gap] Clipboard contents stay pasteable after the copying app closes #1033 — P-SY-11: Clipboard contents stay pasteable after the copying app closes (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] X11 windows without their own decorations get a server-side frame #1034 — P-WM-10: X11 windows without their own decorations get a server-side frame (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] An app that stops responding gets the "not responding" dialog with Force Quit and Wait #1035 — P-WM-11: An app that stops responding gets the "not responding" dialog with Force Quit and Wait (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] Calendar popover shows World Clocks and Weather #1036 — P-PN-04: Calendar popover shows World Clocks and Weather (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] Media player controls (MPRIS) in the notification list #1037 — P-NT-04: Media player controls (MPRIS) in the notification list (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] Quick settings Airplane Mode and keyboard backlight toggles #1038 — P-PN-05: Quick settings Airplane Mode and keyboard backlight toggles (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] Switch User from the system menu #1039 — P-SY-12: Switch User from the system menu (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] InputCapture portal backend (org.gnome.Mutter.InputCapture) #1040 — P-SY-13: InputCapture portal backend (org.gnome.Mutter.InputCapture) (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] Thunderbolt device authorisation notifications #1041 — P-SY-14: Thunderbolt device authorisation notifications (missing; added by the 2026-11-10 audit).
- [GNOME 51 gap] Captive-portal login window for hotspot networks #1042 — P-ST-12: Captive-portal login window for hotspot networks (missing; added by the 2026-11-10 audit).
Required child-issue specification
Each issue must contain:
- The user-visible behavior and remaining gap.
- Current source locations and any implementation already in progress.
- Bounded subtasks and dependencies for smaller-model implementation.
- GNOME 51 reference behavior and explicit acceptance criteria.
- Positive, negative, restart and failure cases where relevant.
- Concrete build and proof commands, with hardware requirements identified.
- Evidence requirements: source revision, executable/package/image identity, actual behavior, logs and verified cleanup.
A settings write, synthetic state assertion, existing PR, or green test outside the required scope cannot establish completion. An implementer must validate code paths in the checkout, preserve unrelated work and ask for missing hardware access rather than invent results.
Integration and release gates
- Build compatible compositor, shell, host and protocol changes together.
- Pass the complete ledger check and an independent gap audit.
- Complete the real-greeter daily-driver journey without GNOME session fallback.
- Prove faster matched latency than GNOME 51, with CPU and memory no worse; complete matched guest CPU/memory comparisons. GPU and total-power comparisons are follow-up work and do not block v1 release (owner decision, 2026-10-13).
- Verify signed packages, published image identity, install, upgrade and recovery with user data preserved.
- Complete independent Corral VM qualification.
- Publish the public checklist and owner declaration.
- Publish and validate the 13 required variants: yellowfin, skipjack, wahoo, bonito, hummingbird, sailfin, guppy, bonito-rawhide, gurnard, grouper, marlin, flounder and flounder-sid. Track
albacore:tunaseparately as owner-deferred/unqualified, not as a fourteenth qualified cell.
Scope decisions
Owner decision (2026-10-13): v1 may release without GPU and total-power comparisons. These measurements remain follow-up work, with no GPU or power superiority claim until measured. Functional capability, visual, authentication/security, signed install/upgrade/recovery, Corral, matched latency and guest CPU/memory gates remain required.
Owner decision (Albacore scope override): temporarily omit only albacore:tuna from active graphical qualification and publication until the externally owned Mesa/GDM crash is fixed. Retain all fourteen implementation identities and all unrelated build, package, security and release gates. Preserve historical Albacore receipts unchanged, and requalify that cell before lifting the deferral. No other failed or unmeasured variant receives this exception.
Noise removal is v2. Webcam overlay and microphone recording remain a proposed extension awaiting a scope decision.
Completion rule
The epic closes only when every capability task and release gate has evidence matching its full scope. Child-issue completion does not by itself prove release readiness.
All-variant implementation tracking
Historical starting audit, not current configuration: the TunaOS snapshot 72001d9a8a91743811230f632df72cdc5434847d was recorded as admitting only experimental Marlin:tuna, and package-factory snapshot bfc8a3d6ea3abde2f163b632f919366d020ae82c as declaring Tuna targets: [arch]. The following checkboxes track implementation history, not completed installed-image or release gates. Marlin history is tracked by TunaOS #2990, greeter issue #3110 and package provenance PR #818; closed experimental admission does not qualify final v1. Draft TunaOS #3194 records target-neutral installed ownership/routing checks only. Current source, configuration and exact runtime/publication receipts determine present admission.
Variant implementation tracking (Marlin tracked separately)
- yellowfin:tuna
- albacore:tuna — implementation tracking only; active graphical qualification and publication are owner-deferred/unqualified, not passed.
- skipjack:tuna
- wahoo:tuna
- bonito:tuna
- hummingbird:tuna
- sailfin:tuna
- guppy:tuna
- bonito-rawhide:tuna
- gurnard:tuna
- grouper:tuna
- flounder:tuna
- flounder-sid:tuna
Shared native package target closures
Each task requires exact-head signed package/image attribution, actual installed package ownership/dependencies and real session/authentication/portal/visual evidence. Native greeter wiring, unsupported architectures, GNOME 51 performance/resource gates and hardware qualification remain open. No intermediate source revision is designated as the final release pin.
Activity
hanthor commentedon Oct 11, 2026
Review update — 2026-10-11
No open capability issue or PR was closed as stale: the older items remain recently active and describe unfinished behavior or qualification. Issue #449 remains open because merged #455 proves only its scoped pointer-constraint behavior; native edge cases and shipped-image/physical qualification remain unproven. I removed the misleading
hive/likely-donelabel.The repeated J-WS-NEXT / G-WORKSPACE-SLIDE failures have a candidate shared fix in PR #600, commit
afaa7b1e. The core workspace path iscrates/compositor/src/windows.rs; shellFocusWorkspacedeparture reporting is incrates/compositor/src/control.rs, with lease application incrates/compositor/src/runtime.rsand state incrates/compositor/src/state.rs. Focused tests and local checks passed; exact-head CI run 38099358045 is still running. Keep the PR draft until the shared integration base is reconciled and CI plus journey proofs pass.Other forward status:
No currently open PR is merge-ready based on the present exact-head evidence. The already-green docs and toolchain PRs #570 and #568 were merged earlier.
hanthor commentedon Oct 11, 2026
Wave 2 qualification update (2026-10-11):
afaa7b1eexact-head CI run 38099358045 passesJ-WS-NEXTin the journey log. Its separategtk-shelljob passesG-WORKSPACE-SLIDE, including the second-press retarget check. PRs WIP: output rotation + sensor orientation backend (#345) #601–WIP: lockdown policy engine + admin UX (#357) #604 failing J-WS-NEXT are based on heads that do not containafaa7b1e; those runs are pre-fix reproductions, not counterevidence.G-GRID-SHORT-PAGES, then the slide proof stopped atslide_began: not found; the script called an undefined helper before reaching its retarget assertion. Removed that stray call in commitda8cc9d7. Fresh CI 38101340955 and measured coverage 38101340848 are running for the new head.G-GRID-SHORT-PAGES(the dedicated GTK job passed that same gate), and Marlin VM repeat 5 timed out during the lifecycle probe after four successful pristine boots. The VM artifact shows the guest stayed on tty1 with virtio GPU initialized; the lifecycle probe process was still running at timeout. These need follow-up before exact-head qualification.All these PRs remain drafts pending dependency integration and full exact-head green checks. No merge-readiness is claimed.
hanthor commentedon Oct 11, 2026
Stack integration update (2026-10-11): PR #601 is now a clean draft stacked on PR #600's branch w2-338, with base afaa7b1 and head 02b5903. Exact-head CI 38102579871 and measured coverage 38102579869 are running on the combined workspace-retention + rotation stack.
The prior standalone head da8cc9d lacked afaa7b1. Its J-WS-NEXT failure was expected, and after the test-helper correction its slide gate reached the real retarget assertion and failed without workspace retention. That does not establish the combined stack's behavior; the new run will verify it. The old run also exposed separate portal-security and Niri-parity failures that remain unclassified pending the stacked run.
hanthor commentedon Oct 11, 2026
Integration audit update (2026-10-11): exact stack validation is still running on PR #601 head 3ddc580, based on PR #600 head afaa7b1. Build, measured coverage, validation, both decoders, app-content, scroll-proof and drm-smoke have passed so far; journey, gtk-shell and arch-package are still running.
I also verified the merge-base issue: current origin/main is bbc01ed, while PR #600 still has base c387326, 7 commits behind current main and 114 commits ahead of the merge base; it is DIRTY. PRs #598/#599/#602 share the same old base and are also DIRTY. The #601 stack is useful exact-source qualification, but it is not yet a mergeable v1 integration. Reconcile the intended union against current main before merging any lane; do not close child capability issues from these draft PRs.
hanthor commentedon Oct 11, 2026
Exact-stack run 38102898073 (head 3ddc580) has now failed gtk-shell at G-GRID-DRAG-CANCEL, before G-WORKSPACE-SLIDE ran. This is a new blocker to triage, not a workspace-slide result. The uploaded gtk-shell artifact asserts “real local folder drag has no neighboring-page hint”; its a11y snapshot contains only “Previous page preview” and the trace logs show drag start, pager motion (page=0), then a grid-hover timer firing edge=Start. The screenshot and logs are in the gtk-shell artifact: https://github.com/tuna-os/tuna-desktop/actions/runs/38102898073/artifacts/11688836837
Please diagnose whether the local-folder drag is reordering the source or whether pager hint synchronization is wrong; preserve this gate and rerun it. The journey job is still running, so J-WS-NEXT is not yet adjudicated on this stack. No G-WORKSPACE-SLIDE result from this gtk-shell run.
hanthor commentedon Oct 11, 2026
Exact-stack update — PR #601 head 3ddc580, run 38102898073 (polled 2026-10-11 02:12 UTC):
Passed: build/clippy check, measured coverage, test-strategy validation, control decoder fuzz, app-content, DRM smoke, scroll proof, Arch package, remote-security, portal-security, Niri parity and Marlin image build.
Failed: gtk-shell at G-GRID-DRAG-CANCEL. The real local-folder drag starts, but the a11y snapshot shows only Previous page preview; trace records a tile-hover reorder timer firing. This exits before G-WORKSPACE-SLIDE, so that gate has no result on this stack.
Still running: installed-session journey and the Marlin VM boot/tour. Their exact results are pending. The earlier stack-base reconciliation blocker also remains: PR #600/#601 need the intended v1 union reconciled against current main before merge; the lane stack is qualification evidence only.
hanthor commentedon Oct 11, 2026
Exact-stack journey result (run 38102898073, PR #601 head 3ddc580): installed-session qualification passed. The uploaded journey artifact at https://github.com/tuna-os/tuna-desktop/actions/runs/38102898073/artifacts/11688164736 records
J-WS-NEXT pass Super+PageDown activates workspace 1; nested.log recordstuna-compositor: workspace now 1. This verifies the J-WS-NEXT workspace-retention fix on the stacked build and the installed Debian-format candidate.The run remains incomplete: gtk-shell failed earlier at G-GRID-DRAG-CANCEL, so G-WORKSPACE-SLIDE was not reached; the Marlin VM boot/tour is still running. No capability or release gate is closed by this one journey result.
hanthor commentedon Oct 11, 2026
Exact-stack update — 2026-10-11 UTC
3ddc5800run 38102898073: J-WS-NEXT passed. GTK shell failed earlier at G-GRID-DRAG-CANCEL, so this run has no later workspace-slide result. The Marlin VM job is still in progress.afaa7b1e; that shared compositor change grants the departed workspace a grace lease through dynamic compaction. The exactafaa7b1erun reports both J-WS-NEXT and G-WORKSPACE-SLIDE green.775a93a9), stacked onw2-345, isolates a GTK hypothesis from the current blocker: the Carousel's pointer paging competes with a local tile drag and changes the preview page. Exact-head CI is pending. This remains an unverified candidate, not a closed capability.No v1 release gate is being treated as complete from these lane results.
hanthor commentedon Oct 11, 2026
Main-base integration candidate — 2026-10-11 UTC
Draft PR #609 merges current
main(bbc01ed2) with the v1 implementation stack atafaa7b1e, resolving the ten overlapping files in an isolated worktree. It retains the current-main workspace-slide proof timing and the actual GTK accessibility proof/ledger gate. Head:68e3db2a.Exact-head checks, coverage, both decoder jobs, and validation are pending. This branch is for combined-tree integration only; component PRs and capability issues remain open until their scoped proofs and all v1 release gates pass.
hanthor commentedon Oct 11, 2026
Integration status — 2026-10-11
The workspace failure shared by J-WS-NEXT and G-WORKSPACE-SLIDE is traced to workspace pruning/remapping during an active slide. The existing lease fix is commit afaa7b1, carried in the #600 → #601 stack. On #601 head
3ddc5800, thejourneyjob in run 38102898073 passes those two keyboard-switch proofs.The #603–#607 lane branches still need to inherit that stack commit. Muse has the authorized lane-by-lane restack and exact-head CI queued behind each current workflow reaching terminal; no lane merge is authorized by the current evidence. As of this update, the active runs are still in progress.
This does not satisfy the full v1 epic: child capabilities and all integration, hardware performance, package/image, Corral, and 14-variant publication gates remain open until their required evidence is recorded.
hanthor commentedon Oct 11, 2026
Exact-head CI follow-up — 2026-10-11 UTC
The first four lane restacks exposed a shared integration regression: older bell-example fixups reintroduced an inline
idle_schedulemodule on top of the production-path module in the #601 stack (E0428, duplicate definition). I removed only the redundant inline helper and pushed corrected heads:f7ccb9ce; fresh CI38108569996, coverage38108569999, validation38108570013.350d610c; fresh CI38108570450, coverage38108570337, validation38108570304.cd8a4f4a; fresh CI38108570998, coverage38108571008, validation38108571182.56ffa023; fresh CI38108571436, coverage38108571441, validation38108571430.At this update, those corrected CI/coverage runs are still active; strategy validation passed for all four. The original clippy failures were on superseded heads and do not qualify lane behavior.
PR #614 (
b711cf00) remains on its pre-current-main base while exact-head journey, GTK, and Marlin VM jobs run; completed check, coverage, app-content, DRM, scroll, Arch, image, remote-security and Niri checks pass. PR #609's alternating stock-vs-candidate performance comparison is also actively measuring; do not cancel it for a rebase. No capability or release gate is closed by these partial results.hanthor commentedon Oct 11, 2026
Workspace slide fix merged — 2026-10-11 UTC
PR #614 is merged to
mainas2ad5d3474ff132a885ac50121645035f10d3bd5c. Its exact-head run completed all 16 checks successfully, includingjourney,gtk-shell, andmarlin-vm. The scoped change letsWorkspaceSlide::observeretarget a changed active workspace while following a touch gesture; its new test covers a second and third rapid workspace switch during a swipe.This closes only the mid-swipe retarget defect covered by #614. It does not close the broader workspace/gesture capability or release gate. The J-WS-NEXT report on several lane heads remains under investigation in the separate compositor key-input path (
windows.rs); lane results must be rechecked on the merged base before claiming that behavior passes.hanthor commentedon Oct 11, 2026
J-WS-NEXT evidence correction — 2026-10-11 UTC
The four runs Muse cited (jobs 114324902419, 114332546988, 114328607571, 114328824392) ran on Oct 10 between 22:14 and 22:57 UTC. The root fix
afaa7b1was authored Oct 11 at 00:42 UTC, so those failures predate it. The later #601 run 38102898073 passed J-WS-NEXT; #603's current headf7ccb9cecontainsafaa7b1and its journey is still running.#604's current head
ec82cf09is not actually based on the #601/w2-345 stack (its ancestry merge-base isa445af2e). The GitHub PR base setting alone does not put that code in the CI checkout. After #604's live checks finish, it needs a true restack on w2-345 and exact-head CI. Keep the broader J-WS capability open until that and the other scoped proofs pass.hanthor commentedon Oct 11, 2026
App-grid drag lane evidence — 2026-10-11 UTC
PR #608 head
3b32d56ahas green exact-head check, journey, coverage, GTK-shell, package, and security/parity jobs. Its journey passes the app-grid drag coverage that failed asG-GRID-PAGE-PEEKon #613. #608's Marlin VM job is still a blocker: it timed out at 903 seconds withV-DISPLAY-MANAGER,V-PANEL, andV-SHELLfailures, so #608 is not mergeable yet. Keep the relevant capability and release gate open until the installed-image failure is diagnosed and exact-head qualification passes.60 remaining items
test(vm): observe gsd's refused vm power-off through logind's state
test(gtk): never overwrite an unread synthetic swipe phase
feat(a11y): GNOME 51 on-screen keyboard (P-A11Y-03)
feat(a11y): GNOME 51 on-screen keyboard (P-A11Y-03)
feat(session): run gsd-media-keys so the power key follows power-butt…
feat(compositor): Mutter 51 window session restore via xdg_session_ma…
fix(compositor): save and restore session windows exactly when Mutter…
feat(a11y): GNOME 51 on-screen keyboard (P-A11Y-03)
feat(compositor): Mutter 51 window session restore via xdg_session_ma…
feat(a11y): GNOME 51 on-screen keyboard (P-A11Y-03)
feat(a11y): GNOME 51 on-screen keyboard (P-A11Y-03) (#839)
hanthor commentedon Oct 31, 2026
Published beta.2-2 Corral qualification: evidence PR #968 (#968), image ghcr.io/tuna-os/marlin@sha256:d0e65bce0ac55cb6c58bcf3739e30d6372fe4be978e6ea7c0c1310b3962bdfa5, guest tuna-desktop 1.0.0beta.2-2, no tuna-greeter. Full GDM login → all 27 daily-driver steps → logout, VM deleted. Night Light #339 now passes (setting true, org.gnome.SettingsDaemon.Color owned by tuna-compositor). However notify-send still fails Unknown method GetServerInformation (#843); lock ScreenSaver.GetActive=true but LockedHint=no (#846). Frame review still shows Dark Style tile off with prefer-dark (#844), banner over date menu (#845), and translucent power popover (#847). Raw script 24 pass / 3 fail: the third fail is zero VM backlights despite PipeWire Dummy Output, not a new product bug. This is evidence about the immutable tagged beta.2 payload, NOT a claim that fixes on current source main are broken. No new product bug established. Published-image nightly for this same digest: https://github.com/tuna-os/tuna-desktop/actions/runs/41199130139 .
hanthor commentedon Oct 31, 2026
Owner direction: temporarily defer albacore:tuna while the Albacore GDM Mesa crash is being fixed elsewhere. Stop duplicate Mesa/admission/publication work in this lane; preserve its source and receipts for handoff. Albacore is deferred and unqualified, not passed or closed by this exception. Continue the other variants and retain all unrelated acceptance gates. Requalify Albacore once the external Mesa fix is available; this is not an all-variant release declaration.
hanthor commentedon Nov 10, 2026
2026-11-10 project review: findings filed as issues
A full review of main
8cd7dd75against the v1 bar. Every finding is now an issue.Untracked GNOME 51 behaviours (no code, no ledger row; added to the capability list in the body as
missingrows): #1033 clipboard retention after the copying app closes, #1034 X11 server-side frames, #1035 "not responding" dialog, #1036 World Clocks and Weather, #1037 MPRIS media controls, #1038 Airplane Mode and keyboard backlight toggles, #1039 Switch User, #1040 InputCapture, #1041 Thunderbolt authorisation, #1042 captive-portal login. Clipboard retention, X11 frames and the unresponsive-app dialog are the ones a daily user hits first.Delivery and release
stage/stalled); split Complete native protocol consumers and require explicit-sync qualification #1005.marlin:tunaimage carries the notify-send and LockedHint fixes already on main.docs/v1.mdthat "no GNOME fallback" covers the session (login is GNOME Shell under GDM) and budget a re-baseline per GNOME release.Platform and performance
Security
zwlr_layer_shell_v1is open to every client.The body's ledger note and per-row statuses were refreshed in the same review (the seven rows that read
missing, #338 #341 #344 #349 #357 #362 #366, now readpartial, and #591 readspartial).hanthor commentedon Nov 10, 2026
2026-11-10 implementation lanes from the review
Each PR implements one filed gap, verified locally with
cargo fmt,cargo clippy -D warningsand the touched crates' tests; nested/installed proofs run in CI. No ledger row moves topassfrom these.Ledger rows and stale-doc fixes: #1052. Not started (need a decision, design or hardware): #1034 X11 frames, #1036 World Clocks/Weather (no GWeather binding available), #1043–#1045, #1049–#1051. #1047 has a Smithay upstream audit to decide on.