Commit graph

3 commits

Author SHA1 Message Date
c356c1d4c5 feat(patterns): add boot, SSH, Flatpak, AppArmor, XWayland patterns across all 25 distro files
Adds 141 new pattern entries via expansion script:

Universal (all 25 files):
- slow-boot-network-wait: detect NetworkManager-wait-online stalling boot
- slow-boot-device-timeout: detect fstab entries for disconnected devices
- slow-boot-long-running-job: surface slow service with systemd-analyze hint
- ssh-permissions-key: catch unprotected private key file warning
- flatpak-missing-runtime: detect missing Flatpak runtime with update/reinstall advice

Per distro family:
- apparmor-denial: added to windows-to-debian (only missing debian target)
- xwayland-crash: added to all files missing it, with distro-correct install cmd
  (apt/pacman/dnf/zypper per target family)

All 42 Rust unit tests pass.
2026-05-24 22:00:23 -07:00
d7c41f07fe feat(patterns): add missing-shared-library pattern to all distro families
Real-world trigger: libQt6PrintSupport.so.6 missing from CheatEngine
portable binary on Linux Mint 22.3.

Windows/macOS migrants double-click a binary, nothing happens, and they
have no idea why — the dynamic linker error goes to journald silently.
Robin catches 'cannot open shared object file: No such file or directory'
in journald and explains the Linux shared library model, pointing to the
right package manager command (apt/pacman/dnf/zypper) per distro family.

Also documents why 'pip install pyqt6' doesn't fix system library errors.

Added to 23 pattern files covering all source OS / target distro family
combinations.
2026-05-20 13:14:36 -07:00
19286e9860 feat(patterns): full Linux-to-Linux distro matrix + M2 LLM chat wiring
Pattern files: 12 cross-family migration pairs covering debian, fedora, arch,
opensuse — each tuned to the user's prior tooling (apt, dnf, pacman, zypper).
Includes the custom linux-to-arch file for experienced distro-hoppers and
the macos-to-arch / windows-to-debian expansions from the prior session.

Code changes:
- patterns::load() accepts source_distro_family: Option<&str> — tries
  specific debian-to-arch.toml before falling back to linux-to-arch.toml
- MigrationConfig adds source_distro_family: Option<String> with serde default
- complete_onboarding() accepts optional source_distro arg and derives family
  via distro_family() for Linux-to-Linux migrations
- llm.rs: Ollama streaming client with Vec<u8> buffer for UTF-8 safety,
  emit errors logged not silenced
- commands::chat: spawns stream task, returns immediately so frontend
  isn't blocked waiting for full LLM response
- lib.rs: registers mod llm and commands::chat in invoke_handler
2026-05-19 08:24:06 -07:00