This repository was archived by the owner on Jul 6, 2026. It is now read-only.
v1.0.1 — Team Review Polish
odds v1.0.1
8-agent parallel code review — 18 issues fixed across security, design, UX, and code quality.
Critical Fixes
- NSCursor stack corruption — hover on rows without tap handler would corrupt cursor state
- Timer thread safety — search typing indicator mutated @State off main thread
- Silent add failure — search results showed success checkmark even when add was rejected
Design Improvements
- WCAG AA contrast —
text3lightened from #3D3D50 to #52526A (~3.5:1 ratio) - Column alignment — header and row columns now share theme tokens, stay aligned when sparklines toggled
- Spacing system — ExpandedAreaView padding aligned to 12px system
- Unused tokens removed —
limeDim,redDim,footerSmall,buttonSmallcleaned up
Code Quality
- Unified API parser — merged duplicate
eventToMarket/parseEventDictinto singleparseEvent - @mainactor on MarketStore — compile-time enforcement of main-thread mutations
- Removed duplicate formatDelta — consolidated to
Fmt.delta() - DateFormatter cached — no longer recreated on every settings render
UX Polish
- Full i18n coverage — empty states, footer "NO DATA" now localized (EN/中/日)
- Footer ticker deduplication — watchlist items no longer appear twice in ticker
- searchError clears properly — error message dismisses when query shortened