docs: document /radar and NHC tropical auto-posting - #632
Conversation
…AL_CHANNEL_ID note
📝 WalkthroughWalkthroughDocumentation updates cover channel routing configuration, the ChangesWeather feature documentation
Estimated code review effort: 1 (Trivial) | ~5 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CONTRIBUTING.md`:
- Line 26: Update the TROPICAL_CHANNEL_ID documentation sentence in the
environment-variable table to begin “It can also be overridden…” instead of “Can
also be overridden…”, preserving the existing override details.
- Around line 193-196: Update the sentence describing `_fetch_nhc_product` in
the “NHC Tropical Cyclone Products” section so “the full Discussion text don't
leak” uses the singular verb “doesn't leak,” leaving the surrounding
documentation unchanged.
In `@README.md`:
- Line 15: Update the Scientific Tools description in README.md by replacing
“automatic AI environmental analysis” with “automatic AI-powered environmental
analysis,” leaving the surrounding feature list unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 75fa118f-cf72-4846-8f0a-05494990a2e7
📒 Files selected for processing (2)
CONTRIBUTING.mdREADME.md
| | `HEALTH_CHANNEL_ID` | (Optional) Receives bot health alerts (watchdog degraded, task failures). Defaults to `SPC_CHANNEL_ID` if not set. | | ||
| | `DEV_CHANNEL_ID` | (Optional) Receives watchdog probe-degradation alerts (2/3 warning and session-reset confirmation). Defaults to `HEALTH_CHANNEL_ID` if not set. | | ||
| | `TROPICAL_CHANNEL_ID` | (Optional) Receives NHC tropical cyclone product posts. Defaults to a hardcoded production channel if not set. | | ||
| | `TROPICAL_CHANNEL_ID` | (Optional) Receives NHC tropical cyclone product posts. Defaults to `DEV_CHANNEL_ID`, then `HEALTH_CHANNEL_ID`, then `SPC_CHANNEL_ID` if not set. Can also be overridden at runtime via the `warning_channel:tropical` state key. | |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Make the override sentence complete.
Change “Can also be overridden…” to “It can also be overridden…” for a complete sentence.
🧰 Tools
🪛 LanguageTool
[style] ~26-~26: To form a complete sentence, be sure to include a subject.
Context: ..._ID, then SPC_CHANNEL_IDif not set. Can also be overridden at runtime via the...
(MISSING_IT_THERE)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CONTRIBUTING.md` at line 26, Update the TROPICAL_CHANNEL_ID documentation
sentence in the environment-variable table to begin “It can also be overridden…”
instead of “Can also be overridden…”, preserving the existing override details.
Source: Linters/SAST tools
| ### NHC Tropical Cyclone Products | ||
|
|
||
| `TropicalCog` (`cogs/tropical.py`) auto-posts NHC products — Public Advisory (`TCP`), Discussion (`TCD`), Tropical Weather Discussion (`TWD`), Tropical Weather Outlook (`TWO`), Update (`TCU`), Position Estimate (`TCE`), and Watch/Warning Summary (`TCV`) — routed from the IEMBot NHC feed, with NWWS-OI and IEMBot botstalk as fallback sources for the same authority sequence used elsewhere. Each product is fetched via `_fetch_nhc_product`, which parses storm type/name and bounds the "Summary" section (location/movement/pressure) to the next section header so Watches/Warnings and the full Discussion text don't leak into the channel embed. The full raw product text is posted to a discussion thread attached to the message. A product is only marked posted (deduplicated) after a confirmed successful send, so a failed post (e.g. a permissions issue) is retried rather than permanently skipped. Channel routing follows `TROPICAL_CHANNEL_ID`'s fallback chain, with a `warning_channel:tropical` state-key override available at runtime. | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Correct the subject–verb agreement.
“the full Discussion text don't leak” should use “doesn't leak.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CONTRIBUTING.md` around lines 193 - 196, Update the sentence describing
`_fetch_nhc_product` in the “NHC Tropical Cyclone Products” section so “the full
Discussion text don't leak” uses the singular verb “doesn't leak,” leaving the
surrounding documentation unchanged.
| NWWS-OI fast path, IEMBot fallback, NWS API polling, SPC watch alerts with deduplication, NWS warnings (TOR/SVR/FFW/SPS) routable to dedicated per-type channels with runtime configuration via `/enablewarnings`, lifecycle tracking (CON/EXT/EXA), damage survey detection with DAT integration and photo carousels, VAD hodograph evolution recording for confirmed tornadoes (`/archive` to search). | ||
|
|
||
| **Scientific Tools:** Interactive RAOB/ACARS sounding plots with a fast Skew-T placeholder that upgrades in place (auto-posted near active watches and MDT/HIGH risk areas, with automatic AI environmental analysis), VWP hodographs with named radar sites (with AI-powered analysis buttons), **Context-Aware AI Analysis** (Gemini-powered environmental synthesis cross-referenced with SPC products, Day 1 outlooks, active MDs, and nearby watches), searchable tornado forensics archive, NEXRAD Level 2 downloader, historical radar loop GIFs for any location/time (`/radarhistory`), and IEM-based tornado analytics. | ||
| **Scientific Tools:** Interactive RAOB/ACARS sounding plots with a fast Skew-T placeholder that upgrades in place (auto-posted near active watches and MDT/HIGH risk areas, with automatic AI environmental analysis), VWP hodographs with named radar sites (with AI-powered analysis buttons), **Context-Aware AI Analysis** (Gemini-powered environmental synthesis cross-referenced with SPC products, Day 1 outlooks, active MDs, and nearby watches), searchable tornado forensics archive, NEXRAD Level 2 downloader, historical radar loop GIFs for any location/time (`/radarhistory`), live single-site NEXRAD radar loops with mesocyclone/TVS rotation and experimental PTDS debris-signature detection (`/radar`), NHC tropical cyclone product auto-posting (advisories/discussions/outlooks with thread-based full text), and IEM-based tornado analytics. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Clarify the compound adjective.
Replace “automatic AI environmental analysis” with “automatic AI-powered environmental analysis.”
🧰 Tools
🪛 LanguageTool
[uncategorized] ~15-~15: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...auto-posted near active watches and MDT/HIGH risk areas, with automatic AI environmental ...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 15, Update the Scientific Tools description in README.md
by replacing “automatic AI environmental analysis” with “automatic AI-powered
environmental analysis,” leaving the surrounding feature list unchanged.
Source: Linters/SAST tools
Documents the two v5.43.0 features that were missing from CONTRIBUTING.md and README.md, and corrects CONTRIBUTING.md's stale TROPICAL_CHANNEL_ID description (previously said it "defaults to a hardcoded production channel" — that fallback was removed in #619).
Wiki updated separately (direct push, no PR review on .wiki.git): new Tropical-Cyclone-Auto-Posting page, /radar section on Radar-Downloader, Slash-Command-Reference and Configuration-Guide rows, Home nav links.
Test plan
Summary by CodeRabbit
/radarcommand for generating live NEXRAD Level II radar loops with customizable display options./frontsposts.