12 KiB
12 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Fixed
- Fixed Hyprland configuration warning/error by changing the DVI-D-1 monitor
transformproperty from a string"1"to an integer1(2026-07-09). - tuigreet boot error: removed invalid
--numlockflag from greetd config (not a valid tuigreet parameter). Replaced X11-onlynumlockx onin Hyprland with nativenumlock_by_default = truein theinputsection (2026-06-01). - hypridle SEGV crash loop (ADR N/A, hotfix): sdbus-cpp 2.3.0 had an ABI incompatibility causing hypridle to SIGSEGV in
libsdbus-c++.so.2registerSignalHandler. Fixed by upgrading sdbus-cpp from 2.3.0-1 to 2.3.1-1 (Arch upstream, pulled ahead of Manjaro mirror sync). Also resolves latent ABI issues for hyprlock and xdg-desktop-portal-hyprland (2026-05-22). - Resolved kitty cursor keys not working by disabling the
TERM=xterm-256coloroverride in.bashrc, allowing Kitty to correctly setTERM=xterm-kitty. Added Ansible management forkitty.confto ensure proper terminal behavior and shell integration (2026-05-19). system-upgraderole: GRUB menu assertion now matches Manjaro's realmenuentry 'Manjaro Linux (Kernel: X.Y.Z-MANJARO x64)'format (counted per-kernel-family) instead of the wrongmenuentry .*linux(612|70)regex that always returned 0 hits on Manjaro and broke the live run with a false-negative failure (2026-05-18).system-upgraderole: migration taskchanged_whennow matches pacman's progress lines^<!--(SECTION)-->(N/M)<!--(--SECTION)-->s+(installing|upgrading|removing)sinstead of plain substring matching, so the role's own echo lines no longer trigger spuriouschanged=trueon idempotent re-runs. Verified: second live re-run reportsok=16 changed=0 failed=0 skipped=5(2026-05-18).- Resolved system unresponsiveness issue by addressing critical memory/swap pressure with increased headroom and proactive OOM killing (2026-03-17).
- Identified failed
archlinux-keyring-wkd-sync.servicein system health check.
Added
- Enabled click-and-drag window movement and resizing under the SUPER modifier, and enabled border dragging to resize tiled windows natively, updating both the Hyprland configuration template and keybindings cheatsheet (2026-07-09).
- Documented local dev services in
docs/tech/stack.md: Caddy (systemdcaddy.serviceon port 443) with 14*.localhostsites and mkcert TLS at/etc/caddy/. Registered as a manual override indocs/tech/manual-overrides.md(nocaddyAnsible role exists yet) (2026-07-06). - Investigation learning record
docs/learnings/2026-07-06-caddy-onlyoffice-mcp-sse-investigation.md: Caddycontext canceledSSE aborts (~1.5ms) ononlyoffice.localhost/mcpforwarded tolocalhost:3847(OnlyOffice MCP server). Upstream verified alive (HTTP 406 to plain GET = expected). Handed off to GitLab issue satware/mcp/onlyoffice#92 with 5 hypotheses, 7 investigation tasks, and a proposed Caddyflush_interval -1+transport http { versions 1.1 }mitigation (not applied yet) (2026-07-06). - Waybar USB module: auto-mount USB sticks via udisks2, show hover details (device/model/size/fs/mountpoint), left-click opens in yazi, right-click ejects. Script at
~/.config/waybar/scripts/usb.sh, Ansible-managed viahyprlandrole templatewaybar_usb_script.sh.j2(2026-05-22). udisks2explicitly listed inhyprland_packages(was transitive dep of Dolphin; now direct dep of USB module) (2026-05-22).- Yazi optional deps provisioned via Ansible:
chafa,7zip,resvgadded tohyprland_packages(2026-05-22). - X11 package removal list
hyprland_packages_removeinansible/vars/main.ymlwith corresponding task inhyprlandrole — removesxclipandxselon Wayland-only system (2026-05-22). - ADR 0006: Chrome/Chromium normalization and cleanup decision record (2026-05-22).
- New Ansible role
ansible/roles/system-upgrade/that runs as the first role inworkstation.yml. Performs a fullpacman -Syu, dual-installslinux612(LTS, fallback) andlinux70(stable, new default) kernels with matching headers, and verifies both initramfs images and GRUB menu entries post-install. Invoke stand-alone withansible-playbook ansible/workstation.yml --tags system-upgrade; idempotent on re-runs (2026-05-18). docs/adr/0002-kernel-and-nvidia-strategy.md— ADR documenting the LTS+stable kernel choice and the575xx → 595.71NVIDIA migration for Hyprland/Wayland preparation (2026-05-18).- Pre-flight safety gate in the new role: aborts if free space on
/drops belowmin_free_root_gb(5 GiB by default) (2026-05-18). - Comprehensive NVMe benchmark for Samsung PM9A1 before firmware update: SMART health, hdparm, fio seq/rand benchmarks (2026-04-02). See
docs/tech/nvme-benchmark-pre-gxa7802q.md. - CLI suite update script
scripts/update-cli-suite.shfor Manjaro/Arch tool maintenance (2026-04-02). - Created formal stability tests report documenting the 2026-03-17 memory management improvements (2026-03-17).
- System stability improvements: enabled
systemd-oomdandzswapvia Ansible (2026-03-17). - Memory resource limits for Firebird and Mailpit Docker containers (2026-03-17).
- Implemented and verified advanced memory optimizations: zswap 30% pool, THP madvise, and proactive kernel reclaim tuning (2026-03-17).
- Integrated 16GB swap file management into Ansible roles for consistency and persistence (2026-03-17).
- Comprehensive health report for
mw-pfeddersheim-workstation(2026-03-09).
Removed
- Moved workstation-specific cheatsheets (
hyprland-keybindings.md,screenshot-cheatsheet.md,yazi-cheatsheet.md, and the obsolete workstation copy ofneovim-cheatsheet.md) to the centrallearnrepository (2026-07-09). alesi-routine-morning.service/alesi-routine-morning.timeruser-level systemd units — daily 07:45 morning routine was failing (exit 128, git outside repo). Scriptscripts/daily-routine.shretained for manual use (2026-05-26).- Tier 1 package cleanup (ADR 0007): removed 25 X11/KDE/legacy packages via Ansible — lightdm, lightdm-slick-greeter, lightdm-settings, sddm, sddm-kcm, sddm-breath-theme, xf86-video-{amdgpu,ati,intel,nouveau,vesa}, xf86-input-synaptics, xterm, xorg-{twm,xinit,xkill,server-xvfb}, x11vnc, numlockx, startup-notification, illyria-wallpaper, ntp, spectacle, pamac-tray-icon-plasma. All have Wayland-native replacements already in use. Frees ~80-120 MiB direct + cascade deps (2026-05-22).
- Tier 2 package cleanup (ADR 0007): removed KDE Plasma stack — kwin, plasma-desktop, plasma-workspace, kdeplasma-addons, plasma-nm, plasma-pa, plasma-x11-session, kde-gtk-config, powerdevil, xdg-desktop-portal-kde, plasma-integration, dolphin, dolphin-plugins, kdegraphics-thumbnailers. Plus 45 cascade orphan deps. Dolphin replaced by yazi. Frees ~400 MiB total (2026-05-22).
- Tier 3 package cleanup (ADR 0007): removed ruby (38 packages), love, xorg-server, xf86-input-libinput. No active Ruby usage; no .love files; xorg-server no longer required (xorg-xwayland is independent). Frees ~30 MiB (2026-05-22).
- Tier 2b: removed kscreen, kscreenlocker (KDE screen management) + 10 cascade orphan deps (libkscreen, kdeclarative, plasma5support, libksysguard, etc.). Freed 35 MiB. Replaced by wlr-randr/hyprlock (2026-05-22).
- Removed stale
org.kde.kwalletd6.serviceD-Bus stub from~/.local/share/dbus-1/services/(was a brokenExec=/bin/trueplaceholder) (2026-05-22). - Disabled
bluetooth.service(no BT hardware) andNetworkManager-wait-online.service(unnecessary on wired workstation, speeds up boot) (2026-05-22). - Documented PCIe slot misconfiguration: GPU (GTX 1050 Ti) installed in bottom PCIEX4 slot (PCIe 2.0 x4, ~2 GB/s) instead of top PCIEX16 (PCIe 3.0 x16, ~16 GB/s). 8x bandwidth loss. Physical move required. NVMe also running at Gen2 instead of Gen3 (2026-05-22).
Changed
- Tier 4 package reclassification (ADR 0007): 13 "Misc" packages reclassified to functional domains in
docs/tech/stack.md— uv→Python Toolchain, jq→Shell/Terminal, inxi→Hardware, lsof/zram-generator/mkinitcpio-openswap→Core OS, iproute2/openresolv→Network, perl-image-exiftool/icoutils/innoextract-git→Dev Tools, opencl-headers→GPU Compute, libxnvctrl-580xx→NVIDIA. No packages removed; documentation-only change (2026-05-22). - Chrome/Chromium normalization: removed all Chromium artifacts —
~/.config/chromium/(1.4 GB),~/.local/chrome-cdp/(8.6 GB), 13 broken PWA.desktopfiles, 4 stale PWA manifests from Chrome Preferences,chromium-widevineorphan package (17 MB). System now usesgoogle-chrome-stableexclusively with Wayland-native flags (2026-05-22). ~/.bashrc: removed deadBROWSER_CDP_URLauto-population (curl to localhost:9222 on every shell startup) (2026-05-22).~/.config/chrome-flags.conf: restored Ansible-managed Wayland flags (--ozone-platform=auto, VA-API on NVIDIA,--use-angle=gl, Vulkan disable) — was drifted to X11 mode with garbage flags (2026-05-22).- Waybar config: added
custom/usbmodule tomodules-rightbar (2026-05-22). - Waybar style: added CSS for
#custom-usbwith hover state and color classes (usb-none,usb-unmounted,usb-mounted) (2026-05-22). - Executed
system-upgradeplaybook on the live workstation (2026-05-18).pacman -Syuupgraded 1103 packages; kernel set nowlinux612 6.12.85-1(LTS, was 6.12.77-1) +linux70 7.0.3-1(NEW); NVIDIA migrated to mainline595.71.05for bothlinux612-nvidiaandlinux70-nvidia; legacy*-nvidia-575xxpackages removed. Both/boot/initramfs-6.12-x86_64.img(54 MB) and/boot/initramfs-7.0-x86_64.img(122 MB) generated; GRUB regenerated with menuentries for both kernels. Reboot required: selectlinux70from the GRUB "Advanced options for Manjaro Linux" submenu to activate the new kernel and NVIDIA 595.71.05 modules. Logs:logs/system-upgrade-20260518-101253-live.log. - NVIDIA driver migrated from the pinned
*-nvidia-575xx(575.64.05) branch to the mainline*-nvidia(595.71.05) branch via the newsystem-upgraderole.linux612-nvidia-575xx,nvidia-575xx-utils,lib32-nvidia-575xx-utils,nvidia-575xx-settingsare removed;linux612-nvidia,linux70-nvidia,nvidia-utils,lib32-nvidia-utils,opencl-nvidia,nvidia-settingsare installed in one atomic pacman transaction (2026-05-18). ansible/workstation.yml:system-upgraderegistered as the first role, guarded bywhen: os_type == 'archlinux', with tagsystem-upgrade(2026-05-18).ansible/vars/main.yml: addedkernel_packages,nvidia_kernel_modules,nvidia_userspace_packages,nvidia_packages_to_remove,min_free_root_gbso future kernel/driver pins are a one-line change (2026-05-18).docs/tech/setup.md: new bootstrap step "Run system upgrade & kernel install" before the main playbook, with--tags system-upgradeexamples and a reboot-into-linux70callout (2026-05-18).- Samsung PM9A1 NVMe firmware update applied: GXA7401Q → GXA7801Q (non-SED variant, reboot pending to activate). All nvme-cli steps succeeded (2026-04-02).
- Corrected firmware research: GXA7802Q is SED-only (
00B07); non-SED drives (00B00) require GXA7801Q. Updateddocs/tech/firmware-update-research.mdwith naming convention and correct source. - Updated
.gitignore: addedlogs/anddocs/tech/capabilities/exclusions (2026-04-02). - Increased system swap file size from 4GB to 16GB to prevent OOM-related system hangs (2026-03-17).
- Updated system status in
README.mdanddocs/tech/workstation-health.md(2026-03-17). - Cleaned up deprecated software information from
docs/tech/stack.md(2026-03-13). - Synchronized software versions across documentation files (2026-03-13).