feat(robin): M1 System Presence — journald/kmsg/inotify watcher, pattern classifier, tray badge, chat panel #2
No reviewers
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/robin#2
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/m1-system-presence"
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
macos-to-arch(7 patterns: AUR, Proton, Steam, RetroArch, firmware, codec) andwindows-to-debian(6 patterns: apt, Proton, firmware, codec, snap)robin:eventIPC, and correctly gates the PENDING queue viapanel_opened/panel_closedcommands to prevent double-delivery on re-openNotable fixes applied during review
classify(): validates non-emptymatch_textandsourcesat load time to prevent silent always-matchEventSource::AppLoguses struct variant (not tuple) for serde tagged-enum compatibilityread_to_end+from_utf8_lossyfor UTF-8 resilience on Wine/game logsunwrap_or_defaultpattern)PANEL_OPENAtomicBool prevents PENDING queue accumulation while panel is activeTest Plan
cargo test --libpasses on CachyOS (Xander) — all unit tests indistro,patterns,notify,watcher/journaldnpm run buildpasses (TypeScript + Vue — zero errors)journalctlmatching: trigger a pattern (e.g. AUR build failure) and verify badge + toast appearNotificationLevel::Off: no badge or toast fires, but events still appear in ChatPanel- 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 validationView 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.