Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
2,800
in the current tree
Bus Factor
5
5 authors are primary owner of 1,515 of 2,800 files
Single-Owner Files
1,146
40.9% of tracked files
Contributors
171
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
.agents/skills/verify-openhands/references/feature-map/F01-first-run-and-sign-in.mdEngel Nyst13
.agents/skills/verify-openhands/references/feature-map/F02-app-shell.mdEngel Nyst9
.agents/skills/verify-openhands/references/maintenance.mdEngel Nyst7
.agents/skills/verify-openhands/references/feature-map/F11-provider-connections.mdEngel Nyst6
.agents/skills/verify-openhands/references/feature-map/F12-model-router.mdEngel Nyst5
__tests__/components/features/setup-guide/super-admin-setup-guide.test.tsxHiep Le5
__tests__/components/conversation-events/chat/duplicate-streamed-message.test.tsxVasco Schiavo5
src/services/telemetry-context.tsRohit Malhotra5
.agents/skills/verify-openhands/references/daily.mdEngel Nyst4
src/hooks/query/use-native-git-integrations.tsHiep Le4
Table: the 100 most-changed of 1,146 single-owner files
FileSole ownerCommits
.agents/skills/verify-openhands/references/feature-map/F01-first-run-and-sign-in.mdEngel Nyst13
.agents/skills/verify-openhands/references/feature-map/F02-app-shell.mdEngel Nyst9
.agents/skills/verify-openhands/references/maintenance.mdEngel Nyst7
.agents/skills/verify-openhands/references/feature-map/F11-provider-connections.mdEngel Nyst6
.agents/skills/verify-openhands/references/feature-map/F12-model-router.mdEngel Nyst5
__tests__/components/features/setup-guide/super-admin-setup-guide.test.tsxHiep Le5
__tests__/components/conversation-events/chat/duplicate-streamed-message.test.tsxVasco Schiavo5
src/services/telemetry-context.tsRohit Malhotra5
.agents/skills/verify-openhands/references/daily.mdEngel Nyst4
src/hooks/query/use-native-git-integrations.tsHiep Le4
src/components/features/setup-guide/super-admin-setup-guide.tsxHiep Le4
electron/loading.htmlHiep Le4
__tests__/hooks/chat/use-model-interceptor.test.tsxVasco Schiavo4
src/components/features/settings/meta-llm-profiles/default-meta-profile.tsJuan Pedro Michelini Jorge4
.agents/skills/verify-openhands/scripts/lib/known-bug.mjsEngel Nyst3
__tests__/scripts/raw-colors-lint.test.tsEngel Nyst3
tests/e2e/settings-responsive.spec.tsEngel Nyst3
.agents/skills/verify-openhands/references/report.mdEngel Nyst3
src/hooks/mutation/use-resume-conversation.tsGraham Neubig3
src/api/mcp-service/mcp-redacted-credentials.tsGraham Neubig3
src/components/features/markdown/markdown-table-scroll.tsxFraterCCCLXIII3
src/components/features/setup-guide/use-super-admin-setup-guide.tsHiep Le3
src/components/features/setup-guide/super-admin-setup-guide.constants.tsHiep Le3
__tests__/components/features/setup-guide/setup-guide-tour.test.tsHiep Le3
__tests__/components/features/setup-guide/tour-engine.test.tsHiep Le3
src/components/features/setup-guide/tour/setup-guide-tour.tsHiep Le3
src/components/features/setup-guide/tour/tour-engine.tsHiep Le3
src/components/features/setup-guide/tour/tour-types.tsHiep Le3
src/utils/responder-deployment.tsHiep Le3
__tests__/components/features/plugins/build-plugins-view-model.test.tsHiep Le3
src/api/plugins-service.test.tsHiep Le3
src/api/plugins-service.tsHiep Le3
src/components/features/plugins/build-plugins-view-model.tsHiep Le3
__tests__/hooks/use-streamed-text.test.tsxVasco Schiavo3
src/hooks/use-streamed-text.tsVasco Schiavo3
src/components/features/settings/agent-profiles/merge-agent-profile-save-input.tssimonrosenberg3
src/hooks/use-save-acp-secrets.tssimonrosenberg3
__tests__/routes/mcp.test.tsxsimonrosenberg3
.agents/skills/verify-openhands/scripts/lib/testids.mjsEngel Nyst2
.agents/skills/verify-openhands/scripts/lib/launcher-env.mjsEngel Nyst2
.agents/skills/verify-openhands/scripts/lib/tmux-path.mjsEngel Nyst2
src/hooks/use-close-on-escape.tsEngel Nyst2
__tests__/hooks/use-conversation-panel-route.test.tsxEngel Nyst2
.agents/skills/verify-openhands/scripts/lib/map-sources.mjsEngel Nyst2
__tests__/scripts/restyle-lint.test.tsEngel Nyst2
.agents/skills/verify-openhands/references/adaptation.mdEngel Nyst2
src/api/llm-subscription-service.tsGraham Neubig2
__tests__/utils/mcp-installed-servers.test.tsGraham Neubig2
src/types/agent-server/core/events/observation-event.tsGraham Neubig2
src/utils/mcp-server-name.tsGraham Neubig2
__tests__/query-client-config.test.tsGraham Neubig2
__tests__/hooks/query/use-agent-settings-schema.test.tsxGraham Neubig2
src/types/agent-server/core/events/index.tsGraham Neubig2
src/types/agent-server/core/openhands-event.tsGraham Neubig2
__tests__/hooks/mutation/use-resume-conversation.test.tsxGraham Neubig2
src/components/features/conversation-panel/conversation-group-folder-list.tsxFraterCCCLXIII2
src/ui/combobox-caret.tsxFraterCCCLXIII2
src/components/features/sidebar/sidebar-collapsed-icon-slot.tsxFraterCCCLXIII2
__tests__/components/automations/detail/run-phase.test.tsxArtem Altukhov2
__tests__/mocks/automation-runs.mock.test.tsArtem Altukhov2
src/utils/automation-repo-sources.tsAlona2
src/api/cloud/setup-state-service.api.tsHiep Le2
src/components/features/setup-guide/tour/tour-theme.cssHiep Le2
__tests__/hooks/query/use-manifest-prerequisites.test.tsxHiep Le2
src/hooks/query/use-manifest-prerequisites.tsHiep Le2
__tests__/components/features/home/build-pinned-automation-menu-items.test.tsHiep Le2
src/components/features/home/featured-automations/build-home-automation-menu-items.tsxHiep Le2
src/components/features/home/featured-automations/build-pinned-automation-menu-items.tsxHiep Le2
electron/package.jsonHiep Le2
src/manifests/manifest-sources.tsHiep Le2
__tests__/manifests/manifest-capabilities.test.tsHiep Le2
src/api/plugins-management-service.tsHiep Le2
src/utils/mcp-credential-validation.tsHiep Le2
src/api/cloud/git-service.api.tsHiep Le2
__tests__/services/secret-request.test.tsVasco Schiavo2
src/api/request-secret-client-tool.tsVasco Schiavo2
src/constants/secret-request.tsVasco Schiavo2
src/services/secret-request.tsVasco Schiavo2
src/stores/secret-request-store.tsVasco Schiavo2
__tests__/utils/streaming-delta-batcher.test.tsVasco Schiavo2
src/utils/streaming-delta-batcher.tsVasco Schiavo2
__tests__/hooks/mutation/sync-agent-profiles.test.tssimonrosenberg2
src/hooks/mutation/sync-agent-profiles.tssimonrosenberg2
__tests__/hooks/mutation/resolve-conversation-launch.test.tssimonrosenberg2
__tests__/hooks/use-active-agent-profile.test.tsxsimonrosenberg2
__tests__/routes/agent-settings-tool-selection.test.tsxsimonrosenberg2
src/api/agent-profiles-service/agent-profiles-service.api.tssimonrosenberg2
src/components/features/settings/agent-profiles/delete-agent-profile-modal.tsxsimonrosenberg2
src/components/features/settings/agent-profiles/profile-behavior-form.tssimonrosenberg2
src/hooks/mutation/resolve-conversation-launch.tssimonrosenberg2
src/hooks/mutation/use-apply-onboarding-agent-profile.tssimonrosenberg2
__tests__/constants/profile-tools.test.tssimonrosenberg2
src/constants/profile-tools.tssimonrosenberg2
__tests__/constants/profile-scope.test.tssimonrosenberg2
src/constants/profile-scope.tssimonrosenberg2
__tests__/utils/acp-command.test.tssimonrosenberg2
__tests__/components/automations/detail/disabled-reason-banner.test.tsxRohit Malhotra2
__tests__/tools/automation-form-tool.test.tsRohit Malhotra2
src/api/automation-form-client-tool.tsRohit Malhotra2
src/constants/automation-form.tsRohit Malhotra2

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
Hiep Le405134956
openhands356179723
FraterCCCLXIII27781710
Graham Neubig25672823
🐾 smolpaws22161547
Vasco Schiavo21591492
Engel Nyst190115583
Rohit Malhotra19069501
simonrosenberg16252309
aivong-openhands6940132
Robert Brennan6227294
Juan Pedro Michelini Jorge5029150
george larson4726155
amandhaw473085
Tim O'Farrell248160
david l euler2213240
Xingyao Wang22679
Denis Ermakov111159
Irhas Abdul Rosyid101014
chuckbutkus8141
kr1shna-exe8526
Alona7775
Sleeyax7721
Shashwat Pratap Singh6340
OpenHands Bot6233

