Skip to content

fix: 4 briefing tweaks — ⚪ zero-change futures, S&P PMI flag, inline app trends, video filter - #1

Merged
chapati23 merged 6 commits into
mainfrom
fix/briefing-tweaks-2026-02-20
Feb 21, 2026
Merged

fix: 4 briefing tweaks — ⚪ zero-change futures, S&P PMI flag, inline app trends, video filter#1
chapati23 merged 6 commits into
mainfrom
fix/briefing-tweaks-2026-02-20

Conversation

@gisk0

@gisk0 gisk0 commented Feb 20, 2026

Copy link
Copy Markdown
Collaborator

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 explicit sentiment: '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=GB to 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 Flash and GB | S&P Global Manufacturing PMI Flash are 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.

  • Before: • 🔴 Coinbase: #39 Finance + separate detail line
  • After: • 🔴 Coinbase: #39 Finance (↓1 daily)

4. News — filter episode and livestream content

Problem: Video-format content was slipping through the SKIP_PATTERNS filter.

  • 'New Cheeky Pint episode from Stripe' (episode content)
  • 'Yesterday's livestream from @theollupco' (livestream)

Fix: Two new patterns added to SKIP_PATTERNS:

  • /^new .+ episode/i
  • /\blivestrea/i

Tests

  • Before: 384 tests
  • After: 393 tests (+9 new)
  • All pass ✅ | Typecheck clean ✅

…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.
Added skip patterns for:
- 'New discussion from @pod' / 'A new X interview'
- 'New/Another new edition of @pod'
- Items mentioning 'aired X hours ago' (media content indicators)
- 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
chapati23 merged commit 5e73d91 into main Feb 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants