feat: full pattern matrix — M1 complete, M2 LLM chat, 30+ pattern files #10
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/patterns-expansion"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
This branch completes M1 (log watching + pattern matching + tray notifications), wires M2 (Ollama streaming chat), and builds out the full migration pattern library.
llm.rsstreaming client against Ollama/api/chat;chatTauri command;ChatPanel.vuestreams tokens character-by-characterPattern coverage
Android and iPad pattern files assume zero terminal experience — every command explained from first principles with App Store analogies.
Linux-to-Linux files are tuned to the reader's prior tooling: a Fedora user's arch patterns explain DNF analogues; an Arch user's debian patterns explain dpkg recovery and unattended-upgrades.
Dual-boot supplements (
dualboot-windows.toml,dualboot-macos.toml) are layered on top of the primary pattern file viaPatternFile::extend()whenmigration.dual_boot_withis set. Covers NTFS Fast Startup, clock skew, GRUB overwrite, BitLocker, T2 Secure Boot, APFS mounting.New config fields
Onboarding flow (3 steps)
Test plan
cargo teston a machine with webkit2gtk — Munnin (Linux Mint) is available~/.config/robin/config.tomlsource_os = "windows"in config, confirmwindows-to-debian.tomlloads and NTFS/apt patterns fire correctly on a real Mint machinedual_boot_with = "windows", confirmdualboot-windows.tomlpatterns merge inollama serve), send a message and confirm tokens stream into chat panelsource_os = "android", confirm beginner-friendly pattern bodies appearRelated issues
Closes #1 (M1 foundation), closes #2 (M2 LLM chat). Relates to #3 (pattern expansion), #4 (Linux-to-Linux paths), #7 (onboarding).
- load() now rejects patterns with empty match_text or empty sources list - EventSource derives Serialize/Deserialize with serde tag for emit() readiness - AppLog variant changed to struct form (AppLog { app }) for tagged enum compat - classify() takes &SystemEvent directly (top-level use import, not per-fn) - #[must_use] on classify() - 5 new tests: any-source wildcard (journald+kmsg), applog mismatch, empty-field validationNew SourceOs variants: Android, IpadOs — routed to android-to-* and ipad-to-* pattern files respectively. Pattern bodies assume zero terminal experience; every command explained from first principles with App Store / iOS analogies. Dual-boot supplement system: PatternFile::extend() + load_supplement() in patterns.rs; lib.rs loads dualboot-{windows,macos}.toml on top of the primary pattern file when migration.dual_boot_with is set. Supplement covers NTFS dirty flag from Fast Startup, clock skew (RTC local vs UTC), GRUB overwrite by Windows Update, BitLocker, APFS/HFS+ access, T2 Secure Boot. complete_onboarding() now accepts dual_boot_with: Option<String> and normalises it to "windows"/"macos". Onboarding.vue becomes a 3-step flow: source OS -> (Linux distro if linux) -> (dual-boot if windows/macos). Mobile users skip the dual-boot step entirely. 10 new pattern files (8 mobile + 2 supplements), config.rs tests updated.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.