Showing top 25 of 171 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
README.md55mamoodi25.1%
src/i18n/translation.json39Hiep Le24.4%
.gitignore30Xingyao Wang22.2%
AGENTS.md27Graham Neubig21.7%
package.json24Graham Neubig19.6%
package-lock.json24Graham Neubig18.7%
src/api/agent-server-adapter.ts24Graham Neubig19.4%
src/api/conversation-service/agent-server-conversation-service.api.ts20Graham Neubig20.0%
__tests__/api/agent-server-adapter.test.ts19Graham Neubig20.8%
scripts/dev-with-automation.mjs19Rohit Malhotra25.0%
src/components/features/chat/chat-interface.tsx18Vasco Schiavo12.5%
__tests__/components/features/conversation-panel/conversation-card.test.tsx18simonrosenberg13.9%
__tests__/api/agent-server-conversation-service.test.ts17Graham Neubig22.2%
src/contexts/conversation-websocket-context.tsx17Vasco Schiavo20.0%
scripts/dev-safe.mjs16Graham Neubig20.0%
config/defaults.json16Rohit Malhotra21.1%
src/components/features/conversation-panel/conversation-panel.tsx16FraterCCCLXIII28.6%
src/api/settings-service/settings-service.api.ts16Hiep Le30.3%
__tests__/scripts/dev-safe.test.ts15Graham Neubig21.1%
docs/DEVELOPMENT.md15Graham Neubig17.4%