feat: config-driven architecture + RSS feed + notifications#41
feat: config-driven architecture + RSS feed + notifications#41howardpen9 wants to merge 1 commit intoduanyytop:masterfrom
Conversation
Major improvements to the fork: - Extract all tracked repos to config/sources.yaml (YAML-driven) - Add MCP ecosystem tracking (6 repos: spec, SDKs, servers) - Default LLM to Kimi Code API (ANTHROPIC_BASE_URL override) - Add Atom/RSS feed generation (feed.xml) - Add Slack/Discord/Telegram notification support - Generalize pipeline to support N groups (not just CLI + OpenClaw) - Enrich manifest.json with labels and emojis per report New files: - config/sources.yaml — all tracking sources configuration - src/config.ts — YAML config loader with validation - src/rss.ts — Atom feed generator - src/notify.ts — webhook notification dispatcher Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Thanks for this PR — high quality work across the board. Let me share my thoughts on each part: ✅ Happy to merge
This is where I'd push back a bit:
Minor: code comments One small ask — most comments in the new files are in Chinese. We'd prefer English for comments and docstrings so the codebase stays accessible to Suggestion: Would you be open to splitting this into two PRs? RSS + notifications + MCP tracking I can merge quickly. The config-driven refactor Let me know what you think. |
|
I will close this pr and see the #122 |
Summary
CLI_REPOS,OPENCLAW,OPENCLAW_PEERS) intoconfig/sources.yaml. Adding/removing tracked repos now only requires editing YAML — no TypeScript changes needed.src/rss.tsgeneratesfeed.xmlon every run, enabling RSS reader subscriptions.src/notify.tsdispatches digest summaries to Slack, Discord, and Telegram via webhooks (opt-in via env vars).src/index.tsrefactored to iterate over N config-defined groups instead of hardcoded CLI vs OpenClaw logic. Each group independently runs fetch → summarize → compare → save.manifest.jsonnow includeslabelandemojiper report (read from config), enabling richer Web UI navigation.New files
config/sources.yamlsrc/config.tssrc/rss.tssrc/notify.tsChanged files
src/index.tssrc/generate-manifest.ts.github/workflows/daily-digest.ymlfeed.xmlto git addpackage.jsonyamlruntime dependencyNew runtime dependency
yaml(zero-dependency YAML parser, ~50KB) — the only additionBackward compatible
ai-cli.md,ai-agents.md,ai-web.md,ai-trending.md) are still generatedprompts.tsare preserved and reusedweb-state.jsonformat is unchangedclaude-sonnet-4-6if no config overrideTest plan
pnpm typecheckpassespnpm lintpassespnpm startgenerates all expected reportsfeed.xmlis valid Atom XMLconfig/sources.yamlproduces a new report without code changes🤖 Generated with Claude Code