Files with the highest combination of change frequency and waste ratio. These are candidates for refactoring or closer review.
Cumulative contribution over time. Watch developers race as positions shift month by month.
Commit activity distribution by hour and day of week across all contributors in this repository.
Performance has many faces. Navigara breaks down the effort to visualize what parts of codebase has been changed and where energy flowed. Our Architect AI can break the performance even further into particular components and patterns.
Breakdown of file changes over time. Play the timeline to see how change types evolved across periods.
Monthly overview of bugs introduced and fixed, based on symbol-level commit analysis. Fixes show whether the original author fixed their own bug (self-fix) or someone else did (cross-fix).
Bug attribution uses symbol-level matching from commit history. For each fix commit, we look at the changed symbols (functions, classes, methods) and trace backwards to find who last modified that symbol in a non-fix commit. This person is the probable bug introducer. The algorithm only works when commits have symbol-level data from the Navigara analysis engine — the coverage rate shows what percentage of fix commits had this data available.
The current metrics model has a semantic inversion: when developer A creates a feature with a bug, they receive grow (positive). When developer B fixes that bug, they receive waste (negative). The bug creator is rewarded while the fixer is penalized. Bug attribution addresses this by explicitly tracking who introduced bugs and who fixed them, providing a more accurate picture of code quality contributions.
Currently computed client-side from commit data. Ideal server-side endpoint:
POST /v1/repositories/{repositoryId}/bug-attributions
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z"
}
Response:
{
"totalBugsAttributed": 42,
"selfFixRate": 35,
"coverageRate": 78,
"attributions": [
{
"filePath": "src/lib/auth.ts",
"symbol": "validateToken",
"introducer": { "name": "Alice", "email": "alice@co.com", "commitSha": "abc123" },
"fixer": { "name": "Bob", "email": "bob@co.com", "commitSha": "def456" },
"fixedAt": "2025-06-15T10:30:00Z",
"isSelfFix": false
}
]
}Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits in this repository.
| Hash | Message | Author | Effort |
|---|---|---|---|
| 0d7b7b2 | In the changesets validation, allow private packages to have major bumps (#13040) | Dario Piotrowicz | waste |
| 14e72eb | [wrangler] Fix D1 migration file ordering (#10126) | nekoze | waste |
| 65acf66 | Use miniflare's `handleStructuredLogs` option instead of `handleRuntimeStdio` for processing workerd output (#13131) | Dario Piotrowicz | maint |
| db60b94 | Add gitignore-like helpers to cli package and remove old duplicated logic from c3 and autoconfig (#13144) | Dario Piotrowicz | maint |
| 5d29055 | Bump the workerd-and-workers-types group with 2 updates (#13155) | dependabot[bot] | maint |
| 260d0ad | Remove all removable eslint disabling comments for `no-restricted-imports` in wrangler e2e (#13149) | Dario Piotrowicz | maint |
| 7b2ecc6 | [vitest-pool-workers] Add regression test for WorkerEntrypoint env mocking (#13084) | Somhairle MacLeòid | maint |
| f31a6f4 | Improve Bonk to read triggering comments and act on fixup requests (#13147) | Somhairle MacLeòid | maint |
| ad6799b | Remove redundant `local-mode-tests` fixture (#13146) | Pete Bacon Darwin | – |
| b9b7e9d | BRAPI-1010: Add experimental headful browser rendering support to wrangler / vite plugin (#13011) | Rui Figueira | grow |
In the changesets validation, allow private packages to have major bumps (#13040)
[wrangler] Fix D1 migration file ordering (#10126)
Use miniflare's `handleStructuredLogs` option instead of `handleRuntimeStdio` for processing workerd output (#13131)
Add gitignore-like helpers to cli package and remove old duplicated logic from c3 and autoconfig (#13144)
Bump the workerd-and-workers-types group with 2 updates (#13155)
Remove all removable eslint disabling comments for `no-restricted-imports` in wrangler e2e (#13149)
[vitest-pool-workers] Add regression test for WorkerEntrypoint env mocking (#13084)
Improve Bonk to read triggering comments and act on fixup requests (#13147)
Remove redundant `local-mode-tests` fixture (#13146)
BRAPI-1010: Add experimental headful browser rendering support to wrangler / vite plugin (#13011)
Average context complexity and engagement score of file changes over time. Higher complexity means more intricate changes; higher impact means broader effect on the codebase.
Repository
workers-sdk
⛅️ Home to Wrangler, the CLI for Cloudflare Workers®
Average Developer Performance (ETV)
Contributors ranked by total performance (ETV) from analyzed commits.
| # | |||||
|---|---|---|---|---|---|
| 1 | Pete Bacon Darwin226 commits | 38.9 | 7.6 | 14.9 | 16.4 |
| 2 | Dario Piotrowicz173 commits | 36.8 | 10.1 | 12.6 | 14.1 |
| 3 | Victor Berchet136 commits | 31.8 | 3.1 | 25.5 | 3.2 |
| 4 | Somhairle MacLeòid133 commits | 31.6 | 11.9 | 13.8 | 5.9 |
| 5 | emily-shen79 commits | 21.1 | 12 | 3.3 | 5.7 |
| 6 | James Opstad102 commits | 18.8 | 5.6 | 9 | 4.2 |
| 7 | Ben32 commits | 16 | 14 | 0.5 | 1.4 |
| 8 | Olga Silva16 commits | 13.2 | 7.4 | 0.5 | 5.3 |
| 9 | Edmund Hung68 commits | 10 | 2.2 | 2.9 | 4.9 |
| 10 | Matt Kane35 commits | 5.1 | 2 | 0.8 | 2.3 |
| 11 | Phillip Jones4 commits | 4.2 | 2.9 | 1.2 | 0.1 |
| 12 | Gregory Anders15 commits | 3.9 | 1.5 | 1.3 | 1.1 |
| 13 | Matt ‘TK’ Taylor13 commits | 3.1 | 0.4 | 0.1 | 2.6 |
| 14 | Rui Figueira8 commits | 2.4 | 0.6 | 1.3 | 0.4 |
| 15 | WillTaylorDev13 commits | 2.1 | 0.5 | 0.1 | 1.6 |
| 16 | Dominik Picheta14 commits | 1.9 | 1.1 | 0.4 | 0.5 |
| 17 | Nikita Sharma11 commits | 1.7 | 1.3 | 0.1 | 0.3 |
| 18 | Thomas Gauvin2 commits | 1.4 | 1.4 | 0 | 0 |
| 19 | Gabriel Massadas3 commits | 1.4 | 0.7 | 0.2 | 0.4 |
| 20 | Gabi4 commits | 0.9 | 0.9 | 0 | 0 |
| 21 | Greg Brimble7 commits | 0.8 | 0.2 | 0.5 | 0.1 |
| 22 | Dan Lapid1 commits | 0.7 | 0.5 | 0.2 | 0 |
| 23 | Matt Silverlock4 commits | 0.6 | 0.2 | 0.2 | 0.2 |
| 24 | Kian2 commits | 0.6 | 0 | 0 | 0.6 |
| 25 | Yagiz Nizipli6 commits | 0.5 | 0 | 0.5 | 0 |
| 26 | Caio Nogueira2 commits | 0.5 | 0.4 | 0 | 0.1 |
| 27 | Brendan Irvine-Broque0 commits | 0.5 | 0.2 | 0 | 0.2 |
| 28 | Daniel Walsh2 commits | 0.4 | 0.4 | 0 | 0 |
| 29 | lrapoport-cf37 commits | 0.3 | 0 | 0.1 | 0.2 |
| 30 | Hood Chatham4 commits | 0.3 | 0 | 0.3 | 0.1 |
| 31 | Mike Nomitch1 commits | 0.3 | 0.2 | 0.1 | 0 |
| 32 | Josh Howard1 commits | 0.1 | 0 | 0.1 | 0 |
| 33 | Matt1 commits | 0.1 | 0 | 0 | 0.1 |
| 34 | Guy Bedford1 commits | 0.1 | 0.1 | 0 | 0 |