Skip to content

feat: Advanced Analytics, Contract Hardening, and Protocol Integrations (20 Issues) - #477

Open
sparkysolutions10-pixel wants to merge 2 commits into
Divinity-Labs:mainfrom
sparkysolutions10-pixel:feat/advanced-analytics-contract-hardening-20-issues
Open

sparkysolutions10-pixel wants to merge 2 commits into
Divinity-Labs:mainfrom
sparkysolutions10-pixel:feat/advanced-analytics-contract-hardening-20-issues

Conversation

@sparkysolutions10-pixel

Copy link
Copy Markdown

Overview

This PR resolves 20 high-impact issues across Advanced Market Analytics, Defi Yield Derivations, Protocol Venues, and API Contract Hardening.

Resolved Issues

Testing & Verification

  • Full test suite passes: 694 tests passing across 68 test files with 0 failures
  • tests/openapi.test.ts passes: all routes, parameters, and schemas validated against openapi.yaml and generated openapi.json

…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 Miracle656 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

This was referenced Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment