Skip to content

Instantly share code, notes, and snippets.

@alopezari
Last active May 6, 2026 13:36
Show Gist options
  • Select an option

  • Save alopezari/9d982f8302dff421e79b1aaef629f13d to your computer and use it in GitHub Desktop.

Select an option

Save alopezari/9d982f8302dff421e79b1aaef629f13d to your computer and use it in GitHub Desktop.
Desktop Mode v0.7.1 — Cross-charter intelligence digest

Cross-charter intelligence — Desktop Mode v0.7.1

Run: 2026-05-06T12-31-16_desktop-mode · 8 charters · 1 verifier · 1 recon


Bug pattern digest

Four systemic patterns emerged independently across multiple charters. These are not isolated one-off findings — they represent design-level gaps.

1. Discoverability / activation gap

Three separate charters (activation-and-mode, usability-desktop-mode, breadth-tour-lifecycle) independently surfaced the same pattern: Desktop Mode has no visible on-screen affordance for enabling or disabling itself.

  • The portal URL (/desktop-mode/) is the only activation path.
  • The admin bar toggle is invisible inside the desktop shell.
  • There is no "Exit Desktop Mode" button anywhere in the UI.

Verdict: Systemic discoverability failure, not three separate issues.
Confirmed in: activation-and-mode, usability-desktop-mode, breadth-tour-admin.
Confidence: High.


2. REST auth failure on session endpoint

The session persistence REST endpoint (/wp-json/desktop-mode/v1/session) returns 401 Unauthorized even for authenticated admin users. This is a capability/nonce registration bug — the REST route likely lacks a correct permission_callback.

Confirmed in: breadth-tour-lifecycle (CLI-verified via studio wp).
Confidence: High.


3. i18n pipeline gap — JS strings not internationalized

Dock buttons and core UI strings rendered by JavaScript are hardcoded English. The plugin has PHP/POT coverage but the JS build does not call __() / _x() from @wordpress/i18n for these strings. Additionally, "Report a bug" is absent from the POT file entirely.

Confirmed in: i18n-desktop-mode.
Confidence: High.


4. Keyboard focus management broken

Two related issues in the window manager share the same missing implementation:

  • Escape key does not close focused windows (standard desktop UX contract broken).
  • Focus strands on <body> after a window closes (keyboard user loses their position).

Both belong to the same missing focus-trap / focus-return implementation. Windows are rendered as <div role='dialog'> rather than <dialog> elements, so none of these behaviors are automatic.

Confirmed in: window-manager.
Confidence: High.


High-density areas

Area Problems Notes
Window manager 3 (2 major, 1 minor) Keyboard interaction is the weakest surface — drag/resize work visually but keyboard parity is absent
i18n / l10n 3 (1 major, 2 minor) JS translation pipeline is the gap; PHP strings are well-covered
Discoverability / UX 2 major Multiple charters corroborate this as the plugin's biggest usability gap

Clean areas

Area Notes
Session persistence 0 problems. Window state debounce-save and restore work correctly in-browser. Note: the REST endpoint returning 401 is a separate issue from session restore behavior observed via the UI.
OS Settings persistence 0 problems. Wallpaper, accent color, and dock settings persist correctly via the REST endpoint.
Activation write path 0 problems. Core opt-in mechanism (desktop_mode_mode=1 user meta) works correctly.

Surprises not in recon

  • Session endpoint 401: Recon observed the endpoint existed but didn't probe auth. This is the most actionable new finding vs. recon.
  • <div role='dialog'> vs <dialog>: Implementation diverges from documentation/charter assumption — minor, but notable for accessibility tooling.
  • Orphaned user meta on deactivation: Not mapped in recon terrain; discovered during breadth lifecycle charter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment