Repository navigation
feat: Advanced Analytics, Contract Hardening, and Protocol Integrations (20 Issues) - #477
Conversation
…integrations (20 issues) - Resolve Divinity-Labs#294: add realised volatility endpoint GET /volatility/:pairKey with annualized log returns - Resolve Divinity-Labs#293: add asset price correlation matrix endpoint GET /correlation with Pearson coefficient - Resolve Divinity-Labs#292: add top movers leaderboard endpoint GET /movers with single-venue labelling - Resolve Divinity-Labs#302: add volume concentration, median size, and Herfindahl index to GET /volumes/:asset - Resolve Divinity-Labs#289: add tradeable pair health indicator and configurable criteria to GET /pairs - Resolve Divinity-Labs#288: add stablecoin peg-deviation alerts and recovery event dispatcher in src/alerts/peg.ts - Resolve Divinity-Labs#287: add comparative stablecoin multi-peg monitoring endpoint GET /pegs - Resolve Divinity-Labs#286: compute AMM divergence and impermanent loss on GET /pools/:id/il and GET /yield - Resolve Divinity-Labs#285: compute pool fee APR yield on GET /yield across configurable windows - Resolve Divinity-Labs#282: add size-ladder slippage impact curve endpoint GET /impact/:assetA/:assetB - Resolve Divinity-Labs#261: introduce canonical machine-readable error codes and schema in src/errors.ts - Resolve Divinity-Labs#262: normalize empty collection query responses to 200 OK across list endpoints - Resolve Divinity-Labs#263: implement uniform cursor-based pagination across /pools and /pairs list routes - Resolve Divinity-Labs#265: add end-to-end request tracing via x-request-id response header and logging - Resolve Divinity-Labs#266: configure granular HTTP Cache-Control headers across static, dynamic, and historical routes - Resolve Divinity-Labs#267: support conditional HTTP requests with strong ETag and 304 Not Modified - Resolve Divinity-Labs#268: configure granular CORS policy distinguishing public reads from credentialed/admin routes - Resolve Divinity-Labs#214: implement DeFindex vault total asset/share price derivation adapter in src/ingest/venues/defindex.ts - Resolve Divinity-Labs#213: add lending market supply and borrow rates endpoint GET /rates/:asset - Resolve Divinity-Labs#211: surface and tag Phoenix Soroban AMM pools alongside existing pools in GET /pools - Update openapi.yaml, openapi.json, and add comprehensive test suite covering all 20 issues
Miracle656
left a comment
There was a problem hiding this comment.
Changes requested: one issue per PR, and only issues assigned to you
This is a process requirement, applied to all 23 of your open PRs in this repo. It is not a judgement about the code, which I have not been able to review — and that is the first half of the problem.
The bundling
Across your open PRs, 150 distinct issues are claimed. This one claims several. #483 claims 22, #481 claims 20, #477 claims 20, #474 claims 20.
A PR that closes twenty issues cannot be reviewed. Each of those issues has its own acceptance criteria — typically five — so twenty issues is a hundred separate things to verify in one diff, and if any one of them is wrong the whole PR is blocked while it is fixed. Every batch I published says the issues are deliberately independent so they can be worked in parallel, by different people, without colliding. Bundling them removes exactly that property.
The assignments
135 of the 150 issues claimed are assigned to other contributors — 67 different people.
This PR is an example: it names issues currently assigned to other contributors who are working on them now. Several have open PRs of their own. If this merged as it stands, those people would have done the work and received nothing for it, and I would have no way to tell the two efforts apart.
I am not assuming anything about why. Assignments change, Drips and GitHub can disagree, and a wide-ranging branch picks up issue numbers easily. But the effect on the people holding those assignments is the same regardless of intent, which is why I have to act on it.
What I need
- One issue per PR. The issue number in the title, its acceptance criteria met, and nothing else in the diff.
- Only issues assigned to you, or unassigned ones you have claimed through Drips. If an issue is assigned to someone else, it is theirs.
- Re-open the work that meets both conditions as individual PRs. I will review them in the order they arrive and at the same pace as everyone else's.
Nothing is being closed. These stay open and are yours to re-cut, withdraw or split as you choose.
Two things worth knowing before you re-cut
Some of this has already landed. #488 (SSRF guard for bazaar_search) and #487 (the paid_call host allow-list) cover the same ground as your #449; #486 covers the MCP README. Check current main before rebuilding something that is already there.
main has moved a long way today — #306, #309, #252, #256, #355, #381, #390, #402, #476, #488 and more. Cut from current main, not from where these branches started.
If you believe an issue named here is genuinely yours, say which and I will check the assignment myself — I would rather be corrected than have someone lose work.
…rdening-20-issues
Overview
This PR resolves 20 high-impact issues across Advanced Market Analytics, Defi Yield Derivations, Protocol Venues, and API Contract Hardening.
Resolved Issues
GET /volatility/:pairKey) with log-returns annualised stddevGET /correlation) with Pearson correlation coefficientGET /movers) with gainers, losers, and single-venue labellingGET /volumes/:assetGET /pairssrc/alerts/peg.ts)GET /pegs)GET /pools/:id/ilandGET /yield)GET /yield)GET /impact/:assetA/:assetB) with explicit threshold crossingssrc/errors.ts)/screenercan be paged #263: Uniform cursor-based pagination across/poolsand/pairslist routesx-request-idheader and loggingCache-Controlheader policies across static, live, and historical routessrc/ingest/venues/defindex.ts)GET /rates/:asset)/pools, so nobody can see what is watched #211: Surface Phoenix Soroban AMM pools inGET /poolswith venue taggingTesting & Verification
tests/openapi.test.tspasses: all routes, parameters, and schemas validated againstopenapi.yamland generatedopenapi.json