Repository navigation
feat(market-data): resolve exchanges with ISO MIC catalog - #1828
Merged
Merged
Conversation
afadil
force-pushed
the
codex/exchange-catalog-main
branch
from
September 27, 2026 20:33
d5749be to
e4b4df3
Compare
afadil
marked this pull request as ready for review
September 28, 2026 13:13
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
1 task done
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.
Valid ISO 10383 exchanges were unavailable whenever Wealthfolio lacked a curated provider rule. Unknown or ambiguous dotted tickers could also be rewritten before their venue was verified.
This adds one pinned, complete ISO MIC snapshot for exchange identity and keeps
exchanges.jsonfocused on provider symbol conventions and display metadata. The curated catalog covers 74 exchanges and can grow as provider rules are verified. Active ISO exchanges remain selectable without a curated entry; exact provider symbols can be supplied per asset. A MIC-lessABC.ZZretainsEQUITY:ABC.ZZ, and ambiguous suffixes such as.AErequire an explicit MIC or an exact provider result before automatic quotes are trusted.One guarded migration corrects known legacy MIC aliases while preserving asset IDs and skipping identity collisions. It never merges financial histories. Its rollback is a no-op because converted rows cannot be distinguished from pre-existing canonical rows. Unrelated profile edits preserve stored identities. Explicit identity corrections either save successfully or show a localized duplicate-identity error without modifying either asset.
This covers #1647's three confirmed non-ISO MICs and maps legacy
XAQEtoAQSE, supported by Yahoo's exchange list..ILremains a legacy provider suffix without inferring an ISO MIC from the suffix alone.Validation includes focused core asset and frontend tests, the AI suite with
test-utils(including updated draft-output snapshots), provider/import regressions, the migration conversion/collision and embedded-chain tests,pnpm check, translation parity, both frontend builds, Rust format and strict Clippy checks, and desktop/server compilation. The focused exchange-edit browser regression exercises the real web API and SQLite: unrelated saves, duplicate-identity rejection, and selecting an ISO-only venue. Currency-casing regressions cover FX/crypto in both manual and market modes. Live provider coverage is not exhaustive.Supersedes #1647, including its MIC corrections and collision-safe migration.