Skip to content
CAI
Software that uses CAICheck a score

elixir-error-tracker/error-tracker

52.6

Adequate · 3 October 2026

3.1k

lines of production code

Elixir

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

ErrorTracker is an Elixir library that provides an embedded solution for capturing, storing, and visualizing application errors. It integrates with Phoenix, Plug, and Oban to automatically collect exceptions and context, storing them in PostgreSQL, MySQL, or SQLite databases. The system includes a web dashboard for inspecting, filtering, and managing error states, along with utilities for sanitizing sensitive data and pruning old records.

Features

Add Igniter-based installer for ErrorTracker

Users can now install and configure ErrorTracker using the \mix error\_tracker.install\ command, which leverages Igniter to automatically set up configuration, add a database migration, and integrate the web UI into the Phoenix router. If Igniter is not present, the task provides a clear error message directing users to install it first.

lib/mix · high confidence

Add Pruner plugin to automatically delete resolved errors

A new \ErrorTracker.Plugins.Pruner\ plugin has been added to help manage database size by periodically deleting resolved errors based on their age. Users can enable this feature by registering the plugin in their ErrorTracker configuration, where it will run every 30 minutes by default to remove errors resolved for more than 24 hours. The plugin allows customization of the pruning interval, the maximum age of errors to retain, and the batch limit per run to prevent database load. Additionally, a \prune\_errors/2\ function is exposed for manual execution, such as within Oban workers for more granular control.

_lib/error\tracker/plugins · high confidence

Add database migration support for MySQL, PostgreSQL, and SQLite

The error tracker now supports migrating its internal schema across multiple database backends. New migration modules have been added for MySQL, PostgreSQL, and SQLite, which delegate to a shared SQL migrator. This migrator handles version tracking via an \error\_tracker\_meta\ table, ensuring that schema changes are applied correctly regardless of the underlying database system.

_lib/error\tracker/migration · high confidence

Add light theme support and UI enhancements

Users can now toggle between dark and light themes, with the preference persisted in local storage. The interface includes a button to copy error details to the clipboard and displays JSON content with pretty-printed formatting for better readability. The visual design has been updated using Tailwind CSS, including custom scrollbar styling.

assets · high confidence

Added database migration and development seed script for error tracking

The application now includes a database migration to create the necessary tables for the error tracker and a seed script for local development. The migration delegates to the core ErrorTracker module to set up the schema, while the seed script initializes a development repository (supporting both Postgres and SQLite3) and populates it with sample error records and occurrences to facilitate testing and debugging.

priv/repo · high confidence

Initial configuration files for development and testing environments

The application now includes base configuration files (\config.exs\, \dev.example.exs\, \test.example.exs\) that define the runtime environment setup. The development configuration provides examples for connecting to PostgreSQL, MySQL/MariaDB, or SQLite3 databases, and sets up asset compilation tools like Bun and Tailwind CSS. The test configuration establishes database repositories for PostgreSQL, MySQL, and SQLite, utilizing the Ecto Sandbox for concurrent test execution.

config · high confidence

Initial release of ErrorTracker library

This change introduces the ErrorTracker library, a new capability for tracking, storing, and visualizing application errors. It provides an Ecto-based data layer supporting PostgreSQL, MySQL, and SQLite3 via a unified \ErrorTracker.Repo\ and configurable migrations. Users can integrate the library into Phoenix applications using the \ErrorTracker.Web\ macro to mount a LiveView dashboard for inspecting errors. The library includes behaviors for customizing error handling, such as \ErrorTracker.Filter\ for sanitizing context and \ErrorTracker.Ignorer\ for filtering out specific errors before storage. It also emits standard Telemetry events (\:error\_tracker.error.new\, \:error\_tracker.error.resolved\, etc.) to allow external monitoring of error lifecycles.

_lib/error\tracker · high confidence

Initial release of ErrorTracker with dev server and documentation

This entry marks the initial commit of the ErrorTracker project, introducing an Elixir-native error tracking solution that captures and stores application errors in a database and provides a web dashboard for inspection. The diff establishes the core project structure, including a development server script (dev.exs) built on Phoenix LiveDashboard for testing error scenarios, configuration for SQLite3 storage, and a formatter setup using Styler. It also includes comprehensive README documentation explaining the tool's purpose, installation, and development workflow, along with a CHANGELOG file pointing to GitHub releases.

(repo-wide) · high confidence

Initial web dashboard integration and routing

This change introduces the core web infrastructure for the ErrorTracker dashboard, allowing users to integrate and view error tracking data directly within their application. It adds a router macro (\error\_tracker\_dashboard\) to mount LiveView routes for the dashboard index and error details, along with hooks to manage session state and CSP nonces for secure asset inlining. Supporting modules include helper functions for module name sanitization and datetime formatting, a search component built on Ecto changesets for filtering errors, and utility functions for generating dashboard-relative paths.

_lib/error\tracker/web · high confidence

Introduce error tracking data schemas

Added Ecto schemas for \ErrorTracker.Error\, \ErrorTracker.Occurrence\, and \ErrorTracker.Stacktrace\ to define how error reports are stored in the database. The \Error\ schema handles core identification fields like kind, reason, and a SHA-256 fingerprint (excluding the reason to avoid volatility), while the \Occurrence\ schema stores individual instances with context and breadcrumbs, including validation to ensure context is JSON-serializable for the underlying database adapter. The \Stacktrace\ schema embeds execution details, normalizing module names by stripping the \Elixir.\ prefix and supporting both integer and list-based arities.

_lib/error\tracker/schemas · high confidence

Introduce native error tracking library with dashboard and multi-database support

This change introduces ErrorTracker, a built-in Elixir error tracking solution that automatically captures and stores exceptions from Phoenix, Plug, and Oban integrations. Users can now view error details, manage error status (resolved/unresolved), and mute noisy errors via a new web dashboard. The library supports PostgreSQL, MySQL/MariaDB, and SQLite3, and allows attaching arbitrary context and breadcrumbs to errors for better debugging.

lib · high confidence

Introduce web dashboard for error tracking

Adds a new LiveView-based web dashboard that allows users to view, search, and manage tracked errors. The dashboard lists errors with their occurrence counts and status, supporting filtering by reason, source line, source function, and status (resolved/unresolved). Users can paginate through results, resolve or unresolve errors, and mute or unmute specific error types. Clicking an error opens a detailed view showing the full message, source information, breadcrumbs, stacktrace (with an option to filter app frames), and context, along with navigation between individual occurrences and a button to copy error details to the clipboard.

_lib/error\tracker/web/live · high confidence

New integrations for Plug, Phoenix, and Oban

ErrorTracker now automatically captures errors from Plug-based applications, Phoenix web apps (including LiveView and LiveComponent exceptions), and background jobs processed by Oban. The Plug integration redacts sensitive headers like Authorization and Cookie, while the Phoenix integration enriches error context with LiveView-specific details such as the view module, URI, params, and events. The Oban integration attaches telemetry listeners to report job failures, storing context like job ID, worker name, queue, and arguments to help identify the source of background processing errors.

_lib/error\tracker/integrations · high confidence

New web dashboard with light theme support

The error tracker now includes a web-based dashboard for viewing errors, featuring a new navigation bar and reusable UI components like buttons, badges, and pagination. A key addition is the support for a light theme, allowing users to toggle between dark and light modes via a button in the navbar, with corresponding CSS and JavaScript assets embedded for the layout.

_lib/error\tracker/web/components · high confidence

Behavioural changes

MySQL database schema updates for breadcrumbs and error muting

The MySQL migration scripts have been updated to support new error tracking capabilities. The schema now includes a JSON \breadcrumbs\ column in the \error\_tracker\_occurrences\ table to capture navigation context, and a boolean \muted\ column in the \error\_tracker\_errors\ table to allow users to suppress specific error types.

_lib/error\tracker/migration/mysql · high confidence

New layout structure with light theme and CSP compliance

The application now uses a new layout hierarchy consisting of \live.html.heex\ and \root.html.heex\. The root layout introduces a light theme (white text on gray background) and implements Content Security Policy (CSP) by adding nonces to script and style tags. The live layout wraps page content in a main container and includes a navbar component.

_lib/error\tracker/web/components/layouts · high confidence

PostgreSQL schema updates add breadcrumbs and mute support

The PostgreSQL migration suite has been updated to support new error tracking features. Migration v04 adds a \breadcrumbs\ column to the \error\_tracker\_occurrences\ table to store context history, while migration v05 adds a \muted\ boolean column to the \error\_tracker\_errors\ table to allow users to suppress specific error types. These changes extend the existing schema defined in earlier migrations (v01-v03) without altering the core error storage structure.

_lib/error\tracker/migration/postgres · high confidence

Redesigned web dashboard with light theme and improved navigation

The web dashboard has been restyled using Tailwind CSS to improve mobile responsiveness and navigation. A new light theme is now available, allowing users to toggle between light and dark modes, with the preference saved in the browser. The interface now includes breadcrumb navigation for better context and a loading indicator to show page transitions. Additionally, users can now copy error details to the clipboard with a single click, and JSON data is automatically pretty-printed for easier reading.

priv/static · high confidence

SQLite schema updates for breadcrumbs and error muting

The SQLite error tracker database schema has been updated to support new tracking features. Migration v04 adds a breadcrumbs column to the occurrences table, allowing users to attach contextual navigation history to error reports. Migration v05 adds a muted boolean flag to the errors table, enabling users to suppress notifications for specific error types. Additionally, migration v03 ensures an index exists on the last\_occurrence\_at field for improved query performance.

_lib/error\tracker/migration/sqlite · high confidence

Test coverage

Added integration tests for sensitive header redaction in the Plug integration; Added test support infrastructure for database and telemetry testing; Added tests for error detail formatting; Added unit tests for error filtering, ignoring, and telemetry events; Added unit tests for error reporting, occurrence validation, and breadcrumb handling.

Dependencies

Upgrade to Elixir 1.15+ and Ecto 3.13 with new asset tooling

ErrorTracker now requires Elixir 1.15 or later and Ecto 3.13, upgrading from the previous minimums to support modern Elixir features and the latest Ecto stability. The project has added Phoenix LiveView 1.0 as a core dependency and introduced Bun and Tailwind CSS for asset management, replacing the previous setup. Additionally, optional database drivers for SQLite3, MySQL/MariaDB, and PostgreSQL are now explicitly declared, and the Credo linter has been replaced with the Styler formatter for code style enforcement.

(dependencies) · high 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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 53 → 53 (-0.2)
  • Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 99 → 100 (+0.1)
  • Architecture 84 → 88 (+4.1)
  • Maturity 51 → 50 (-1.0)
  • Readiness 57 → 56 (-0.7)
  • Security 67 → 67 (-0.2)
  • Accessibility 45 → 45 (+0.0)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (5)

  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Off-boarding risk: anonymized user #1
  • Orphaned files with no living knowledge

Changes since last survey

  • 1 commits — 0 feature/other, 1 fixes

By area

  • lib/error_tracker — 1 commit

Notable commits

  • fix: fix: Don't drop _target attribute in navbar (#183)

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

Survey your own repository

elixir-error-tracker/error-tracker 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 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 52340e2d1ab28bf413244182cd698856a91458cb — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.