feat(app): 初始化本地通知桌面应用

搭建 .NET 8 WPF 应用骨架,加入系统托盘、单实例启动与主控制面板。
实现本地 HTTP /notify 消息接入、频道严格匹配、免打扰、熔断限流与历史持久化。
补充弹窗样式配置、队列/推挤/替换展示、溢出处理、应用图标和项目文档。

Initial-Commit: true
This commit is contained in:
2026-05-19 01:32:41 +08:00
commit c353845fad
15 changed files with 1909 additions and 0 deletions

36
README.md Normal file
View File

@@ -0,0 +1,36 @@
# Omni-Notify
Omni-Notify is a Windows 10+ WPF desktop app for receiving local structured messages and showing configurable, non-interactive visual popups.
## Tech Stack
- .NET 8 WPF for the desktop UI and popup windows
- Windows Forms `NotifyIcon` for the system tray entry
- Built-in `HttpListener` for local message intake
- JSON persistence under `%LOCALAPPDATA%\OmniNotify\state.json`
## Local Message API
When the app is running, it listens by default on:
```text
http://127.0.0.1:19845/notify
```
Send a POST request with UTF-8 JSON:
```json
{
"channel": "default",
"title": "Build finished",
"body": "The nightly job completed successfully."
}
```
Channels must be created in the control panel first. Unknown channels are blocked and recorded in history as `IllegalChannel`.
## Build
```powershell
dotnet build
```