Files
iceglass/CHANGELOG.md
T
rzen 89060d7177 Rebake team logos at 72×72 for crisp notification thumbnails
The notification thumbnail's native display size is ~48 physical pixels
(measured empirically with a size-ladder test attached via the dev menu).
Shipping logos at 512×342 forced macOS to downsample ~10×, which is what
was producing the blurry/aliased team logos in banner thumbnails.

- Pre-render logos at 72×72 (1.5× over native; stays sharp, gives a little
  extra detail for retina displays without triggering aliasing)
- Trim transparent margins before fitting: NHL brand SVGs pad their
  viewBox generously, so the actual logo was only ~60% of the bundled
  image. square_logo.swift now scans the alpha channel, crops to the
  tight bounding box, then fits aspect-preserved into the 72×72 canvas.
- Drop the 32 unused TeamLogo_*.imageset asset-catalog entries (dead code
  since the team-filter feature was removed); notifications load PNGs
  from the filesystem bundle subdir
- Move TeamLogos/ → Resources/TeamLogos/ and update project.yml source
  paths; excludes: on the recursive scan prevents duplicate flat copies
  that were bloating the bundle
- Simplify NotificationManager: drop SVG fallback (macOS doesn't accept
  SVG attachments) and content-hash identifier experiments; back to the
  minimal working config
- Dev menu: add "Thumbnail Size Test" which fires a ladder of 10 test
  notifications (16…128px) for future sizing verification
- Fire a test game-start notification on startup in DEBUG builds so the
  dev loop doesn't require clicking through the menu after each launch
- Scripts/square_logo.swift: alpha-bbox trim + aspect-preserved fit
2026-04-19 20:59:33 -04:00

29 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## April 2026
- Team logo download pipeline now produces 128×128 transparent squares directly (via a new `Scripts/square_logo.swift` helper called from `download_team_logos.sh`), so notification attachments can ship the bundled PNG as-is and the banner thumbnail renders crisply without runtime compositing
- Game state tag (PRE / LIVE / CRIT / OVER / FINAL / OFF) now surfaced on each daily game row and on live series rows in the ROUND block
- Playoff series rows in the ROUND block are always clickable (open the NHL series page) and mark completed series as "Final"
- Goal notifications now include the scorer's sweater number, name, and strength tag (PPG / SHG / EN) when available (derived from `/gamecenter/{id}/play-by-play`)
- Regular-season game rows now show the league-wide game number (derived from the NHL gameId)
- New PLAYOFFS ROUND section lists every active series with series score, next game number, and upcoming tip-off time
- Playoff bracket fetched from `api-web.nhle.com/v1/playoff-bracket/{year}` only when needed (initial load and after a playoff game finalizes)
- Removed Team filter option (per-team filtering and team-specific menu bar icon)
- Initial project setup with macOS menu bar app
- NHL scoreboard API integration showing yesterday/today/tomorrow games
- Dynamic polling based on game state (7s live, 10min game day, 1hr idle)
- Click game to open NHL GameCenter, option-click for NHL Videocast
- NHL shield icon in menu bar
- About window using IndieAbout
- Launch at Login support
- Game start notifications (triggered on FUT→LIVE state transition)
- Goal scored notifications with scoring team logo
- 32 team logos downloaded from NHL CDN (SVG + PNG)
- Logo download script for seasonal updates (Scripts/download_team_logos.sh)
- Display Options: Yesterday/Today/Tomorrow, Today/Tomorrow, or Today only
- Game count shown next to menu bar icon
- Game count shown per day in dropdown headers
- Menu item format: "NYR @ WAS 0:2 (FINAL)" / "DAL @ TOR Today @ 7:30 PM"
- NHL shield renders with full color (not template silhouette)