Skip to content
CAI
Software that uses CAICheck a score

rrdhoi/chatqu

42.4

Weak · 21 September 2026

5.6k

lines of production code

Dart

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a mobile or web application that integrates Firebase Crashlytics for automated error tracking and stability monitoring. It includes a chat feature with a remote data source that ensures consistent query behavior by sorting member IDs. The codebase has been updated to modernize dependencies and remove deprecated configuration files.

Features

Added Firebase Crashlytics integration and updated Firebase Core

The project now includes Firebase Crashlytics (version 3.0.15) for error tracking, alongside an update to Firebase Core (2.1.1 → 2.7.0) and Firebase Core Web (2.0.1 → 2.2.1). These changes are reflected in the generated plugin configuration files (.flutter-plugins, .flutter-plugins-dependencies) and the removal of the deprecated .packages file. The README.md was also updated to document the new Crashlytics integration and other technologies.

(repo-wide) · high confidence

Added Firebase Crashlytics integration for error tracking

The application now integrates Firebase Crashlytics to automatically track and report errors. This is achieved by generating Firebase configuration and plugin registrant files, and by wrapping the app initialization in a zone that routes fatal errors to Crashlytics. Users will benefit from improved stability as critical errors are now monitored and reported.

lib · high confidence

Enable Firebase Crashlytics for error tracking

The presentation layer now exports Firebase Crashlytics alongside the existing Firebase Core integration, enabling the application to track and report errors and crashes. This change adds the necessary Dart exports in the presentation library to support error tracking functionality.

lib/presentation · high confidence

Behavioural changes

Fix chat member ID ordering for consistent queries

The chat remote data source now ensures that the list of member IDs is sorted before being used in Firestore queries and model construction. Previously, the order of user IDs in the 'memberIds' list could vary, potentially causing query mismatches or inconsistent data mapping. By applying \.sort()\ to the member IDs list, the system guarantees a deterministic order, resolving issues where chat lookups might fail due to unordered ID arrays.

lib/data · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 53 → 42 (-10.9)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 98 (-2.3)
  • Architecture 100 → 91 (-9.0)
  • Maturity 57 → 61 (+4.5)
  • Readiness 24 → 0 (-24.3)
  • Security 95 → 98 (+3.9)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (12)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • High CVE: [GHSA redacted] (pubspec.lock)
  • No exposed public API
  • Rotate the exposed credentials — git history can't be un-committed
  • Secret: generic-api-key (android/app/google-services.json)
  • Test reliability not included
  • The Installation section only mentions searching for 'Chatqu' on app stores and a clipped link to Google Play, with no step-by-step installation or dependency setup instructions. (README.md)
  • complexity unreadable for .dart — churn × complexity hotspots could not be measured
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

New (20)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Duplicated block (10 lines × 2) (lib/presentation/pages/chat/group_chat_page.dart)
  • Duplicated block (14 lines × 2) (lib/data/datasource/chat/chat_remote_data_source_impl.dart)
  • Duplicated block (15–16 lines × 2) (lib/presentation/pages/chat/group_chat_page.dart)
  • Duplicated block (16 lines × 2) (lib/presentation/widgets/chat_bubble.dart)
  • Duplicated block (17 lines × 2) (lib/presentation/pages/auth/login_page.dart)
  • Duplicated block (19 lines × 2) (lib/presentation/pages/chat/group_chat_page.dart)
  • Duplicated block (19–21 lines × 2) (lib/data/datasource/friend/friend_remote_data_source_impl.dart)
  • Duplicated block (21 lines × 2) (lib/presentation/pages/auth/add_image_profile_page.dart)
  • Duplicated block (37 lines × 2) (lib/presentation/pages/auth/login_page.dart)
  • Duplicated block (40 lines × 2) (lib/presentation/pages/chat/group_chat_page.dart)
  • Duplicated block (6 lines × 2) (lib/data/datasource/friend/friend_remote_data_source_impl.dart)
  • Duplicated block (6 lines × 2) (lib/data/models/chat_model.dart)
  • Duplicated block (7 lines × 2) (lib/data/models/chat_model.dart)
  • Duplicated block (9 lines × 2) (lib/presentation/pages/chat/group_chat_page.dart)
  • High CVE: [GHSA redacted] (pubspec.lock)
  • Leaked secret: gcp-api-key (lib/firebase_options.dart)
  • Leaked secret: high-entropy-secret (lib/firebase_options.dart)
  • MethodTooLong: ChatBubble.build (lib/presentation/widgets/chat_bubble.dart)
  • No ADRs found

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

rrdhoi/chatqu was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit fc60f0b4e2172239fcf7989a656fc18bab19508f — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.