fix: 4 briefing tweaks — ⚪ zero-change futures, S&P PMI flag, inline app trends, video filter - #1
Merged
Merged
Conversation
…trends, video filter
1. Futures: use ⚪ emoji for exactly 0.00% change (via neutral sentiment → ⚪)
- telegram.ts: getSentimentEmoji returns ⚪ for 'neutral' (was empty)
- economic-calendar.ts: remove explicit neutral sentiment from calendar items
so they don't accidentally pick up the new ⚪ emoji
2. Economic Calendar: fix 🇬🇧 flag on S&P Global Services PMI Flash
- TradingView assigns country=GB to S&P Global PMI events (their HQ country)
even when they measure the US economy
- Add getEffectiveCountry() which overrides GB→US for S&P Global events that
don't explicitly say 'UK' in the title
3. App Store Rankings: inline trend on same line as app entry
- Before: 'Coinbase: #39 Finance' + detail line '↓1 daily'
- After: 'Coinbase: #39 Finance (↓1 daily)' (single line, no detail field)
4. News: filter out episode and livestream content
- New SKIP_PATTERNS: /^new .+ episode/i and /\blivestrea/i
- Catches 'New Cheeky Pint episode from Stripe', 'Yesterday's livestream from @theollupco'
Tests: 384 → 393 (+9 new tests). All pass. Typecheck clean.
getTopEvents was selecting top 5 by market-impact score but displaying them in score order. Added a second sort so selected events render Mon→Fri instead of by importance.
- Update getTopEvents test to expect chronological display order - Add test cases for new skip patterns (discussion, edition, interview, aired) - Add 'ihs' to codespell ignore list (IHS Markit is a company name) - trunk fmt applied to test file
- Format AGENTS.md with prettier (tables, code blocks, spacing) - Add language specifier to fenced code block (MD040) - Disable MD013 (line length) globally — prettier controls wrapping - Ignore osv-scanner on bun.lock (ajv 6.12.6 ReDoS is transitive, no upgrade available)
Replace blanket bun.lock ignore with osv-scanner.toml targeting only GHSA-2g4f-4pwh-qvx6 (ajv 6.12.6 ReDoS). Expires 2026-06-01. Other vulnerabilities in bun.lock will now be reported normally.
chapati23
approved these changes
Feb 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Four focused bug fixes for the morning briefing.
1. ⚪ for zero-change futures
Problem: Futures instruments with exactly 0.00% change showed no emoji (neither 🟢 nor 🔴).
Fix:
getSentimentEmoji('neutral')now returns ⚪. Economic calendar items had their explicitsentiment: 'neutral'removed so they don't accidentally show ⚪ (calendar events have no directional signal anyway).2. 🇺🇸 flag for S&P Global Services PMI Flash
Problem: S&P Global PMI Flash events were showing 🇬🇧 because TradingView assigns
country=GBto them (S&P Global is UK-headquartered), even when they measure the US economy.Investigation: Live API query confirmed
GB | S&P Global Services PMI FlashandGB | S&P Global Manufacturing PMI Flashare returned with country=GB despite being US readings.Fix: New
getEffectiveCountry()function overrides GB→US for S&P Global events that don't explicitly say 'UK' in the title. Explicitly UK-labeled events (e.g., 'S&P Global UK Services PMI Flash') are unaffected.3. App Store Rankings — inline trend
Problem: Daily change info ('↓ 4 daily') appeared on a separate indented italic line below the app entry.
Fix: Trend line is now appended inline in parentheses.
• 🔴 Coinbase: #39 Finance+ separate detail line• 🔴 Coinbase: #39 Finance (↓1 daily)4. News — filter episode and livestream content
Problem: Video-format content was slipping through the
SKIP_PATTERNSfilter.Fix: Two new patterns added to
SKIP_PATTERNS:/^new .+ episode/i/\blivestrea/iTests