Files
sysadmin-chronicles/docs/WORKSTATION_POLISH_BACKLOG.md
44r0n7 0265afa054 chore: bootstrap lean sysadmin-chronicles repo
Import the runnable game code, content, docs, scripts, and repo guidance while leaving local agent state, dependency installs, build output, and backup copies out of the published tree.
2026-05-02 11:49:07 -04:00

7.1 KiB

Workstation Polish Backlog

Captured from playtest notes. These items are intentionally left unresolved for a later pass.

Launcher And Viewer

  • Make ./scripts/start-game.sh executable by default. RESOLVED — file is rwxr-xr-x.
  • Prevent Chromium from auto-launching on workstation login. RESOLVED — removed the game-hud.desktop autostart entry from workstation.sh. Players open the Axiom Works portal from the desktop launcher when they want it.
  • Fix fullscreen toggling in the workstation viewer. The current FULLSCREEN.txt says Shift+F12 but that is the cursor-release binding; fullscreen toggle is F11. RESOLVED — Renamed to VIEWER_HELP.txt, corrected key bindings, expanded to cover fullscreen, cursor release, zoom, copy/paste, and USB redirect.
  • Make sure the player can exit fullscreen without shutting down the VM.
  • Investigate whether virt-viewer / the SPICE client can auto-detect and apply the host's native resolution when entering fullscreen mode. SPICE supports dynamic resolution via the vdagent service (already installed); verify the guest spice-vdagent is running and that the display XML uses <channel name="spicevmc"/> so resize events actually reach the guest.

HTTPS / TLS

  • Make all in-VM websites (portal, Sage, company website) serve over HTTPS. Approach: generate a self-signed CA during workstation cloud-init, install it into Chromium's trust store and the system CA bundle, then issue a wildcard or multi-SAN cert for *.axiomworks.corp, *.axiomworks.internal, and portal.axiomworks.internal. Configure the game server to serve TLS (or put nginx in front for all sites), and update all internal URLs to https://. No browser warnings, everything looks legitimate. Not required for gameplay but raises the production feel significantly.

Desktop UX

  • Ensure the Axiom Works portal desktop icon is executable/trusted out of the box. RESOLVEDPortal.desktop is provisioned with permissions 0755, and workstation.sh seeds GVFS trusted metadata with a login-time reload fallback.
  • Remove mail from the top of the XFCE applications menu, since the portal handles email. (Low priority — no mail client is installed, so this is unlikely to appear.)
  • Set Tilix as the default terminal entry in the applications menu. RESOLVEDupdate-alternatives --set x-terminal-emulator /usr/bin/tilix and helpers.rc both configured in workstation.sh runcmd.
  • The XFCE Applications → System → Terminal Emulator menu entry still launches the XFCE terminal emulator instead of Tilix. update-alternatives sets the system default but XFCE's own preferred-applications config (xfce4-terminal.desktop precedence) overrides it for that menu entry. Fix by either: removing xfce4-terminal from the installed packages, or writing a ~/.config/xfce4/helpers.rc entry that explicitly maps TerminalEmulator=tilix, or adding a preferred-applications.xml override in the XFCE config directory.
  • Keep the XFCE dark theme as the default desktop theme. RESOLVEDxsettings.xml sets Adwaita-dark theme in workstation.sh.
  • Tilix launched from the desktop icon opens in /Desktop by default instead of /home/player. Fix the Terminal.desktop launcher to set Path=/home/player so the initial working directory is the home directory. RESOLVEDPath=/home/player added to Terminal.desktop in build-workstation.sh.
  • Preserve clean desktop icon placement after removing cidata. RESOLVEDworkstation.sh seeds XFCE desktop icon layout files so Terminal and Portal sit in the chosen top-right positions and viewer help stays bottom-left after rebuilds.

Workstation Lifecycle

  • Take a clean snapshot after the workstation is fully configured and validated. RESOLVEDseed-vms.sh takes baseline.day-one and baseline.recovery snapshots after workstation build.
  • Treat workstation shutdown as the end-of-shift game exit; save workstation state. RESOLVED (server side)VMManager.ensureWorkstationLive() in the Node.js server handles startup. Game server cleanly shuts down when start-game.sh exits (SIGTERM). VM suspend-on-quit is a future enhancement.
  • Rebuild or restore from the clean snapshot when needed, but allow the live workstation to drift during play. RESOLVEDalways_live: true in workstation.json means shift checkpoints skip the workstation; it drifts freely and is only restored from baseline.recovery on catastrophic failure.

Terminal Experience

All in-game terminal simulation items are obsolete — the player uses a real Tilix terminal directly in the XFCE workstation VM. Arrow key history, tab completion, copy/paste, scrollback, and interactive programs (vim, htop, etc.) all work natively.

Browser and Bookmarks

  • The Chromium bookmarks bar shows the default Debian bookmarks. The game-specific bookmarks are buried under a "Managed bookmarks" folder instead of sitting directly in the bar. Move the managed bookmarks to the top-level bar and remove the default Debian entries. This is controlled by the ManagedBookmarks policy in /etc/chromium/policies/managed/bookmarks.json; restructure the JSON so items appear at bar level rather than inside a named folder.
  • All four managed bookmarks go to the same URL; anchors don't work. RESOLVED — Bookmarks reduced to two: "Axiom Works Portal" and "Sage (KB)" at /sage/.

Sage — Knowledge Base

  • Sage is intended to be a navigable knowledge base, not just a search box. It should feel like a real internal company wiki: organized into sections and categories that a player can explore by browsing, in addition to searching. The content is the KB data already planned for the game.
  • Search should be lightweight and practical — something like Meilisearch (or a similarly small embedded-first search server) that indexes the KB content and serves fast full-text results without requiring a heavy backend.
  • Sage should be a completely separate web application from the Axiom Works portal. It should have its own URL, its own visual design (distinct look and feel from the portal), and its own place in the bookmarks bar. In a realistic company, documentation tools are separate products (Confluence, Notion, internal wikis) from the ticketing portal — Sage should feel the same way.
  • Add a Sage bookmark to Chromium once Sage has its own URL.

VM Performance

  • Guest VM RAM maxed causing hangs. RESOLVEDRAM_MB raised to 1536 MB; 1 GB swap file added via runcmd in build-workstation.sh (fallocate + mkswap + fstab entry). Rebuild required to take effect.

Visual Cleanup

  • Hide or remove the cidata desktop icon. RESOLVEDbuild-vm.sh detaches the cloud-init seed ISO after workstation readiness, so the CD-ROM is not exposed on the desktop or in file-manager device lists. xfce4-desktop.xml also keeps removable/device desktop icons hidden as a fallback.
  • Hide the internal VirtIO Disk from Thunar's Computer view. RESOLVEDworkstation.sh installs a udev rule setting UDISKS_IGNORE=1 on vd* system disk devices, keeping internal VM storage out of player-facing file-manager device lists.