You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
REES is now a production review-enrichment service with many analyzers, not just the original supply-chain/security set. The next bottleneck is no longer "add another analyzer". It is the runtime shape: analyzer PRs conflict because they touch the same central files, and full analyzer runs still spend too much duplicated CPU/network budget.
This epic now tracks the maintainer-only foundation work needed to make REES modular, budget-aware, resource-efficient, and safe to operate in self-hosted maintainer stacks.
Analyzer contribution rules after this epic starts
New analyzers should live mostly under review-enrichment/src/analyzers/<name>/.
Each analyzer should declare name, category, cost class, default enabled state, external requirements, limits, timeout behavior, renderer, and docs metadata.
Analyzer PRs should avoid hand-editing central registry/render/config surfaces once generated or manifest-backed surfaces exist.
Every analyzer must have clear skip predicates, bounded fanout, safe diagnostics, and focused tests.
External-call analyzers must use the shared bounded fetch/client layer unless an exception is documented.
Output must remain public-safe and review-useful: file/package/line/count/reason context is fine; raw payloads and private data are not.
Performance/resource requirements
REES must reserve enough response time to return before the engine transport timeout.
Slow analyzers should degrade individually instead of causing whole-request failure.
Cheap local analyzers should run first and should not wait behind GitHub/registry work.
Dependency and registry analyzers should skip early when no relevant files changed.
GitHub-heavy analyzers should have strict file/commit/PR lookup caps and short subcall timeouts.
Safe telemetry should include analyzer, requested analyzers, repo, PR number, head SHA prefix, release, timeout budget, elapsed time, phase/subcall, partial status, analyzer status, file/commit/PR lookup counts, endpoint category, request id, and trace id.
Existing analyzer backlog
The existing analyzer feature backlog is still useful, but new implementation should wait for or adapt to the modular manifest pattern to avoid more merge conflicts.
Open analyzer issues already split from this epic include:
REES modular analyzer/runtime roadmap
REES is now a production review-enrichment service with many analyzers, not just the original supply-chain/security set. The next bottleneck is no longer "add another analyzer". It is the runtime shape: analyzer PRs conflict because they touch the same central files, and full analyzer runs still spend too much duplicated CPU/network budget.
This epic now tracks the maintainer-only foundation work needed to make REES modular, budget-aware, resource-efficient, and safe to operate in self-hosted maintainer stacks.
Parent: #1029
Current state
review-enrichment/and is called by the engine fromsrc/review/enrichment-wire.ts.historytimeout path so REES can return partial/degraded context before the engine transport timeout expires.Goals
Maintainer-only foundation issues
These are intentionally
maintainer-only, assigned toJSONbored, and should not carrygittensor:*labels.refactor(rees): introduce modular analyzer manifestsperf(rees): add shared analysis context and request cachesperf(rees): add cost-aware analyzer scheduling and profilesfix(rees): standardize bounded external fetchesfeat(rees): generate analyzer config and self-host profilesfeat(rees): add performance guardrails and regression telemetryRecommended sequence
Analyzer contribution rules after this epic starts
review-enrichment/src/analyzers/<name>/.Performance/resource requirements
Existing analyzer backlog
The existing analyzer feature backlog is still useful, but new implementation should wait for or adapt to the modular manifest pattern to avoid more merge conflicts.
Open analyzer issues already split from this epic include:
Speculative/later analyzer ideas remain:
Non-goals for the foundation pass
Definition of done for this epic