Skip to content

Add ticker-bar extension - #29887

Open
kays0x wants to merge 7 commits into
raycast:mainfrom
kays0x:ext/ticker-bar
Open

Add ticker-bar extension#29887
kays0x wants to merge 7 commits into
raycast:mainfrom
kays0x:ext/ticker-bar

Conversation

@kays0x

@kays0x kays0x commented Jul 31, 2026

Copy link
Copy Markdown

Description

Ticker Bar keeps a mixed market watchlist in the macOS menu bar. It supports stocks, crypto, Binance spot pairs and perpetual futures, on-chain tokens, and Polymarket outcomes without requiring an account or API key.

Highlights

  • Show the primary ticker, optional daily change, and optional provider artwork in the menu bar.
  • Search and manage assets across Yahoo Finance, CoinGecko, Binance, DexScreener, and Polymarket.
  • Inspect quote details including daily range, volume, market cap, funding, market state, provider, and freshness when available.
  • Render cached quotes immediately and preserve the last valid value when a provider is unavailable.
  • Batch requests, enforce timeouts, and apply provider-specific cache and rate-limit cooldowns.
  • Bulk edit and validate exact market identifiers for advanced watchlists.

Screenshot

Browse Markets

The Store metadata contains three screenshots covering Browse Markets, Manage Watchlist, and the advanced editor. The README also shows the menu-bar dropdown.

Verification

  • 22 automated tests pass, including refresh-lease and cache-reconciliation coverage.
  • npm run lint passes.
  • npm run build passes.
  • All five commands were tested in Raycast on macOS.

Checklist

- docs(readme): remove temporary release status
- feat(ticker-bar): polish market artwork and menu bar
- feat: initial public release v0.1.0
@raycastbot raycastbot added new extension Label for PRs with new extensions platform: macOS labels Jul 31, 2026
@raycastbot

Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@greptile-apps

greptile-apps Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds the Ticker Bar Raycast extension.

  • Provides menu-bar quotes and watchlist management for stocks, crypto, Binance markets, DEX tokens, and Polymarket outcomes.
  • Adds provider adapters, batching, caching, refresh leases, local persistence, market search, quote details, tests, documentation, and Store metadata.
  • Updates the previously flagged changelog placeholder and generated preference typing.

Confidence Score: 4/5

The PR is not yet safe to merge because removed assets can be restored by in-flight refreshes and the storage lease still permits overlapping protected operations.

Explicit-ID refreshes bypass the current-watchlist guard, while the process-local lock only wraps non-atomic LocalStorage lease operations; concurrent commands can consequently restore removed cache entries or overwrite newer market state.

Files Needing Attention: extensions/ticker-bar/src/market-refresh.ts, extensions/ticker-bar/src/storage-lock.ts

Important Files Changed

Filename Overview
extensions/ticker-bar/src/market-refresh.ts Adds cache-first provider refresh and reconciliation, but explicit-ID refreshes still permit removed assets to be restored.
extensions/ticker-bar/src/storage-lock.ts Adds heartbeat renewal and cleanup, but cross-command acquisition and cleanup remain non-atomic.
extensions/ticker-bar/src/market-storage.ts Implements normalized watchlist and quote persistence while removing the previously flagged manual preference declaration.
extensions/ticker-bar/CHANGELOG.md Adds the initial release entry using the required merge-date placeholder.

Reviews (7): Last reviewed commit: "fix(ticker-bar): make lease cleanup atom..." | Re-trigger Greptile

Comment thread extensions/ticker-bar/src/market-refresh.ts Outdated
Comment thread extensions/ticker-bar/src/market-refresh.ts Outdated
Comment thread extensions/ticker-bar/CHANGELOG.md Outdated
Comment thread extensions/ticker-bar/src/market-storage.ts Outdated
@kays0x
kays0x marked this pull request as ready for review July 31, 2026 23:20
@0xdhrv 0xdhrv self-assigned this Aug 17, 2026
- Adopt cached promises for watchlist, market search, and quote details
- Add confirmation dialogs for destructive watchlist removals
- Improve asset-kind exhaustiveness and menu title handling
- Rename refresh actions to Update Market Data
- Add extension keywords and update documentation for the initial release
Comment thread extensions/ticker-bar/src/storage-lock.ts Outdated
- Add confirmation before replacing the watchlist with defaults
- Abort refreshes that lose the lease or detect concurrent operations
- Harden lease acquisition against simultaneous contenders
- Use cached promise state for reliable menu bar hydration and updates
- Document public provider usage and rate-limit considerations
- Add coverage for exclusive concurrent lock execution
Comment thread extensions/ticker-bar/src/storage-lock.ts Outdated
- Return completed work results even when heartbeat renewal loses the lease
- Prevent clearing a lease owned by another operation
- Add regression coverage for completed work after lease takeover
- Expand ticker-bar ignore rules for generated Raycast and Swift files
Comment thread extensions/ticker-bar/src/storage-lock.ts Outdated
- Remove lease cleanup after ownership loss
- Let completed leases expire to prevent deleting successor locks
- Update storage abstractions and tests for expiration-based cleanup
Comment thread extensions/ticker-bar/src/storage-lock.ts
- Serialize lease acquisition and heartbeat updates per storage key
- Remove completed leases only when ownership is still held
- Extend lease storage with item removal support
- Update tests to verify completed leases do not block subsequent work
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants