Skip to content
This repository was archived by the owner on Jul 6, 2026. It is now read-only.

Releases: ar-gen-tin/odds

v1.0.2 — Icons + Price Alerts + Dynamic Menubar

Choose a tag to compare

@ar-gen-tin ar-gen-tin released this 19 Mar 15:29

odds v1.0.2

Icons Restored

  • App Icon: #6C Cyber Matrix 3×3 (color SVG + .icns)
  • SVG Assets: color, mono-dark, mono-light, menubar template, full logo
  • AppIcon.icns bundled in SupportFiles/

New Features

  • Dynamic menu bar icon — color-coded triangle reflecting market trend (green=bullish, red=bearish, orange=neutral, gray=offline)
  • Price alert systemAlertManager + PriceAlert model, fires macOS notifications when market crosses threshold
  • Hide from DockNSApp.setActivationPolicy(.accessory) via AppDelegate
  • Makefilemake run (dev build), make release (signed), make dmg (distributable)
  • Info.plist — LSUIElement, bundle ID, ATS config

Tech

  • MenuBarIcon.swift renders dynamic NSImage with NSBezierPath
  • PriceAlert.swift manages persistent alerts with UNUserNotification
  • Zero new dependencies

v1.0.1 — Team Review Polish

Choose a tag to compare

@ar-gen-tin ar-gen-tin released this 18 Mar 03:52

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 contrasttext3 lightened 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 removedlimeDim, redDim, footerSmall, buttonSmall cleaned up

Code Quality

  • Unified API parser — merged duplicate eventToMarket/parseEventDict into single parseEvent
  • @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

v0.1.0 — Initial Release

Choose a tag to compare

@ar-gen-tin ar-gen-tin released this 17 Mar 22:47

odds v0.1.0

A terminal-styled prediction market tracker living in your macOS menu bar.

Features

  • Live feed — real-time Polymarket data with configurable refresh (10s / 30s / 60s)
  • Watchlist — save markets, persisted across launches
  • Search — debounced Polymarket API search with [+ ADD] button
  • 5 tabs — ALL / TRENDING / POLITICS / CRYPTO / WATCH
  • Expandable detail — sparkline, volume, 24h delta, action buttons
  • Terminal aesthetic — IBM Plex Mono, dot leaders, ASCII sparklines
  • 3-language i18n — English / 中文 / 日本語
  • Settings — price format, sparklines, refresh rate, language
  • Footer ticker — scrolling market tape with edge-fade masks
  • Onboarding — boot-sequence animation

Design Details

  • LIVE indicator with breathing pulse animation
  • Smooth hover transitions on all interactive elements
  • Pointer cursor on clickable rows
  • Button hover feedback (primary: fill inversion, secondary: highlight)
  • Edge-fade masks on scrolling ticker
  • Tab hover states
  • Search auto-focus with animated typing indicator

Tech

  • Swift 5.9 / SwiftUI / macOS 14+
  • 22 source files, ~2,400 lines
  • Swift Package Manager build
  • Zero dependencies (system frameworks only)

Requirements

  • macOS 14.0 (Sonoma) or later