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 |
|---|---|---|---|
| 4824e3f | small typos and formatting fixes | Scott Smith | maint |
| f61e94f | Clarify fpga_info requirements | Scott Smith | maint |
| a70a1be | Port led naming does not depend on number of leds | Scott Smith | maint |
| 3f92c5f | Update led color example to amber | Scott Smith | maint |
| 4dc6fd9 | Create revamped on-diff jobs for FBOSS OSS; test local changes in OSS via sandcastle | Kevin Yakar | waste |
| 9cc804b | Move explicit template instantiations from CmdHandlerImpl.cpp to individual .cpp files (OSS commands with existing .cpp) | Joseph Wu | maint |
| 32521f2 | Create .cpp files for clear/ commands and move implementations out of headers | Joseph Wu | maint |
| b0fc8ed | Add --community-names flag to rib-policy commands | Rob Skoog | grow |
| a2c44ce | Add PROFILE_200G_2_PAM4_RS544_COPPER | Mohammed Al-Sanabani | β |
| 13bada5 | Assert watchdog open fails if already opened | Scott Smith | maint |
small typos and formatting fixes
Clarify fpga_info requirements
Port led naming does not depend on number of leds
Update led color example to amber
Create revamped on-diff jobs for FBOSS OSS; test local changes in OSS via sandcastle
Move explicit template instantiations from CmdHandlerImpl.cpp to individual .cpp files (OSS commands with existing .cpp)
Create .cpp files for clear/ commands and move implementations out of headers
Add --community-names flag to rib-policy commands
Add PROFILE_200G_2_PAM4_RS544_COPPER
Assert watchdog open fails if already opened
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.
Contributors ranked by total performance (ETV) from analyzed commits.
| # | |||||
|---|---|---|---|---|---|
| 1 | Jasmeet Bagga932 commits | 55.2 | 15.1 | 35.4 | 4.7 |
| 2 | Shrikrishna (Shri) Khare932 commits | 31.8 | 10.5 | 19 | 2.2 |
| 3 | Shiva Menta265 commits | 31.6 | 11.2 | 16.9 | 3.5 |
| 4 | Parvez Shaikh458 commits | 31.3 | 9.8 | 14.8 | 6.8 |
| 5 | Nivin Lawrence367 commits | 28.5 | 16.7 | 7.7 | 4.2 |
| 6 | Ron He432 commits | 27.1 | 6.5 | 16.2 | 4.3 |
| 7 | Priyank Warkhede176 commits | 25.2 | 8.9 | 13.5 | 2.8 |
| 8 | Wei Dai277 commits | 23.1 | 8.2 | 8.3 | 6.6 |
| 9 | Ravi Vantipalli235 commits | 20.8 | 6.5 | 12.1 | 2.1 |
| 10 | Harshit Gulati196 commits | 19.9 | 6 | 8.4 | 5.5 |
| 11 | benoit-nexthop45 commits | 17.4 | 7.3 | 8.6 | 1.6 |
| 12 | Scott Smith216 commits | 17.3 | 7.4 | 8.4 | 1.6 |
| 13 | Max Ng176 commits | 15.9 | 3.1 | 10.1 | 2.7 |
| 14 | Midhun Somasundaran187 commits | 15.6 | 8.4 | 5.6 | 1.7 |
| 15 | Sayeed Tasnim164 commits | 14.7 | 4.6 | 8.7 | 1.3 |
| 16 | Tanmaya Udupa142 commits | 13.7 | 3.4 | 9.7 | 0.6 |
| 17 | Manikandan Somasundaram185 commits | 12.6 | 4.3 | 6.5 | 1.8 |
| 18 | Ashutosh Grewal267 commits | 11.8 | 3.3 | 7.9 | 0.6 |
| 19 | Mohammed Al-Sanabani153 commits | 11.5 | 4.4 | 5.5 | 1.5 |
| 20 | Prasoon Patel147 commits | 9.1 | 3.3 | 4 | 1.7 |
| 21 | Elangovan Natarajan88 commits | 8.8 | 4 | 4.3 | 0.5 |
| 22 | Tianyu Du83 commits | 8 | 3 | 3.3 | 1.7 |
| 23 | Protick Bhowmick100 commits | 7.8 | 4.6 | 2.1 | 1.1 |
| 24 | Joseph Wu81 commits | 7.1 | 1.4 | 5.2 | 0.5 |
| 25 | genkzgnluxbjeyb534 commits | 7.1 | 2.6 | 4.4 | 0.1 |
| 26 | Togis Thomas67 commits | 6.8 | 4.4 | 1.7 | 0.8 |
| 27 | Joan Olguy CanΓ©us64 commits | 6.2 | 2.9 | 3.2 | 0.1 |
| 28 | Bin Huang83 commits | 5.9 | 0.8 | 4.9 | 0.2 |
| 29 | Santhosh Nagaraj107 commits | 5.4 | 0.8 | 4.3 | 0.3 |
| 30 | Ruinan Hu83 commits | 5.4 | 1.9 | 2.8 | 0.7 |
| 31 | Pranav Raghavan66 commits | 4.6 | 1.3 | 3.2 | 0.2 |
| 32 | generatedunixname103015177559215860 commits | 4.6 | 0 | 4.6 | 0 |
| 33 | Siva Muthusamy80 commits | 4.2 | 2.1 | 1.2 | 0.9 |
| 34 | Roman Choporov60 commits | 3.7 | 1.4 | 1.8 | 0.6 |
| 35 | Lohith Chittineni88 commits | 3.5 | 1.7 | 1.7 | 0.1 |
| 36 | Jeffrey Leung86 commits | 3.4 | 1 | 1.1 | 1.3 |
| 37 | Chet Powers43 commits | 3.2 | 1.5 | 1.1 | 0.7 |
| 38 | Kevin Yakar103 commits | 3.2 | 1.1 | 1.7 | 0.5 |
| 39 | Mike Choi35 commits | 3 | 0.7 | 2.2 | 0.2 |
| 40 | Jagadeesh Babu Challagundla26 commits | 2.9 | 1.5 | 1.4 | 0.1 |
| 41 | Travis Brown31 commits | 2.7 | 1.5 | 1 | 0.1 |
| 42 | Vasant Patil52 commits | 2.6 | 1.2 | 1 | 0.5 |
| 43 | Uchenna Mark Ezeobi42 commits | 2.4 | 1.3 | 1 | 0.2 |
| 44 | Paul Cruz83 commits | 2.4 | 0.7 | 1.4 | 0.3 |
| 45 | generatedunixname537391475639613143 commits | 2.3 | 0 | 2.3 | 0 |
| 46 | joywu-coder25 commits | 2.2 | 1 | 0.5 | 0.7 |
| 47 | Richard Barnes60 commits | 2.2 | 0 | 2.1 | 0 |
| 48 | Jitendra Verma53 commits | 2.1 | 0.1 | 1.7 | 0.4 |
| 49 | Justin Kim32 commits | 1.9 | 0.9 | 0.7 | 0.4 |
| 50 | Aristidis Papaioannou38 commits | 1.7 | 0 | 1.7 | 0 |
| 51 | Huy Chu14 commits | 1.5 | 1.3 | 0.1 | 0.1 |
| 52 | Shai Szulanski5 commits | 1.5 | 0 | 1.5 | 0 |
| 53 | Daniel Zhu19 commits | 1.3 | 0.6 | 0.4 | 0.2 |
| 54 | generatedunixname22671463979362115 commits | 1.1 | 0 | 1.1 | 0 |
| 55 | CliffyWong26 commits | 1 | 0.8 | 0.2 | 0.1 |
| 56 | edward20 commits | 1 | 0.7 | 0.1 | 0.2 |
| 57 | Prashasthi Melanta20 commits | 1 | 0.3 | 0.4 | 0.3 |
| 58 | Arjun Chaturvedi18 commits | 1 | 0.3 | 0.4 | 0.3 |
| 59 | aalamsi2229 commits | 1 | 0.8 | 0.1 | 0.1 |
| 60 | Brandon Chuang33 commits | 0.9 | 0.7 | 0.1 | 0.1 |
| 61 | chee-zhang21 commits | 0.8 | 0.5 | 0.1 | 0.2 |
| 62 | Tung-Chun Chang15 commits | 0.7 | 0.4 | 0.2 | 0.1 |
| 63 | generatedunixname47856480124344514 commits | 0.5 | 0 | 0.5 | 0 |
| 64 | generatedunixname8900200528756446 commits | 0.4 | 0.1 | 0.3 | 0 |
| 65 | Yedidya Feldblum4 commits | 0.4 | 0 | 0.4 | 0.1 |
| 66 | Tao Ren28 commits | 0.3 | 0 | 0.2 | 0.1 |
| 67 | TJ Yin6 commits | 0.3 | 0 | 0.2 | 0.1 |
| 68 | Lu Pan3 commits | 0.3 | 0 | 0 | 0.2 |
| 69 | Harsh Chokshi7 commits | 0.2 | 0 | 0.2 | 0 |
| 70 | Alex Hornby25 commits | 0.1 | 0.1 | 0 | 0 |
| 71 | Alper Yoney2 commits | 0.1 | 0 | 0.1 | 0 |
| 72 | Satish Kumar5 commits | 0.1 | 0.1 | 0 | 0 |