Skip to content

feat(ui): watchlist keyed by security, closed-fund badge - #88

Merged
daggerok merged 1 commit into
mainfrom
feat/watchlist-by-security
Oct 26, 2026
Merged

daggerok merged 1 commit into
mainfrom
feat/watchlist-by-security

Conversation

@daggerok

Copy link
Copy Markdown
Owner

What changed

  • Watchlist rows merge by security: CUSIP, ISIN, FIGI or SEDOL (recognized by format and check digit, whatever column holds them; a US or Canadian ISIN also gives its CUSIP), else by ticker and name. A ticker alone never merges anything
  • Ticker and name join one security published with different identifier kinds only when none of the groups with that ticker and name disagree on a CUSIP, ISIN or SEDOL; debt rows (bond asset class, coupon or maturity) never meet the issuer stock
  • The Ticker column still shows the ticker; Copy Tickers copies each real ticker once, never a CUSIP or name stand-in
  • Closed funds (status: closed, closedDate, closedSource in index.json) keep their row with a Closed <date> badge that links the closing notice; the Fund Name filter (closed, !closed) and the search find them
  • The page loader reads holdings published as header+array rows too, not only objects

Why

ETF-C3: different securities with one ticker became one Watchlist row (WisdomTree N-PORT sheets gave bonds and FX forwards their issuer's equity ticker, fixed on the data side in #87). Q21: closed funds were not visible as closed

Code from the shared blocks watchlist-key.tsx, closed-badge.tsx, closed.css, ported with securities.ts (workspace ui-std), as in Neos daggerok/Neos#71

How it was checked

  • bun test: 65 pass, 0 fail
  • bun run build, bun build --target=bun src/main.tsx --outfile=/dev/null, git diff --check
  • tc/check.sh: 52 lines, the same as on main, nothing new
  • Browser on dist (headless, silent):
    • brand-uitest.ts: 43 passed, 0 failed; console errors: none
    • columns-uitest.ts: 19 passed, 0 failed; console errors: none
    • categories-uitest.ts: 19 passed, 0 failed; console errors: none
    • clear-uitest.ts: 19 passed, 0 failed; console errors: none
    • security-uitest.ts: 20 passed, 0 failed; console errors: none

@daggerok
daggerok merged commit 8afa690 into main Oct 26, 2026
1 check passed
@daggerok
daggerok deleted the feat/watchlist-by-security branch October 26, 2026 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant