repowiserepowise
Sign in
chatwoot/chatwoot
OverviewDocsArchitectureKnowledge GraphFilesCode HealthRefactoring

People & History

CommitsContributorsDecisions
ChatPro
Stats
repowiserepowise
ExplorePricingDocs
Sign inIndex repoIndex your repo free
repowisechatwoot/chatwoot
CH
CH

chatwoot / chatwoot

jsondevelopd0b1c05869.0K linessynced 4w ago

Code health

9.8out of 10Excellent

This codebase scores 9.8 out of 10 on defect risk, which we rate excellent. It also scores maintainability 9.9 and static performance risk 10.0 out of 10. The three are scored separately and never blended into one number. The files you change most are the weak spot: 100 of 6,607 files are git hotspots, and they average 7.0.

Full health report →
Score validation15/208.43× baselineOf the 20 lowest-health files, 15 were bug-fixed in the last 6 months — 8.43× the 9% baselineDead code351exportsUnused exports that nothing in the graph reaches
Lines of code
869.0K
Files
6,607
Symbols
10,856
Modules
420
Languages
14

Recent activity

All commits →

Commits

No commits indexed yet.

Decisions

  • 1 MB body should pass under the 40 MB fallbackproposed
  • 2. Find the max Account ID to avoid conflictsproposed
  • 422 (not 200) so any client treating 2xx as "call placed" can't mistake the permission-template…proposed
  • A concurrent webhook (e.g. a status update bypassing the per-contact mutex) just inserted the same…proposed
  • Accepts the generated content and returns it. Note: Formatting is automatically stripped by the…proposed
  • Account-wide broadcast that can arrive before /initiate sets this tab's call id.…proposed

Needs attention

516 open
  • medium severity. Proposed1 MB body should pass under the 40 MB fallbackAuto-proposed decision awaiting review
  • medium severity. Proposed2. Find the max Account ID to avoid conflictsAuto-proposed decision awaiting review
  • medium severity. Proposed422 (not 200) so any client treating 2xx as "call placed" can't mistake the permission-template…Auto-proposed decision awaiting review
  • medium severity. ProposedA concurrent webhook (e.g. a status update bypassing the per-contact mutex) just inserted the same…Auto-proposed decision awaiting review
  • medium severity. ProposedAccepts the generated content and returns it. Note: Formatting is automatically stripped by the…Auto-proposed decision awaiting review

Where the risk concentrates

All 100 hotspots →

Ranked by prior bug fixes and change frequency, mined from full git history rather than from the code alone.

FileChurnPrior fixesMaintainersCommits 90d
store_spec.rbspec/services/conversations/unread_counts100.0th024
safe_fetch_spec.rbspec/lib99.9th035
builder_spec.rbspec/services/conversations/unread_counts99.9th023
schedule_syncs_job_spec.rbspec/enterprise/jobs/captain/documents99.9th01bus factor 15
response_builder_job_spec.rbspec/enterprise/jobs/captain/conversation99.8th045

Composition

Open the graph →
json 39%ruby 34%javascript 15%yaml 7%external 5%Other 1%

Explore this codebase

  • Docs0 pages across 420 modules→
  • ChatAsk this codebase a question and get an answer with its sources→
  • Files6,607 files with per-file docs, health and history→
  • ArchitectureDependency graph, layers, and 1,024 entry points→
  • Code healthPer-file scores, 2,993 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→