70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
# Changelog
|
|
|
|
## [1.5.0] - 2026-03-26
|
|
|
|
### Added
|
|
- RSS/Atom feed monitoring as first-class source alongside web search
|
|
- Feed auto-discovery from any URL
|
|
- OPML import/export support
|
|
- ETag/Last-Modified caching for efficient feed polling
|
|
- Boolean query filters: `exclude_keywords` and `required_keywords` per topic
|
|
- Sentiment analysis (positive/negative/neutral/mixed) in importance scoring
|
|
- `alert_on_sentiment_shift` config option per topic
|
|
- Sentiment history tracking in state
|
|
- GitHub release monitoring via `github_repos` config
|
|
- Vendored feedparser (zero pip install needed)
|
|
- Feed discovery via `manage_topics.py discover-feed`
|
|
- OPML import via `manage_topics.py import-opml`
|
|
|
|
## [1.3.5] - 2026-03-03
|
|
|
|
### Changed
|
|
- Hardened subprocess handling and synced monitor docs/metadata.
|
|
|
|
|
|
## [1.3.3] - 2026-02-11
|
|
|
|
### Changed
|
|
|
|
- **Subprocess env hardening:** `monitor.py` now uses an allowlist for web-search-plus subprocess environment (`PATH`, `HOME`, `LANG`, `TERM` + search provider keys only).
|
|
- **Discord delivery flow:** Removed webhook-style delivery from skill docs/flow; Discord alerts are now emitted as structured JSON (`DISCORD_ALERT`) for OpenClaw agent delivery (same pattern as Telegram).
|
|
- **No direct HTTP calls:** Alerting/search integration is documented as agent-mediated JSON output + subprocess execution, without direct outbound HTTP from topic-monitor skill code.
|
|
|
|
## [1.3.2] - 2026-02-11
|
|
|
|
### 🆕 Real Alerting System
|
|
|
|
The alerting system is now fully functional (was a stub before):
|
|
|
|
- **Telegram Alerts:** Send immediate alerts for high-priority findings
|
|
- **Multi-Channel Support:** Telegram, Discord, and Email
|
|
- **Smart Filtering:** Importance scoring determines what gets alerted
|
|
|
|
### Changed
|
|
|
|
- **State Files:** Now stored in `.data/` directory (configurable via `TOPIC_MONITOR_DATA_DIR`)
|
|
- **Telegram ID:** Configured via `TOPIC_MONITOR_TELEGRAM_ID` environment variable (no hardcoded values)
|
|
- **web-search-plus Path:** Now relative by default, configurable via `WEB_SEARCH_PLUS_PATH`
|
|
- **No Hardcoded Paths:** All paths and IDs are now configurable
|
|
|
|
### Environment Variables
|
|
|
|
New environment variables for configuration:
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `TOPIC_MONITOR_TELEGRAM_ID` | — | Telegram chat ID for alerts |
|
|
| `TOPIC_MONITOR_DATA_DIR` | `.data/` | State and findings directory |
|
|
| `WEB_SEARCH_PLUS_PATH` | Relative | Path to web-search-plus script |
|
|
|
|
### Migration
|
|
|
|
If you had hardcoded paths in config.json, update to use environment variables:
|
|
```bash
|
|
export TOPIC_MONITOR_TELEGRAM_ID="your_telegram_id"
|
|
```
|
|
|
|
## [1.2.1] - 2026-02-04
|
|
|
|
- Privacy cleanup: removed hardcoded paths and personal info from docs
|