Repository navigation
A market terminal: live stock and crypto prices and the news - #384
Open
johnfrankowski8-hub wants to merge 2 commits into
Open
johnfrankowski8-hub wants to merge 2 commits into
johnfrankowski8-hub wants to merge 2 commits into
Conversation
J (or "Market terminal" in Ctrl+K) opens an amber-on-black window with a ticking watchlist, the picked symbol up close, and top headlines. Crypto comes from Coinbase's public prices with no key; stocks and news from Finnhub with a free AGENT_OFFICE_FINNHUB_KEY that never leaves the server. The office proxies both behind the sign-in, caps its Finnhub calls at 50 a minute for everyone, caps its cache and answer sizes, and only follows http(s) news links. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
|
Added a read-only Portfolio panel in 207e377. Type |
Type AAPL 10 182.50 or import a positions CSV (Symbol, Quantity and an optional Average Cost column) and the terminal values each holding live, with today's move and profit or loss. Holdings stay in localStorage: the office is only asked for prices by symbol, and nothing signs in to a broker. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What it does
J (or Market terminal in the Ctrl+K palette) opens an amber-on-black market window:
AAPL) or a coin pair (BTC-USD) and press Enter to add it. The list is kept in the browser.Crypto comes from Coinbase's public prices and needs no key. Stocks and news come from Finnhub and need a free
AGENT_OFFICE_FINNHUB_KEY. Without the key, the window says so and links to the sign-up page.How it plugs in
src/server/market.tsholds the data proxy, andsrc/server/http/routes/market.tsadds/api/market/quotesand/api/market/news, both behind the signed-in session.src/shared/market.tshas the types and symbol validation.src/client/features/market/has the window.main.tsgets its install line, and the palette and help each get one row.docs/features.md,docs/controls.mdanddocs/configuration.mdare updated.Safety
noopener noreferrer. All third-party text is rendered as text, never HTML.Verification
npm run typecheckpasses.npm run buildpasses.tests/market.test.tscovers symbol validation, the no-key behaviour, the key staying in the header, news-link filtering and the 50-calls-a-minute cap.size,client-structure,client-helpandpalettetests pass.clonetests, twoclient-registryinteraction-kind tests and the symlink test fail the same way on a cleanorigin/main, so they aren't from this change. The fullnpm testrun also hung at the drunk-vision test, so the test files after it were run separately.🤖 Generated with Claude Code