CodeQual

Evolution Advisory

Project: facebook/react

Period: Dec 19, 2013 at 05:46 PM to Mar 12, 2026 at 09:36 PM

Advisory ID: 29b6f1743841706d

Generated: Mar 15, 2026 at 02:02 AM

Executive Summary

7
Significant Changes
4
Areas Affected
28
Patterns Matched
0
New Observations

Affected areas: ⚙️ CI / Build 📦 Dependencies 🚀 Deployment 📝 Version Control

Based on 20 prior commits

What EE Can See

6 connected

⚙️
CI / Build
via GitHub Actions
Active
📦
Dependencies
via npm
Active
📝
Version Control
via Git
Active
🚀
Deployment
via GitHub Releases
Active
🔒
Security
via GitHub Security
Platform Mismatch
GITLAB_TOKEN is set but remote points to github. Setup guide →
🧪
Testing
via Jest
Connected
Token set. This data is analyzed automatically when running via GitHub Action or GitLab CI. Setup guide →

Key Findings

What Changed in Your Codebase

We've detected 7 changes that differ from your project's normal patterns. Each change shows what typically happens versus what we observed this time.

0 of 7 resolved
🚀
Release Cadence
Deployment
What this means: Longer time between releases than usual.
Typical:
0.0268
This Time:
2,721.0
69547.6x above typical range
Trigger: main
↘ Returned to baseline
Supporting Evidence
⚠️ Action Required

when deployments and code changes happen together, code spread and release frequency tend to move together.

What this means: Changes are spreading across unrelated parts of the codebase. This makes reviews harder and increases the chance of unexpected side effects. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Review recent PRs for scope creep. Consider breaking large changes into focused commits.
⚠️ Action Required

when deployments and code changes happen together, file count and release frequency tend to move together.

What this means: Commits are touching more files than usual, increasing review burden and risk of regressions. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.
👁️ Worth Monitoring

when dependency changes and deployments happen together, dependency count and release frequency tend to move together.

What this means: The dependency count is growing, expanding the supply-chain attack surface and potential for version conflicts.
Recommendation: Audit new dependencies for necessity, maintenance status, and known vulnerabilities.
Drift Investigation Prompt
Development pattern shift detected in Deployment.\n\nSIGNAL: Release Cadence is 69547.6x above the typical baseline (observed: 2,721.0, typical: 0.0268).\nTRIGGER COMMIT: main — \n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [CRITICAL] when deployments and code changes happen together, code spread and release frequency tend to move together.\n    → Review recent PRs for scope creep. Consider breaking large changes into focused commits.\n  [CRITICAL] when deployments and code changes happen together, file count and release frequency tend to move together.\n    → Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.\n  [WATCH] when dependency changes and deployments happen together, dependency count and release frequency tend to move together.\n    → Audit new dependencies for necessity, maintenance status, and known vulnerabilities.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit main — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it
Show technical details

The release cadence hours for this change was 2,721.0. Historically, similar changes had a value of 0.0268 ± 0.0264.

📝
Files Changed
Version Control
What this means: More files changed than usual in this commit.
Typical:
2.00
This Time:
310
207.8x above typical range
Trigger: b16b768f [compiler] Feature flag cleanup (#35825)
↘ Returned to baseline
Supporting Evidence
⚠️ Action Required

when CI builds and code changes happen together, file count and build time tend to move together.

What this means: Commits are touching more files than usual, increasing review burden and risk of regressions. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.
⚠️ Action Required

when deployments and code changes happen together, file count and release frequency tend to move together.

What this means: Commits are touching more files than usual, increasing review burden and risk of regressions. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.
👁️ Worth Monitoring

when code changes occur, file count tends to increase.

What this means: Commits are touching more files than usual, increasing review burden and risk of regressions.
Recommendation: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.
Drift Investigation Prompt
Development pattern shift detected in Version Control.\n\nSIGNAL: Files Changed is 207.8x above the typical baseline (observed: 310, typical: 2.00).\nTRIGGER COMMIT: b16b768f — [compiler] Feature flag cleanup (#35825)\n\nFILES CHANGED IN TRIGGER (310):\n  - compiler/CLAUDE.md\n  - compiler/apps/playground/__tests__/e2e/__snapshots__/page.spec.ts/disableMemoizationForDebugging-output.txt\n  - compiler/apps/playground/__tests__/e2e/page.spec.ts\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/06-inferTypes.md\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/31-codegenReactiveFunction.md\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/32-transformFire.md\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/33-lowerContextAccess.md\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/42-validateNoCapitalizedCalls.md\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/52-validateMemoizedEffectDependencies.md\n  - compiler/packages/babel-plugin-react-compiler/docs/passes/README.md\n  - compiler/packages/babel-plugin-react-compiler/src/CompilerError.ts\n  - compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Imports.ts\n  - compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Options.ts\n  - compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Pipeline.ts\n  - compiler/packages/babel-plugin-react-compiler/src/Entrypoint/Program.ts\n  ... and 295 more\n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [CRITICAL] when CI builds and code changes happen together, file count and build time tend to move together.\n    → Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.\n  [CRITICAL] when deployments and code changes happen together, file count and release frequency tend to move together.\n    → Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.\n  [WATCH] when code changes occur, file count tends to increase.\n    → Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit b16b768f — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it
Show technical details

The files touched for this change was 310. Historically, similar changes had a value of 2.00 ± 1.00.

📝
Co-change Novelty
Version Control
What this means: Unusually low novelty — changes are more repetitive than normal, touching only well-known file combinations.
Typical:
0.9938
This Time:
0.0000
108.9x below typical range
Trigger: 6853d7ab [Perf Tracks] Prevent crash when accessing `$$typeof` (#3567
→ Still elevated (latest deviation: 29.7σ)
Supporting Evidence
⚠️ Action Required

when CI builds and code changes happen together, novelty of file pairings and build time tend to move together.

What this means: File co-change novelty is unusually low. While familiar patterns reduce risk, this could indicate repetitive or mechanical changes rather than normal development. Escalated from Needs Attention — multiple correlated patterns converge on the same signal families.
Recommendation: Review whether recent commits are routine maintenance or a sign of narrow, repetitive modifications that lack expected variety.
ℹ️ Informational

when deployments and code changes happen together, novelty of file pairings tends to move in opposite directions.

What this means: File co-change novelty is unusually low. While familiar patterns reduce risk, this could indicate repetitive or mechanical changes rather than normal development.
Recommendation: Review whether recent commits are routine maintenance or a sign of narrow, repetitive modifications that lack expected variety.
ℹ️ Informational

when dependency changes and code changes happen together, novelty of file pairings tends to move in opposite directions.

What this means: File co-change novelty is unusually low. While familiar patterns reduce risk, this could indicate repetitive or mechanical changes rather than normal development.
Recommendation: Review whether recent commits are routine maintenance or a sign of narrow, repetitive modifications that lack expected variety.
Drift Investigation Prompt
Development pattern shift detected in Version Control.\n\nSIGNAL: Co-change Novelty is 108.9x below the typical baseline (observed: 0.0000, typical: 0.9938).\nTRIGGER COMMIT: 6853d7ab — [Perf Tracks] Prevent crash when accessing `$$typeof` (#35679)\n\nFILES CHANGED IN TRIGGER (2):\n  - packages/react-reconciler/src/__tests__/ReactPerformanceTrack-test.js\n  - packages/shared/ReactPerformanceTrackProperties.js\n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [CRITICAL] when CI builds and code changes happen together, novelty of file pairings and build time tend to move together.\n    → Investigate which files are being combined unexpectedly. Prioritize testing these changes.\n  [INFO] when deployments and code changes happen together, novelty of file pairings tends to move in opposite directions.\n    → Review whether recent commits are routine maintenance or a sign of narrow, repetitive modifications that lack expected variety.\n  [INFO] when dependency changes and code changes happen together, novelty of file pairings tends to move in opposite directions.\n    → Review whether recent commits are routine maintenance or a sign of narrow, repetitive modifications that lack expected variety.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit 6853d7ab — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it
Show technical details

The cochange novelty ratio for this change was 0.0000. Historically, similar changes had a value of 0.9938 ± 0.0062.

⚙️
Build Duration
CI / Build
What this means: Build took longer than usual.
Typical:
23.50
This Time:
360.0
13.0x above typical range
Trigger: 65db1000
↘ Returned to baseline
Supporting Evidence
⚠️ Action Required

when CI builds and code changes happen together, change focus and build time tend to move together.

What this means: Builds are taking longer. Slower CI feedback loops reduce developer productivity and delay catching issues. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families. Changes span files that don't normally change together, suggesting cross-cutting concerns that may be harder to test. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Profile the build pipeline to identify bottlenecks. Check for newly added expensive tests or build steps. Review whether these cross-cutting changes have adequate test coverage.
⚠️ Action Required

when CI builds and code changes happen together, file count and build time tend to move together.

What this means: Commits are touching more files than usual, increasing review burden and risk of regressions. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.
⚠️ Action Required

when CI builds and code changes happen together, novelty of file pairings and build time tend to move together.

What this means: Files that don't normally change together are being modified in the same commits. This indicates novel, untested interactions that may introduce bugs. Escalated from Needs Attention — multiple correlated patterns converge on the same signal families.
Recommendation: Investigate which files are being combined unexpectedly. Prioritize testing these changes.
Show 1 more supporting evidence
👁️ Worth Monitoring

when CI builds and dependency changes happen together, dependency count and build time tend to move in opposite directions.

What this means: The dependency count is growing, expanding the supply-chain attack surface and potential for version conflicts.
Recommendation: Audit new dependencies for necessity, maintenance status, and known vulnerabilities.
Drift Investigation Prompt
Development pattern shift detected in CI / Build.\n\nSIGNAL: Build Duration is 13.0x above the typical baseline (observed: 360.0, typical: 23.50).\nTRIGGER COMMIT: 65db1000 — \n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [CRITICAL] when CI builds and code changes happen together, change focus and build time tend to move together.\n    → Profile the build pipeline to identify bottlenecks. Check for newly added expensive tests or build steps.\n    → Review whether these cross-cutting changes have adequate test coverage.\n  [CRITICAL] when CI builds and code changes happen together, file count and build time tend to move together.\n    → Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.\n  [CRITICAL] when CI builds and code changes happen together, novelty of file pairings and build time tend to move together.\n    → Investigate which files are being combined unexpectedly. Prioritize testing these changes.\n  [INFO] when CI builds and dependency changes happen together, dependency count and build time tend to move in opposite directions.\n    → Confirm test coverage hasn't decreased alongside faster builds.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit 65db1000 — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it
Show technical details

The run duration for this change was 360.0. Historically, similar changes had a value of 23.50 ± 17.50.

📝
Change Locality
Version Control
What this means: The changed files frequently change together, suggesting a focused modification.
Typical:
0.0500
This Time:
1.00
12.8x above typical range
Trigger: bbc2d596 Traverse down an updated tree even if it has no passive effe
↘ Returned to baseline
Supporting Evidence
⚠️ Action Required

when CI builds and code changes happen together, change focus and build time tend to move together.

What this means: Builds are taking longer. Slower CI feedback loops reduce developer productivity and delay catching issues. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families. Changes span files that don't normally change together, suggesting cross-cutting concerns that may be harder to test. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Profile the build pipeline to identify bottlenecks. Check for newly added expensive tests or build steps. Review whether these cross-cutting changes have adequate test coverage.
Drift Investigation Prompt
Development pattern shift detected in Version Control.\n\nSIGNAL: Change Locality is 12.8x above the typical baseline (observed: 1.00, typical: 0.0500).\nTRIGGER COMMIT: bbc2d596 — Traverse down an updated tree even if it has no passive effects in profiling mode (#34667)\n\nFILES CHANGED IN TRIGGER (1):\n  - packages/react-reconciler/src/ReactFiberCommitWork.js\n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [CRITICAL] when CI builds and code changes happen together, change focus and build time tend to move together.\n    → Profile the build pipeline to identify bottlenecks. Check for newly added expensive tests or build steps.\n    → Review whether these cross-cutting changes have adequate test coverage.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit bbc2d596 — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it
Show technical details

The change locality for this change was 1.00. Historically, similar changes had a value of 0.0500 ± 0.0500.

📝
Change Dispersion
Version Control
What this means: Changes spread across unrelated areas of the codebase.
Typical:
0.0000
This Time:
1.41
5.6x above typical range
Trigger: cdbd55f4 Type `react-devtools-hook-installer` and `react-devtools-hoo
↘ Returned to baseline
Supporting Evidence
⚠️ Action Required

when deployments and code changes happen together, code spread and release frequency tend to move together.

What this means: Changes are spreading across unrelated parts of the codebase. This makes reviews harder and increases the chance of unexpected side effects. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
Recommendation: Review recent PRs for scope creep. Consider breaking large changes into focused commits.
👁️ Worth Monitoring

when dependency changes and code changes happen together, code spread tends to move together.

What this means: Changes are spreading across unrelated parts of the codebase. This makes reviews harder and increases the chance of unexpected side effects.
Recommendation: Review recent PRs for scope creep. Consider breaking large changes into focused commits.
Drift Investigation Prompt
Development pattern shift detected in Version Control.\n\nSIGNAL: Change Dispersion is 5.6x above the typical baseline (observed: 1.41, typical: 0.0000).\nTRIGGER COMMIT: cdbd55f4 — Type `react-devtools-hook-installer` and `react-devtools-hook-settings-injector` messages (#35586)\n\nFILES CHANGED IN TRIGGER (8):\n  - .eslintrc.js\n  - flow-typed/environments/bom.js\n  - flow-typed/environments/dom.js\n  - flow-typed/environments/html.js\n  - packages/react-devtools-core/src/backend.js\n  - packages/react-devtools-extensions/src/contentScripts/hookSettingsInjector.js\n  - packages/react-devtools-extensions/src/contentScripts/installHook.js\n  - packages/react-devtools-extensions/src/contentScripts/messages.js\n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [CRITICAL] when deployments and code changes happen together, code spread and release frequency tend to move together.\n    → Review recent PRs for scope creep. Consider breaking large changes into focused commits.\n  [WATCH] when dependency changes and code changes happen together, code spread tends to move together.\n    → Review recent PRs for scope creep. Consider breaking large changes into focused commits.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit cdbd55f4 — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it
📦
Total Dependencies
Dependencies
What this means: Dependency count decreased.
Typical:
2,456.0
This Time:
2,453
4.0x below typical range
Trigger: c7862584
↘ Returned to baseline
Supporting Evidence
ℹ️ Informational

when dependency changes and deployments happen together, dependency count and release frequency tend to move together.

What this means: Releases are happening more frequently. Faster releases reduce batch size risk but may skip review steps.
Recommendation: Verify that quality gates (testing, review) are still being applied to faster releases.
ℹ️ Informational

when CI builds and dependency changes happen together, dependency count and build time tend to move in opposite directions.

What this means: Builds are running faster than usual. Verify this isn't due to skipped tests or simplified steps.
Recommendation: Confirm test coverage hasn't decreased alongside faster builds.
Drift Investigation Prompt
Development pattern shift detected in Dependencies.\n\nSIGNAL: Total Dependencies is 4.0x below the typical baseline (observed: 2,453, typical: 2,456.0).\nTRIGGER COMMIT: c7862584 — \n\nRECENT COMMITS (20 total, showing top 5):\n  1fd291d3 — [DevTools] Disable the tree list for now (#34606)

When ther (1 files)\n  8bb7241f — Bump useEffectEvent to Canary (#34610)

Bumps `useEffectEven (10 files)\n  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624)

The (2 files)\n  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders t (3 files)\n  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline  (6 files)\n  ... and 15 more commits\n\nCORRELATED PATTERNS:\n  [WATCH] when dependency changes and deployments happen together, dependency count and release frequency tend to move together.\n    → Audit new dependencies for necessity, maintenance status, and known vulnerabilities.\n  [INFO] when CI builds and dependency changes happen together, dependency count and build time tend to move in opposite directions.\n    → Confirm test coverage hasn't decreased alongside faster builds.\n\nINVESTIGATE:\n1. Was this change intentional or did the AI drift from goals?\n2. Review commit c7862584 — what specifically caused the deviation?\n3. Suggest a course correction (not a bug fix — a realignment).\n\nAFTER FIX:\nRun `evo analyze . --verify` to re-analyze and compare against this run.\nIf the change was intentional, no fix needed — accept it in the report.
Use with: Cursor — paste in chat Claude Code — paste in terminal Copilot — paste in chat panel
After investigation:
  1. AI suggests fixes → apply the changes to your code
  2. Run evo analyze . --verify to re-analyze and compare against this run
  3. If the change was intentional, click Accept above to dismiss it

Next Steps

1
Investigate

Copy the prompt below and paste it into your AI assistant (Claude Code, Cursor, Copilot, ChatGPT). It will identify root causes and suggest fixes.

2
Fix

Apply the suggested changes. If a deviation was intentional, click Accept on its card above instead.

3
Verify

Run evo analyze . --verify to re-analyze and compare. A verification banner will show which deviations resolved, improved, or persist.

Investigation Prompt

Development drift analysis for facebook/react (Dec 19, 2013 at 05:46 PM to Mar 12, 2026 at 09:36 PM). DEVIATIONS FROM BASELINE: - Deployment: Release Cadence — 0.0268 -> 2,721.0 - Version Control: Files Changed — 2.00 -> 310 - Version Control: Co-change Novelty — 0.9938 -> 0.0000 - CI / Build: Build Duration — 23.50 -> 360.0 - Version Control: Change Locality — 0.0500 -> 1.00 - Version Control: Change Dispersion — 0.0000 -> 1.41 - Dependencies: Total Dependencies — 2,456.0 -> 2,453 Click "Show Full Prompt" to see the complete investigation prompt with evidence...
Development drift analysis for facebook/react (Dec 19, 2013 at 05:46 PM to Mar 12, 2026 at 09:36 PM).

DEVIATIONS FROM BASELINE:

- Deployment / Release Cadence: 2,721.0 (typical: 0.0268, 69547.6x above)
- Version Control / Files Changed: 310 (typical: 2.00, 207.8x above)
- Version Control / Co-change Novelty: 0.0000 (typical: 0.9938, 108.9x below)
- CI / Build / Build Duration: 360.0 (typical: 23.50, 13.0x above)
- Version Control / Change Locality: 1.00 (typical: 0.0500, 12.8x above)
- Version Control / Change Dispersion: 1.41 (typical: 0.0000, 5.6x above)
- Dependencies / Total Dependencies: 2,453 (typical: 2,456.0, 4.0x below)

RISK PATTERNS (actionable only):

- [Action Required] 3 patterns:
    * when deployments and code changes happen together, novelty of file pairings tends to move together.
    * when CI builds and code changes happen together, novelty of file pairings and build time tend to move together.
    * when CI builds and code changes happen together, novelty of file pairings tends to move together.
  Impact: Files that don't normally change together are being modified in the same commits. This indicates novel, untested interactions that may introduce bugs. Escalated from Needs Attention — multiple correlated patterns converge on the same signal families.
  Action: Investigate which files are being combined unexpectedly. Prioritize testing these changes.

- [Action Required] when deployments and code changes happen together, change focus and release frequency tend to move together.
  Impact: Time between releases is increasing. This could indicate a bottleneck in the release process or accumulating risk in larger releases. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
  Action: Check if process changes or staffing issues are delaying releases.

- [Action Required] when CI builds and code changes happen together, change focus and build time tend to move together.
  (2 independent confirmations)
  Impact: Builds are taking longer. Slower CI feedback loops reduce developer productivity and delay catching issues. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
  Action: Profile the build pipeline to identify bottlenecks. Check for newly added expensive tests or build steps.

- [Action Required] 4 patterns:
    * when deployments and code changes happen together, code spread and release frequency tend to move together.
    * when CI builds and code changes happen together, code spread and build time tend to move together.
    * when deployments and code changes happen together, code spread tends to move together.
    * when CI builds and code changes happen together, code spread tends to move together.
  Impact: Changes are spreading across unrelated parts of the codebase. This makes reviews harder and increases the chance of unexpected side effects. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
  Action: Review recent PRs for scope creep. Consider breaking large changes into focused commits.

- [Action Required] 4 patterns:
    * when deployments and code changes happen together, file count tends to move together.
    * when CI builds and code changes happen together, file count and build time tend to move together.
    * when deployments and code changes happen together, file count and release frequency tend to move together.
    * when CI builds and code changes happen together, file count tends to move together.
  Impact: Commits are touching more files than usual, increasing review burden and risk of regressions. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
  Action: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.

- [Action Required] when CI builds and code changes happen together, change focus tends to move in opposite directions.
  Impact: Changes span files that don't normally change together, suggesting cross-cutting concerns that may be harder to test. Escalated from Worth Monitoring — multiple correlated patterns converge on the same signal families.
  Action: Review whether these cross-cutting changes have adequate test coverage.

- [Worth Monitoring] when dependency changes and deployments happen together, dependency count and release frequency tend to move together.
  (2 independent confirmations)
  Impact: The dependency count is growing, expanding the supply-chain attack surface and potential for version conflicts.
  Action: Audit new dependencies for necessity, maintenance status, and known vulnerabilities.

- [Worth Monitoring] when dependency changes and code changes happen together, change focus tends to move in opposite directions.
  Impact: Changes span files that don't normally change together, suggesting cross-cutting concerns that may be harder to test.
  Action: Review whether these cross-cutting changes have adequate test coverage.

- [Worth Monitoring] when dependency changes and code changes happen together, code spread tends to move together.
  Impact: Changes are spreading across unrelated parts of the codebase. This makes reviews harder and increases the chance of unexpected side effects.
  Action: Review recent PRs for scope creep. Consider breaking large changes into focused commits.

- [Worth Monitoring] when code changes occur, file count tends to increase.
  Impact: Commits are touching more files than usual, increasing review burden and risk of regressions.
  Action: Monitor PR sizes. If this persists, investigate whether large refactors need better decomposition.


COMMITS (20):

  1fd291d3 — [DevTools] Disable the tree list for now (#34606) (1 files)
  8bb7241f — Bump useEffectEvent to Canary (#34610) (10 files)
  a7d8ddda — [DevTools] Add Settings button on Suspense Tab (#34624) (2 files)
  e2d19bf6 — [DevTools] Use pretty icon with icon for unique suspenders toggle (#34625) (3 files)
  7c0fff6f — [DevTools] Add Play/Pause and Skip Controls to the Timeline (#34620) (6 files)
  dce1f6cd — [DevTools] Custom Scrubber Design (#34627) (4 files)
  2bbb7be0 — [DevTools] Don't call Hooks conditionally (#34644) (2 files)
  24e260d3 — Enable rules-of-hooks for DevTools (#34645) (10 files)
  d15d7fd7 — [DevTools] Double click a Suspense Rect to jump to its position in the timeline  (5 files)
  319a7867 — [playground] ViewTransition on config expand (#34595) (10 files)
  ... and 10 more

SOURCE FILES CHANGED (50):

  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseTab.js (modified)
  - packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js (modified)
  - packages/react-reconciler/src/__tests__/useEffectEvent-test.js (modified)
  - packages/react/index.development.js (modified)
  - packages/react/index.experimental.development.js (modified)
  - packages/react/index.experimental.js (modified)
  - packages/react/index.fb.js (modified)
  - packages/react/index.js (modified)
  - packages/react/index.stable.development.js (modified)
  - packages/react/index.stable.js (modified)
  - packages/react/src/ReactClient.js (modified)
  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseTab.css (modified)
  - packages/react-devtools-shared/src/devtools/views/ButtonIcon.js (modified)
  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseTimeline.css (modified)
  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseTimeline.js (modified)
  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseTreeContext.js (modified)
  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseScrubber.css (modified)
  - packages/react-devtools-shared/src/devtools/views/SuspenseTab/SuspenseScrubber.js (modified)
  - packages/react-devtools-shared/src/devtools/views/Profiler/SidebarEventInfo.js (modified)
  - .eslintrc.js (modified)
  ... and 30 more

TASKS:

1. ROOT CAUSE: For each deviation, identify the commit(s) that caused it.
   Focus on [Action Required] and [Needs Attention] items first.

2. FIXES: Provide concrete fixes with file paths and code changes.
   Goal: bring metrics back toward baseline without disrupting velocity.

3. PRIORITY: Rank fixes by urgency (immediate vs. next sprint).

4. AFTER FIXING: Run `evo analyze . --verify` to confirm deviations decreased.
   If a change was intentional, accept it: `evo accept . <N>`.

5. FINDING SUMMARIES: At the end, include a section like this:
   ## Finding Summaries
   - [family/metric]: One plain-English sentence for a non-technical reader.
   (This lets the user run `evo enrich . --from response.txt` to store friendly descriptions.)

Expand Your Coverage

Evolution Engine has 44 universal patterns learned from 200+ open-source repositories. The more signal families you connect, the more cross-family patterns can be detected.

Available Adapters

Enable these adapters to unlock additional signal families and cross-family pattern detection.

📊
cobertura
Code Coverage
Code coverage from Cobertura XML reports — line rate, branch rate
Auto-detected from files Setup guide →
🚨
sentry
Error Tracking
Error tracking and release health from Sentry — event count, user impact, unhandled errors
Set SENTRY_AUTH_TOKEN Setup guide →

How to Connect an Adapter

  1. Set the environment variable shown on the adapter card. For example: export GITHUB_TOKEN=$(gh auth token)
  2. For file-based adapters (Testing, Coverage): generate reports in your project first. For example, pytest --junitxml=junit.xml or pytest --cov --cov-report=xml
  3. Run analysis: evo analyze . — new adapters are detected automatically
  4. Verify: evo sources to confirm which adapters are active
Coming soon: CI / Build, Deployment, Feature Flags, Incidents, Monitoring, Quality Gate, Security Scan, Work Items