chatwoot / chatwoot
rubyvuejavascriptdevelop9499b69438.8K linessynced 1d ago
Code health
9.3out of 10Excellent
This codebase scores 9.3 out of 10 for code health, which we rate excellent. It also scores maintainability 9.6 and static performance 9.9 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 300 of 8,646 files are git hotspots, and they average 8.3 — which is where the fixes pay off most.
Do next
0 suggested
3 things worth doing in the week to Oct 21, the last indexed commit, 3 of them now.
Improve what Repowise can see
Add a test coverage report
Without one, Repowise cannot tell tested code from untested code, so every test-related action says “unknown”.
- line coverage
- Unknown, no report
Small effort
- Lines of code
- 438.8K
Recent activity
All commitsCommits
- 9499b695fix(whatsapp): recover stalled campaigns without repeating sends (#16281)1d ago
- 39314c97fix(voice): accept incoming twilio calls with withheld caller IDs (#16328)1d ago
- 80061170fix: clarify self-hosted assignment policy enablement (#16200)1d ago
- fb8d3de9feat(integrations): include stripe in cloud plan features (#16334)1d ago
- b3fb3c1cBump version to 4.19.02d ago
- f6811a7cchore: Update translations (#16147)2d ago
Decisions
- Classify contacts as leads based on creation/update signalsproposed · 1d ago
- Refactor report builders to use Reports::DataSource/RawDataSource abstractionproposed · 1d ago
- Handle Facebook Messenger sticker attachment type as image to avoid ingestion crashesproposed · 1d ago
- Extend conversation locking to single thread for Meta inboxproposed · 1d ago
- Localize friendly email sender namesproposed · 1d ago
- Quote professional email sender names per RFC 5322proposed · 1d ago
Everything we found
5,755 open
Every detector's open count by area, each with its worst example. An inventory, not a to-do list: the actions above are the part worth doing.
- worst item is critical severity. Code health2,719Complex conditional · app/javascript/dashboard/routes/dashboard/settings/inbox/Settings.vue13 findings · 7.5 deducted
- worst item is low severity. Refactoring193getValidation+0.8 health, S effort · app/javascript/widget/components/PreChat/Form.vue
- worst item is medium severity. Decisions344app/javascript/dashboard/components/widgets/conversation/ReplyBox.vue44 awaiting review · 300 hotspots ungoverned
- worst item is medium severity. Ownership2,499spec/enterprise/lib/captain/conversation_completion_service_spec.rb85% single-owner concentration, 7 commits in 90d
Composition
Open the graph- ruby54%
- vue23%
- javascript22%
- typescript<1%
- shell<1%
- Other<1%
Explore this codebase
- Docs5,344 pages across 18 modules
- ChatAsk this codebase a question and get an answer with its sources.
- Files8,646 files with per-file docs, health and history
- ArchitectureDependency graph, layers, and 6 entry points
- Code healthPer-file scores, 2,500 open findings, coverage and refactoring targets
- Knowledge graphEntities, communities, and the paths between them
- Change couplingFiles that keep changing together, mined from commit history
- CommitsChange-risk ranked history with agent provenance
- ContributorsBus factor, per-file maintainers, and the human/agent split
- StatsSize class, origin, lifetime churn, rhythm and records
- CostsWhat indexing this snapshot cost, by model and by run.