fix(basket): industry-grade engine, substitutes, and review fixes - #57
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ssd2658
left a comment
There was a problem hiding this comment.
🔍 Senior Architectural & Code Quality Review for PR #57
Thank you for this PR! The latency improvements (batching ETF lookups, decomposing BasketEngineService into focused components, and adding the fail-open fallback) are great additions.
I have conducted a file-by-file review with a focus on hardcoded credentials/endpoints/paths, configuration management, data integrity, and operational reliability.
Please review the inline comments and suggestions below.
Claim→reserve→persist create, MISSING buy sizing, Unknown-sector soft gates, batched holdings ledger, priceQuality, drafts harden, and review ops fixes. Co-authored-by: Cursor <cursoragent@cursor.com>
Use org GHCR image, direct-deploy.yml -> central-deploy@main, and trade-style preprod gitops/helm flags on portfolio-publish. Co-authored-by: Cursor <cursoragent@cursor.com>
e937ced to
65b69ff
Compare
Summary
includeHeld=true, Unknown-sector soft gates, batched ledger on holdings,priceQuality/priceAsOf, drafts harden (DuplicateKey, Number overrides, payload cap).am-portfolio-preprod, org GHCR,direct-deploy.yml@main).Review map (fixed in
ffca258)spring.kafka.propertiesbasket.create.idempotency-ttl-seconds+ index configDRAFT_LIMIT=5basket.drafts.max-limittimestamp=nullString.matchesPatterns inEtfApiClient.\scripts\...P0 / P1
API contract notes
IN_PROGRESS→COMPLETEDpriceWarningsGET /drafts≠/{basketId}; DuplicateKey → merge 200Test checklist
BasketPortfolioCreateServiceTest(incl. over-alloc before persist)BasketEngineExclusiveSubstituteTest/BasketEngineServiceTest(Unknown not sectorial; MISSING buys)BasketDraftServiceTest+BasketControllerTestdrafts routeMarketDataServiceStaleBackfillTestPreprod deploy note
Helm release
am-portfolio-preprod; Argo owns image tags via gitops after CI publish.