Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-23 04:22 UTC

getagentseal / codeburn

Free, local tool to track AI coding token usage and cost across 31 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn

TypeScript · SwiftMIT★ 8.858 Sterne⑂ 691 Forksseit Apr. 2026Auf GitHub ansehen ↗

getagentseal/codeburn erreicht einen Gesundheitsindex von 70 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Community & Adoption (82/100) ab, am schwächsten bei Security (42/100). Zuletzt vor 1 Tag aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

70
gesamt / 100
Gut

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

70
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

AgentsealOrganisation
77 Follower9 öffentliche Reposseit Apr. 2026

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npmcodeburn0.9.1932.31050vor 2 Tagenclaude-codecursorcodexkimidevinibm-bobopencodepicodebuffcodewhaleai-codingtoken-usagecost-trackingobservabilitydeveloper-tools

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

80Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 1 Tagen
10.4/36Commit-Rhythmus — 15/52 Wochen mit Commits
18/18Commit-Volumen — 1.118 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year1.118
human_commit_share1
days_since_last_push1
active_weeks_last_year15
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 48 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 2 Tagen
27/27Release-Rhythmus — ein Release etwa alle 2,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count48
latest_release_tagmac-v0.9.19
releases_from_tagsnein
days_since_latest_release2
mean_days_between_releases2,1

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

82Gut · 18 % des Gesamtindex
Wie die Bewertung erfolgt
60/60Stars — 8.858 Stars
23.7/25Forks — 691 Forks
7.9/15Watcher — 27 Watcher
Verwendete Eingangsdaten
forks691
stars8.858
watchers27
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templateja
Wie die Bewertung erfolgt
60.1/80Downloads pro Monat — 32.310 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagescodeburn
dependents
ecosystemsnpm
total_downloads
monthly_downloads32.310
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

62Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
4.6/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 80 % der Commits
13.5/13.5Breite der Beitragenden — 61 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 14 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor1
contributors_sampled61
top_contributor_share0,796
Wie die Bewertung erfolgt
42.6/46.8Issue-Lösungsquote — 91 % der Issues geschlossen
29/38.3PR-Annahme — 412/544 entschiedene PRs gemergt
1.5/15OpenSSF Scorecard: Code-Review — Found 3/29 approved changesets -- score normalized to 1
Verwendete Eingangsdaten
merged_prs412
open_issues21
closed_issues218
issue_closed_ratio0,912
closed_unmerged_prs132
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
13.6/25Reichweite des Inhabers — 77 Follower von getagentseal
7.8/25Kontohistorie — 9 öffentliche Repos, Kontoalter ca. 0 Jahre
Verwendete Eingangsdaten
followers77
owner_typeOrganization
is_verified
owner_logingetagentseal
public_repos9
account_age_days95

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 2 Tagen
20/20Versionshistorie — 50 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagescodeburn
ecosystemsnpm
any_deprecatednein
min_days_since_publish2

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

81Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 4 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 28 out of 28 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein

Dokumentation

100Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://codeburn.app/
10/10Repository-Beschreibung
10/10Topics — 12 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsai-coding, claude-code, cli, codex, cost-tracking, developer-tools, observability, terminal-ui, token-usage, cursor-ide, menubar, web-dashboard
has_wikija
homepagehttps://codeburn.app/
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

42Gefährdet · 16 % des Gesamtindex

Sicherheitslage

42Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 28 out of 28 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 3/29 approved changesets -- score normalized to 1
2.5/2.5Contributors — project has 14 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 23 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,2
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): packaging. Die verbleibenden Gewichte wurden renormalisiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

61Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — docs/providers/claude.md, docs/providers/gemini.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 100 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_filesdocs/providers/claude.md, docs/providers/gemini.md
agent_instruction_max_bytes3.012
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — app/tsconfig.json, dash/tsconfig.json, tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configsapp/tsconfig.json, dash/tsconfig.json, tsconfig.json
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
54.1/55Handhabbare Dateigrößen — 8/510 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes167.083
source_files_sampled510
oversized_source_files8
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
0/40Lauffähige Beispiele
Verwendete Eingangsdaten
example_dirs
has_mcp_signalja
api_schema_files

Eckdaten

8.858GitHub-Sterne
61Mitwirkende
1.118Commits, letzte 12 Monate
1Tage seit letztem Push
48Releases
1Bus-Faktor
21offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository
  • deps.dev does not index npm:codeburn@0.9.19; advisories assessed against the repository dependency graph instead

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 691 ⇿
0Sterne
691Forks
48Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

0125250375500625750690632026-042026-062026-07
Major 0Minor 1Patch 14
OpenSSF Scorecard 4.2 / 10
4.2Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-23 04:22 UTC

10Binary-Artifactsno binaries found in the repo
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests28 out of 28 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 3/29 approved changesets -- score normalized to 1
10Contributorsproject has 14 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities23 existing vulnerabilities detected
Direkte Abhängigkeiten 21
RegistryPaketVersionsvorgabeManifest
npm@gsap/react^2.1.2app/package.json
npmgsap^3.15.0app/package.json
npmreact^19.2.7app/package.json
npmreact-dom^19.2.7app/package.json
npm@tanstack/react-query^5.62.7dash/package.json
npmclsx^2.1.1dash/package.json
npmlucide-react^0.468.0dash/package.json
npmreact^19.0.0dash/package.json
npmreact-dom^19.0.0dash/package.json
npmrecharts^3.3.0dash/package.json
npmtailwind-merge^3.0.2dash/package.json
npm@modelcontextprotocol/sdk^1.29.0package.json
npmbonjour-service^1.4.1package.json
npmchalk^5.4.1package.json
npmcommander^13.1.0package.json
npmink^7.0.0package.json
npmreact^19.2.5package.json
npmselfsigned^5.5.0package.json
npmstrip-ansi^7.2.0package.json
npmundici^7.27.2package.json
npmzod^3.25.76package.json
Alle Abhängigkeiten nicht erhoben

Der aufgelöste Abhängigkeitssatz konnte für diesen Bericht nicht erhoben werden: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "ai-coding",
        "claude-code",
        "cli",
        "codex",
        "cost-tracking",
        "developer-tools",
        "observability",
        "terminal-ui",
        "token-usage",
        "cursor-ide",
        "menubar",
        "web-dashboard"
      ],
      "is_fork": false,
      "size_kb": 18611,
      "has_wiki": true,
      "homepage": "https://codeburn.app/",
      "languages": {
        "CSS": 107170,
        "HTML": 56153,
        "Shell": 14216,
        "Swift": 624654,
        "JavaScript": 65456,
        "TypeScript": 4621387
      },
      "pushed_at": "2026-07-21T22:23:26Z",
      "created_at": "2026-04-13T22:11:53Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-23T04:15:38Z",
      "description": "Free, local tool to track AI coding token usage and cost across 31 tools and agents (Claude Code, Cursor, Codex, Gemini and more), by model, project, and task. npx codeburn",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "Swift"
      ]
    },
    "owner": {
      "blog": "https://agentseal.org/",
      "name": "Agentseal",
      "type": "Organization",
      "login": "getagentseal",
      "company": null,
      "location": "Germany",
      "followers": 77,
      "avatar_url": "https://avatars.githubusercontent.com/u/277308000?v=4",
      "created_at": "2026-04-18T17:17:21Z",
      "is_verified": null,
      "public_repos": 9,
      "account_age_days": 95
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "mac-v0.9.19",
          "kind": "other",
          "published_at": "2026-07-20T17:22:34Z"
        },
        {
          "tag": "desktop-v0.9.19",
          "kind": "other",
          "published_at": "2026-07-20T21:03:03Z"
        },
        {
          "tag": "v0.9.19",
          "kind": "patch",
          "published_at": "2026-07-20T16:43:57Z"
        },
        {
          "tag": "desktop-v0.9.17",
          "kind": "other",
          "published_at": "2026-07-17T21:02:53Z"
        },
        {
          "tag": "desktop-v0.9.16",
          "kind": "other",
          "published_at": "2026-07-17T02:31:18Z"
        },
        {
          "tag": "mac-v0.9.16",
          "kind": "other",
          "published_at": "2026-07-17T02:24:30Z"
        },
        {
          "tag": "v0.9.16",
          "kind": "patch",
          "published_at": "2026-07-17T02:24:17Z"
        },
        {
          "tag": "desktop-v0.9.15",
          "kind": "other",
          "published_at": "2026-07-16T22:52:05Z"
        },
        {
          "tag": "mac-v0.9.15",
          "kind": "other",
          "published_at": "2026-07-02T04:32:26Z"
        },
        {
          "tag": "v0.9.15",
          "kind": "patch",
          "published_at": "2026-07-02T04:32:09Z"
        },
        {
          "tag": "mac-v0.9.14",
          "kind": "other",
          "published_at": "2026-06-22T01:53:21Z"
        },
        {
          "tag": "v0.9.14",
          "kind": "patch",
          "published_at": "2026-06-22T01:56:00Z"
        },
        {
          "tag": "mac-v0.9.13",
          "kind": "other",
          "published_at": "2026-06-14T08:36:23Z"
        },
        {
          "tag": "mac-v0.9.12",
          "kind": "other",
          "published_at": "2026-06-09T23:04:28Z"
        },
        {
          "tag": "v0.9.12",
          "kind": "patch",
          "published_at": "2026-06-09T23:02:46Z"
        },
        {
          "tag": "mac-v0.9.11",
          "kind": "other",
          "published_at": "2026-05-27T13:13:11Z"
        },
        {
          "tag": "v0.9.11",
          "kind": "patch",
          "published_at": "2026-05-27T13:12:54Z"
        },
        {
          "tag": "mac-v0.9.10",
          "kind": "other",
          "published_at": "2026-05-20T11:25:02Z"
        },
        {
          "tag": "v0.9.10",
          "kind": "patch",
          "published_at": "2026-05-20T11:24:48Z"
        },
        {
          "tag": "v0.9.9",
          "kind": "patch",
          "published_at": "2026-05-17T09:48:23Z"
        },
        {
          "tag": "mac-v0.9.9",
          "kind": "other",
          "published_at": "2026-05-17T09:44:16Z"
        },
        {
          "tag": "mac-v0.9.8",
          "kind": "other",
          "published_at": "2026-05-11T00:16:59Z"
        },
        {
          "tag": "v0.9.8",
          "kind": "patch",
          "published_at": "2026-05-11T00:16:39Z"
        },
        {
          "tag": "mac-v0.9.7",
          "kind": "other",
          "published_at": "2026-05-07T06:17:33Z"
        },
        {
          "tag": "v0.9.7",
          "kind": "patch",
          "published_at": "2026-05-07T06:16:47Z"
        },
        {
          "tag": "mac-v0.9.6",
          "kind": "other",
          "published_at": "2026-05-03T19:17:51Z"
        },
        {
          "tag": "v0.9.6",
          "kind": "patch",
          "published_at": "2026-05-03T19:17:24Z"
        },
        {
          "tag": "mac-v0.9.5",
          "kind": "other",
          "published_at": "2026-05-02T17:18:03Z"
        },
        {
          "tag": "v0.9.5",
          "kind": "patch",
          "published_at": "2026-05-01T15:17:07Z"
        },
        {
          "tag": "mac-v0.9.4",
          "kind": "other",
          "published_at": "2026-04-30T16:25:46Z"
        },
        {
          "tag": "mac-v0.9.3",
          "kind": "other",
          "published_at": "2026-04-28T03:22:36Z"
        },
        {
          "tag": "mac-v0.9.0",
          "kind": "other",
          "published_at": "2026-04-25T00:01:08Z"
        },
        {
          "tag": "mac-v0.8.9",
          "kind": "other",
          "published_at": "2026-04-24T11:50:48Z"
        },
        {
          "tag": "mac-v0.8.8",
          "kind": "other",
          "published_at": "2026-04-22T20:01:32Z"
        },
        {
          "tag": "mac-v0.8.7",
          "kind": "other",
          "published_at": "2026-04-21T20:46:47Z"
        },
        {
          "tag": "mac-v0.8.6",
          "kind": "other",
          "published_at": "2026-04-21T14:45:38Z"
        },
        {
          "tag": "mac-v0.8.5",
          "kind": "other",
          "published_at": "2026-04-21T12:29:40Z"
        },
        {
          "tag": "mac-v0.8.4",
          "kind": "other",
          "published_at": "2026-04-21T01:36:38Z"
        },
        {
          "tag": "mac-v0.8.2",
          "kind": "other",
          "published_at": "2026-04-19T23:34:55Z"
        },
        {
          "tag": "mac-v0.8.1",
          "kind": "other",
          "published_at": "2026-04-19T20:01:12Z"
        },
        {
          "tag": "mac-v0.8.0",
          "kind": "other",
          "published_at": "2026-04-19T16:57:32Z"
        },
        {
          "tag": "v0.7.4",
          "kind": "patch",
          "published_at": "2026-04-19T10:40:32Z"
        },
        {
          "tag": "mac-v0.7.5",
          "kind": "other",
          "published_at": "2026-04-18T20:42:39Z"
        },
        {
          "tag": "mac-v0.7.4",
          "kind": "other",
          "published_at": "2026-04-18T20:14:11Z"
        },
        {
          "tag": "mac-v0.7.3",
          "kind": "other",
          "published_at": "2026-04-18T14:24:32Z"
        },
        {
          "tag": "mac-v0.7.2",
          "kind": "other",
          "published_at": "2026-04-18T00:19:47Z"
        },
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-04-17T12:10:55Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-04-16T23:34:10Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "6e3c57a9ff95a624f1d9affa7384d32a67f359b7",
          "body": null,
          "is_bot": false,
          "headline": "feat(cli): add interactive sessions browser (#793)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-21T11:03:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2eb47181228e19d1e861c35d241179e4d322af44",
          "body": null,
          "is_bot": false,
          "headline": "sessions: correlate cross-provider work with pull requests (#792)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-21T09:50:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e1caae33ac754b50566cae1b55f1c0e76d297bb",
          "body": "* sessions: fold subagent runs into PR attribution\n\nSidechain (subagent) session cost never reached the by-PR view, so a\nsession orchestrated on one model with subagent lanes on another showed\nonly the parent model on every PR row. Fold each sidechain's cost, calls,\nmodels, and categories into the p\n[…]\nverified. Fresh real-data drives (lifetime, single-day,\nand a NON-CONTIGUOUS day selection) re-prove no-double-count and\nreconciliation to the cent.\n\n---------\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "sessions: fold subagent runs into PR attribution (#791)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-21T03:47:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "45e93129f21c2e60bf3bd6cea4b71fc5923aa733",
          "body": "* sessions: attribute PR spend per turn instead of per session\n\nThe by-PR surfaces attributed a session's full cost to every PR it\nreferenced, so one orchestration session that touched many PRs rendered\nidentical full-session rows. Capture per-turn PR references during\ntranscript parsing and attribu\n[…]\n.\nThe expansion reset keyed only on the row URL set, so a period switch that\nreturned the same PRs kept a stale expansion open over changed numbers.\n\n---------\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "sessions: attribute PR spend per turn instead of per session (#790)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-21T03:44:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a9d4471d17c1830830ca945801898553f4c1121d",
          "body": "…ab (#788)\n\nPart 1 (src): expose two add-only, optional aggregations on the menubar\npayload's `current`, computed on the unscoped all-provider path from the\nsurviving-session parse (carried history cannot contribute, as expected).\n\n- current.pullRequests: aggregateByPr rows (top 20 by cost) plus the\n[…]\nsion counts) and the Pull requests component tests\n(table, external link, footnote, both empty states). Nav-reflow assertions in\nSidebar and App tests updated.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "payload: spend by pull request and by branch; desktop Pull requests t…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T21:36:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "475ff502e05f4289e933efa340b7e7021166cdbb",
          "body": "* Resolve Fireworks-hosted models to friendly display names\n\nFireworks fleet models arrive as `accounts/fireworks/models/<slug>` and\nwere leaking the raw path/slug in reports and the dashboard (e.g.\n`fireworks/mode…`, `glm-5p2`). getShortModelName's path fallback now takes\nthe last path segment and \n[…]\n into a pure, tested aggregateModelTotals() keyed by the\nresolved display name so the rows merge into one. This also aligns the panel\nwith modelEfficiency, which is already keyed by getShortModelName.",
          "is_bot": false,
          "headline": "models: resolve Fireworks-hosted models to friendly display names (#787)",
          "author_name": "Rick Culpepper",
          "author_login": "therickfactr",
          "committed_at": "2026-07-20T21:22:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "15a381b7d2d6dc04109bfaa8dd43f735bfcf1ebb",
          "body": "…789)\n\nThe #782 titles threading added title to the sessions JSON row shape but\nmissed this emitter test's key list; caught by the first full-suite run\nsince the merge.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "test: cli-emitters expects the title field sessions rows now carry (#…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T21:18:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8097052f679877b05c86d60712f3a1d7eafd3048",
          "body": "Compact one-row strip: correction rate with count, median time to first\nedit, and the top reworked file, plus one coaching note derived locally\nwith the same thresholds and copy as the CLI's workflow-insights\nbuildCoachingNotes. Decodes two new optional payload blocks\n(current.workflow and current.t\n[…]\nyload, so it follows the selected agent tab automatically.\n\nAdds unit tests for the duration formatter, note selection, model\nderivation, and payload decoding.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "menubar: add Workflow strip after the Models section (#785)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T20:55:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4d2bcbac7f5018b5a41887e0d398ea8b3b017eb6",
          "body": "…w (#784)\n\nTwo Phase-1 desktop additions over the renderer's existing card grammar.\n\nOverview workflow card: a panel below the daily chart with two stat tiles\n(correction rate with count, median time to first edit) plus a top-rework\nline and one coaching caption. The caption is derived locally with \n[…]\n untitled rows keep the project as the\nheadline (unchanged). Title is also searchable and added as an optional\nSessionRow field so older CLIs render unchanged.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "app: Workflow card on Overview and session titles in the Sessions vie…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T20:55:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9676f53d0cc785469426580652ac04ec46752249",
          "body": "…#782)\n\nSame threading as prLinks: the cache-level title (last ai-title entry)\nrides onto SessionSummary in both the Claude and generic provider\npipelines, and the sessions table gains a TITLE column (truncated at 38\nchars, empty when a transcript never produced one, as subagent\ntranscripts typically do not). JSON rows carry it verbatim. Groundwork\nfor titles in the context browser, desktop Sessions view, and payload.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "sessions: thread captured titles onto SessionSummary and the report (…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T20:01:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "739d0b76420ceb2575b278a235595be36db86841",
          "body": "… (#781)\n\nThe desktop app's Life tab failed with 'invalid period': the renderer\nand CLI both learned lifetime, but the electron IPC allowlist between\nthem did not. The menubar's period row also overflowed once Lifetime\njoined it; labels compact to the desktop strip's forms (7D, 30D, 6M,\nLife). Perio\n[…]\ne label\nchange is safe. Follow-up worth doing: derive the IPC allowlist from\nthe renderer's period module so a new period cannot miss one layer of\nthree again.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "fix: Lifetime period end to end in the desktop app and menubar labels…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T19:56:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8676f0da01255bb4f94e8e3bacaeedad32e22f8b",
          "body": "The rich session capture (#758) stores every PR URL a transcript\nreferences, but nothing displayed it. codeburn sessions --by-pr now\ngroups spend by pull request: cost, savings, sessions, calls, and the\ndate span per PR, sorted by cost, with a GitHub-shortened label and\njson output. Attribution is b\n[…]\nrows are never mistaken for a\ngrand total. prLinks now ride from the cached file onto SessionSummary\nin both the Claude pipeline and the generic provider path.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "sessions: spend per pull request via --by-pr (#780)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T19:28:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "00160275cd4d73f9eef359853a52556be7f5fd19",
          "body": "The Update badge previously replaced only the menubar (via the CLI's\nmenubar --force installer), and the CLI banner only copied the update\ncommand to the clipboard. One click now runs the whole sequence: update\nthe CLI in place through the package manager it was installed with\n(brew upgrade, or npm \n[…]\npears for CLI-only updates, and the banner's primary action is Update\nnow with the copyable command kept as secondary. Six resolution tests,\nmutation-verified.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "menubar: one-click update for the CLI and the app together (#778)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T17:17:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ae1d1c026b10069d31b36e1b2aad8216541e8813",
          "body": "The update Download button opened the GitHub release page; it now\ndownloads the right artifact for the running platform directly: arm64\nor x64 dmg on macOS (preload newly exposes process.arch), the Setup exe\non Windows. Linux keeps the release page since it ships three formats\nand the user picks. Unknown platforms and preloads without arch fall\nback to the page. URL mapping is unit-tested per platform.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "app: Download button direct-downloads the update asset (#777)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T17:02:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "101574a05fbea06773b5b99b9d32f3152a34bbb6",
          "body": "Co-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "docs: present 0.9.19 directly in the changelog (#776)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T16:45:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d96149b60f5bad1aac5f46ab09a14c0ecd40c5c8",
          "body": "The 1ms-heartbeat stress test fails under saturated full-suite runs when\nfilesystem starvation makes guard operations report unavailable, which\nthe fence correctly treats as fail-closed. Isolation runs, the process\ntests, and mutation checks all hold. Retries go 2 to 5 and iterations\n300 to 120: a m\n[…]\ny attempt (six percent per\nverify compounds to a per-attempt pass chance under a tenth of a\npercent), while transient starvation now has five chances to clear.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "test: widen the fence stress test's flake shield (#775)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T16:39:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af291ae6216af08c2cf8890e79d370f8297187e2",
          "body": "0.9.18 was packaged from the pre-fix commit (364eed4) before the final\nnine commits landed; npm versions are immutable, so the corrected\nrelease ships as 0.9.19 everywhere. The changelog entry carries over\nwith a supersede note.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "release: 0.9.19 (#774)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T16:35:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10ac583fd4b7ea46aa4e7fc824dacadd45f322c8",
          "body": "….9.18 (#773)\n\nThe changelog entry predates the final merges; it now covers the\nno-data rendering, the cross-process refresh gate, the straddle guard,\nthe turn-attribution and insights accuracy fixes, the 10-year retention,\nand the small cache/currency fixes. README download badges move from\n0.9.16 to 0.9.18.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "docs: complete 0.9.18 notes for the post-cut train, point README at 0…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T16:29:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f5fe6c5ec8464ffdb70413e198534a3cf402438",
          "body": "Under a saturated full-suite run, fd/CPU starvation can make the\ntakeover-guard fs ops report unavailable, which the fence correctly\ntreats as fail-closed; the 1ms-heartbeat stress test misread that as the\nserialization race. Retries rescue environmental noise only: the real\nrace fails roughly 6 percent per verify across 300 verifies, so a\nmutated build cannot pass any attempt.",
          "is_bot": false,
          "headline": "test: retry-shield the fence-heartbeat stress test against fs starvation",
          "author_name": "reviewer",
          "author_login": null,
          "committed_at": "2026-07-20T16:25:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be748c81aab1821ace0688d788982fe4746e775e",
          "body": "…ge id (#772)\n\nThe incremental-append path groups the appended region before the file's\nown cached keys join the dedup set, so a streamed assistant id restated\nacross the append boundary counted twice, and the boundary merge could\nsplice it into the wrong turn (reproduced on real image-heavy session\n[…]\nout 0.3 percent of real files) and bounded to one file per\nrefresh. Regression test uses the cold-reparse oracle; mutation-verified\nagainst the unguarded code.\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "parser: full re-parse when an appended region restates a cached messa…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T16:22:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e27fe36bd5173587c7e8ac57fded4559ea8d8642",
          "body": "…ransaction (#743)\n\n* cache: strict cross-process gate for the warm session-cache refresh transaction (#645)\n\n* lock: serialize the fence against the owner's own heartbeat\n\nverifyStillOwner and the heartbeat tick both take the takeover guard;\nwithout in-process serialization the fence could observe \n[…]\n at heartbeatMs 1, mutation-\nverified against the unserialized code.\n\n---------\n\nCo-authored-by: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com>\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "cache: strict cross-process gate for the warm session-cache refresh t…",
          "author_name": "Aditya Vikram Singh",
          "author_login": "avs-io",
          "committed_at": "2026-07-20T16:06:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17a23ead4059b1575f295b9ab15fa5b9f13026b8",
          "body": "…inflation (#762)\n\n* daily-cache: coverage-gated carry on re-derive + single-slice turn attribution\n\nP2: a tz-change re-derive no longer double-counts turns whose day bucket\nmoved across midnight — secondary slices are carried only outside the\nprovider's fresh coverage (floor widened by one day on t\n[…]\ntly one slice\n(majority-calls provider, tie broken by first call), restoring\nslice-sums equal day-counts on fresh builds, with its regression tests.\n\n---------\n\nCo-authored-by: reviewer <review@local>",
          "is_bot": false,
          "headline": "daily-cache: fix tz-change double-count and multi-provider turn-stat …",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-20T15:57:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8158afb1be2464e3161ed8b415ad600cd8b4b30",
          "body": "The one cache module still hardcoding ~/.cache/codeburn; every other\ncache (session, daily, codex, pricing) honors the relocation override,\nso a user moving the cache dir kept getting this single file in the\ndefault location. Found by the pre-release functional sweep.",
          "is_bot": false,
          "headline": "currency: honor CODEBURN_CACHE_DIR for the exchange-rate cache (#766)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T15:28:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbd93fee51c4d155139f6113aeb6a130d1105d7d",
          "body": "* fix(app,dash): render pre-history days as no data, not a currency zero\n\nDays before the first recorded day in history.daily were painted as a real\n0.00/0 calls in the daily activity heatmap and the daily spend charts. That\nzero is unknown, not measured, so those cells and bars now read \"No data\nre\n[…]\never drop a real first-day bucket, and an\nall-zero series lands in the established empty state.\n\nStackedBars no-data columns expose their state via aria-label, not only\na title on a non-focusable div.",
          "is_bot": false,
          "headline": "app,dash: render pre-history days as no data, not a currency zero (#765)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T15:03:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b30818138ea2bda3d3b5dee813f3a3a41ee607b4",
          "body": "…(#764)\n\nThree review leftovers plus one inconsistency found while fixing them.\n\ncomputePace returns undefined for a non-finite usedFraction instead of\nletting NaN sail through the clamp into every pace field.\n\nDaily-cache retention goes from 730 days to 3650: the cache is the only\ndurable record of\n[…]\nper 730\ndense days).\n\nThe vercel-gateway dashboard-range test pins a relative day instead of\n2026-06-01, which would have started failing once the rolling 6-month\nwindow moved past it around December.",
          "is_bot": false,
          "headline": "prerelease: quota NaN guard, 10-year daily retention, test date bomb …",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T14:37:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "db8ef9b4666e844641732be31fe38aca6b4f40d3",
          "body": "…ce (#763)\n\nFive verified findings from the #756 review, each with a regression test:\n\nCorrections now count only follow-up prompts. The session-opening prompt\ncannot be correcting this assistant, however correction-shaped its task\ntext reads, and the revert pattern no longer matches ordinary 'rever\n[…]\nerage value now reaches the payload as null, never as a\nfabricated 100%.\n\nAlso shares the one-shot minimum-edit-turns threshold between\nworstOneShotCategory and the coaching gate so they cannot drift.",
          "is_bot": false,
          "headline": "insights: close the post-merge review findings on workflow intelligen…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T14:26:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "364eed44e80aa0ab9ffbcb8713f5e576eb044e22",
          "body": "chore: release 0.9.18",
          "is_bot": false,
          "headline": "Merge pull request #761 from getagentseal/chore/release-0.9.18",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T14:18:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8386df5f3c5d025b99b214d81071d875ad318176",
          "body": null,
          "is_bot": false,
          "headline": "chore: release 0.9.18",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T14:17:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76744124aba6fdd1df6493d4bd4a3a091e438682",
          "body": "fix(report): CLI totals read the durable daily cache, matching the menubar exactly",
          "is_bot": false,
          "headline": "Merge pull request #760 from getagentseal/fix/cli-durable-totals",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T14:14:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92843bc6470cb04a86d97601c64f109dd5e777af",
          "body": "fix(clients): display CLI values verbatim, align period windows, true Lifetime tab",
          "is_bot": false,
          "headline": "Merge pull request #759 from getagentseal/fix/client-math-parity",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T14:13:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dea61bad4e41d49c6f8c2df2a151715c1bf76e15",
          "body": "…nubar exactly",
          "is_bot": false,
          "headline": "fix(report): CLI totals read the durable daily cache, matching the me…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T13:33:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6eb8797efab2fe1499e4a4b0cdbf9e04415f3fcc",
          "body": "…ows across app/dash/menubar",
          "is_bot": false,
          "headline": "fix(clients): display CLI-computed values verbatim, align period wind…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T13:26:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba56ad72f58cba0368f42764c10301f4f35f7b44",
          "body": "feat(capture): parse-time capture of branch, LOC deltas, interruptions, titles, PR links",
          "is_bot": false,
          "headline": "Merge pull request #758 from getagentseal/feat/rich-session-capture",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T13:03:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ced2ed47f8afc590533a3d6aca6df8ca9b81745",
          "body": "…s, titles, PR links",
          "is_bot": false,
          "headline": "feat(capture): parse-time capture of branch, LOC deltas, interruption…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T12:56:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f32c00d2b17bee2e0017ece8997cc2ef57c7d8f6",
          "body": "…t, file churn, coverage) + dash wire-up (#756)\n\n* feat(insights): workflow intelligence (corrections, time-to-first-edit, file churn, coverage) + dash wire-up\n\n* menubar: propagate workflow-intelligence fields onto the cache-backed headline\n\nThe carry-forward headline (#755) serves totals from the \n[…]\nated, so they silently defaulted on the all-provider\npath (pricingCoverage rendered a dishonest 1.0). Propagate them like the\nother scan-only fields and pin it with a carried-headline regression\ntest.",
          "is_bot": false,
          "headline": "feat(insights): workflow intelligence (corrections, time-to-first-edi…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T12:47:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e99ee4bf37ffbe1b0a3e8eada81bdf8dafe59ce1",
          "body": "Claude Code deletes session transcripts after cleanupPeriodDays (default\n30) at startup. Daily totals survive in the daily cache, but per-session\ndetail older than the cutoff is unrecoverable, and most users learn this\nonly after losing months of history. Doctor now reports the effective\nretention and, below one year, warns with the exact settings.json edit\nthat preserves transcripts.",
          "is_bot": false,
          "headline": "doctor: surface Claude Code transcript retention (#757)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T12:25:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "380be66b4fb7a19a57381fa3accb502966e74180",
          "body": "Re-apply the CLI/dashboard Lifetime split from #391/#416 on current main.\n\n- add lifetime as a first-class period (all stays last 6 months)\n- wire period through cli-date, dashboard key 6, and CLI commands\n- refresh cli-date and cli-json-daily regression coverage\n\nPart of #389. Supersedes #416.",
          "is_bot": false,
          "headline": "feat(cli): add lifetime period for CLI and dashboard (#753)",
          "author_name": "Monish Khandelwal",
          "author_login": "0monish",
          "committed_at": "2026-07-20T12:24:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44df54774845458019a23f45e1acfc6c90c8292d",
          "body": "…ones (#689)\n\n* test(electron): isolate dev-resolution fixtures via CODEBURN_DEV_REPO_ROOT\n\nRework of the #681 fix per review: instead of stubbing the real repo\ndist/cli.js with snapshot-restore, the Vite-dev resolution branch gains a\nCODEBURN_DEV_REPO_ROOT override (matching the CODEBURN_PATH_DIRS \n[…]\n whenever a build had\nrun, so the toBeNull() assertion depended on the absence of a gitignored\nartifact. The override-set tests already prove the new branch and the\nnon-Vite test covers the null path.",
          "is_bot": false,
          "headline": "test(electron): make dev-resolution tests self-sufficient on fresh cl…",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-20T12:23:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bcef34f08174a4bc75db318ecf2d2f38e6b4b1f8",
          "body": "…tion, run-out ETA (#726) (#728)\n\nCo-authored-by: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com>",
          "is_bot": false,
          "headline": "menubar: linear pace on Codex quota windows — deficit/reserve, projec…",
          "author_name": "Aditya Vikram Singh",
          "author_login": "avs-io",
          "committed_at": "2026-07-20T12:21:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8435073eef59e6f6d7d126483377cd921e17153",
          "body": "…d linear pace (#725 Part 1) (#740)\n\nCo-authored-by: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com>",
          "is_bot": false,
          "headline": "quota: provider-agnostic window model with provenance, merge rule, an…",
          "author_name": "Aditya Vikram Singh",
          "author_login": "avs-io",
          "committed_at": "2026-07-20T12:21:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92b2b5ef392daba9d03e11dfbdaddd86eabe0c58",
          "body": "Reuse one concrete six-month scan for interactive history and selected-period totals. This restores network-backed providers, removes concurrent refresh scans, and keeps non-interactive reports scoped to their requested period.",
          "is_bot": false,
          "headline": "fix(dashboard): Bound Daily Activity scans (#727)",
          "author_name": "ihearttokyo",
          "author_login": "ihearttokyo",
          "committed_at": "2026-07-20T12:21:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f2739e130262ed1bba0c8f6d34c6ae127a2d0ab",
          "body": "…v14) (#755)\n\n* daily-cache: never lose history the sources can no longer re-derive (v14)\n\nSession files are ephemeral (Claude Code deletes transcripts after ~30\ndays), so a cached day whose sources are gone exists nowhere else. Every\ninvalidation path (schema bump, savings-config change, timezone c\n[…]\nuites 71/71 green, tsc clean. Valid-input behavior unchanged except the\nprototype-key reclassification above.\n\n---------\n\nCo-authored-by: ozymandiashh <234437643+ozymandiashh@users.noreply.github.com>",
          "is_bot": false,
          "headline": "daily-cache: never lose history the sources can no longer re-derive (…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T12:21:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2312fd2eb0f4231ed3735595c28dee11f5a1e883",
          "body": "fix(yield): case-insensitive canonical repo grouping via realpathSync.native",
          "is_bot": false,
          "headline": "Merge pull request #751 from ozymandiashh/pr/714-delta",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-20T00:25:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49b377616bfd8507157f1020360f36293f13ac04",
          "body": "feat(kimicode): Kimi Code CLI provider, parse ~/.kimi-code wire sessions",
          "is_bot": false,
          "headline": "Merge pull request #750 from ozymandiashh/pr/747-kimicode",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-19T23:27:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3472885629c41725b40c19c0780ecce148b067bf",
          "body": "perf(parser): single-pass field extraction in the large-line JSONL scanner",
          "is_bot": false,
          "headline": "Merge pull request #752 from getagentseal/perf/single-pass-scanner",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-19T08:24:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56ea38917f763cd12a0acb0a42a56f34bd36138c",
          "body": "…anner",
          "is_bot": false,
          "headline": "perf(parser): single-pass field extraction in the large-line JSONL sc…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-19T00:23:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c9871b2f2244a8b5d97a997af1688e4153df04e",
          "body": "….native\n\nFollow-up to #719, closing the two deltas flagged in the #714 discussion:\n\n- fs.realpathSync preserves the caller's path casing on case-insensitive\n  filesystems (macOS APFS, Windows), so the same repo reached through\n  differently cased paths produced distinct canonical keys and split int\n[…]\n accepted residual: a main repo moved on disk after\n  'git worktree add' leaves git's linked-worktree metadata stale, so its\n  worktrees may not unify; that is git-state staleness, not a grouping bug.",
          "is_bot": false,
          "headline": "fix(yield): case-insensitive canonical repo grouping via realpathSync…",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-19T00:12:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "023259584731c6b8da787981ef9a83742d07501b",
          "body": "…double count",
          "is_bot": false,
          "headline": "docs(kimicode): subagent accounting verified at kimi-code source, no …",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-19T00:11:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b95aef7e56b6c4efb8c8b565038b02f0ff6fabc",
          "body": "…ons (#747)\n\nAdds a provider for Kimi Code CLI (MoonshotAI/kimi-code, the successor of\nkimi-cli), reading ~/.kimi-code/sessions/wd_*/session_*/: state.json for\nsession metadata and per-agent agents/<id>/wire.jsonl event streams.\n\n- Usage from usage.record events: inputOther->input, output->output,\n \n[…]\ns\n  so a failed turn cannot bleed its tools into the next row.\n- KIMI_CODE_HOME override, eager registration, PROVIDER_ENV_VARS and\n  PROVIDER_PARSE_VERSIONS entries, probeRoots for doctor, docs page.",
          "is_bot": false,
          "headline": "feat(kimicode): Kimi Code CLI provider, parse ~/.kimi-code wire sessi…",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-18T23:52:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "916119da2197373edd2fdee86ca8fd69bbaee5cc",
          "body": "perf(parser): incremental parse of append-grown session files",
          "is_bot": false,
          "headline": "Merge pull request #749 from getagentseal/perf/incremental-append-parse",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T23:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8892553d3a464cdb64badf035d7990b389ce2201",
          "body": "perf(app): spawn concurrency cap, background prefetch, Today default",
          "is_bot": false,
          "headline": "Merge pull request #748 from getagentseal/fix/app-spawn-storm",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T23:36:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f26bf69f886baeb29bdb36d1c4e808852c90d6cf",
          "body": "…efault to today",
          "is_bot": false,
          "headline": "perf(app): cap CLI spawn concurrency, background-priority prefetch, d…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T23:28:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8326aee4a6225c8ac37753f81a1e2a8841359e1a",
          "body": "…tead of byte 0",
          "is_bot": false,
          "headline": "perf(parser): parse appended session files from the cached offset ins…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T23:26:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d00b33b13d3a3c5ea05b84044bb3da3550ca4fdc",
          "body": "fix(telemetry): cap cli_error per kind per day, flush app_close on quit",
          "is_bot": false,
          "headline": "Merge pull request #746 from ozymandiashh/pr/741-robustness",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T21:32:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a8a1d0fa4bb4f10649a4600306b7a3852325491",
          "body": "fix(classifier): attribute skills to skillBreakdown regardless of turn category",
          "is_bot": false,
          "headline": "Merge pull request #745 from ozymandiashh/pr/741-skills",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T21:32:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db39157ea6cf51d703183e29d1a3befc4d02d5fd",
          "body": "Two robustness fixes from the #741 telemetry audit:\n\n- cli_error had no rate limit: one install emitted 804 timeout events in a\n  single day (56% of all events ever received). track() now caps cli_error\n  at 20 per kind per calendar day. The day and per-kind counts persist in\n  the telemetry state f\n[…]\na synchronous failure can neither\n  skip the flush nor wedge quitting, and a full queue evicts its oldest\n  event rather than dropping app_close. Disabled or not-onboarded telemetry\n  quits instantly.",
          "is_bot": false,
          "headline": "fix(telemetry): cap cli_error per kind per day, flush app_close on quit",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-18T20:06:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "906cb2d550165a229c556d2617caa8a76ce89eec",
          "body": "feat(quickdesk): Amazon Quick Desktop provider (~/.quickwork)",
          "is_bot": false,
          "headline": "Merge pull request #735 from ozymandiashh/feat/quickdesk-provider",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T19:57:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56e836fa9e9c28417fa7c7857e3f9533b7e52844",
          "body": "…n category\n\nSkill attribution was gated on the turn classifying as 'general', but\nclassifyByToolPattern checks hasSkill last, so any turn invoking the Skill\ntool alongside Read/Bash/Edit/MCP got a real category and its skill was\nsilently dropped. Skill turns virtually always carry other tools, whic\n[…]\ntegory is now set for any turn with Skill tool_use; category assignment\nis untouched. The claude parse version is bumped so cached session summaries\n(which lack skill attribution) re-parse on upgrade.",
          "is_bot": false,
          "headline": "fix(classifier): attribute skills to skillBreakdown regardless of tur…",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-18T19:54:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1850276bd1e52c19e573951a580014f0be43aced",
          "body": "Per-provider usage capture, placeholder guard, path-id display fallback",
          "is_bot": false,
          "headline": "Merge pull request #742 from getagentseal/fix/usage-snapshot-providers",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T11:41:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b71ec34a21d98ee6bc2c6898087323ec8852a43a",
          "body": "… display fallback",
          "is_bot": false,
          "headline": "fix(usage): per-provider snapshot capture, placeholder guard, path-id…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-18T10:37:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d5f745b5b1ea56494b97eda8492717dfbe6e42b",
          "body": "docs: desktop release flow + Linux build targets",
          "is_bot": false,
          "headline": "Merge pull request #739 from getagentseal/docs/desktop-release-flow",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T22:09:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8db765fd107b15dede99165da463d864383d97d",
          "body": "RELEASING.md: the desktop app is released manually under desktop-v<version>\ntags (build on macOS, gh release upload --clobber); no CI yet.\n\nDISTRIBUTION.md: document building deb/rpm and both arches from a macOS host,\nand that the rpm target needs 'brew install rpm' (rpmbuild) — it emits\ncodeburn-desktop-<version>.x86_64.rpm, the name the website links.",
          "is_bot": false,
          "headline": "docs: desktop release flow + widened Linux build targets",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T22:00:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dafe19e8152ad5c7e9a173b1fd79fea5ae14d98a",
          "body": "fix: clean build stamp + splash without hash + About update check",
          "is_bot": false,
          "headline": "Merge pull request #738 from getagentseal/fix/stamp-and-update-button",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T21:30:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a76626d21b8260cdffc0f22f85ee3a90fca0c23",
          "body": "…dates\n\n- build stamp ignores the pricing-snapshot files the build regenerates,\n  so a release checkout no longer shows a false -dirty\n- splash shows just the flame, CodeBurn, and the version (dropped the\n  commit-hash line); the clean build id stays in About only\n- About 'Check for updates' uses the in-app checker and reports inline\n  ('You're on the latest' / 'Update available: X · Download') instead\n  of blindly opening the releases page\n\n392/392.",
          "is_bot": false,
          "headline": "fix(app): clean build stamp, splash without hash, About checks for up…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T21:30:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fdace7292dc6df91b34a88dace092edc9c31f6c",
          "body": "brand: restore binary 0101 flame across all surfaces",
          "is_bot": false,
          "headline": "Merge pull request #737 from getagentseal/brand/binary-restore",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T21:16:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69ab1fc96c459a604d8ca64fefa952368438ca07",
          "body": "feat: telemetry captures model x purpose, MCP servers, skills",
          "is_bot": false,
          "headline": "Merge pull request #736 from getagentseal/feat/telemetry-usage-detail",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T21:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6c475b6571b6f108221908af066f267a191b06b",
          "body": "… skills\n\nThe once-daily usage_snapshot now includes each top model's primary\ntask category (which model for what purpose, one cheap by-model call\nper day), plus MCP servers and skills used (names + coarse usage\nbuckets). Names + buckets only, no prompts/paths/dollars; graceful\ndegradation if the by-model fetch fails. /telemetry page updated.",
          "is_bot": false,
          "headline": "feat(app): usage telemetry captures model x purpose, MCP servers, and…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T21:15:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b8d8eb7b1c5521114b0c5fa6072d67d6172cd92",
          "body": "Per owner decision: the binary 'burning code' flame is the mark\neverywhere, matching the app's identity as a code-cost tool. Desktop\napp icon + FlameMark (splash/sidebar/About/dock), menubar dock icon,\nbrand logo, and local dashboard all use the binary flame.",
          "is_bot": false,
          "headline": "brand: restore binary 0101 flame across all surfaces",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T21:14:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdb1475251a19c79ae93cb1777b2f7274af11fbb",
          "body": "…ssions and metrics (#707)\n\nAdds an eager provider for Amazon Quick Desktop (aws.amazon.com/quick/desktop),\nwhich stores local data under ~/.quickwork. Usage source of truth is the\nper-day EMF metrics JSONL (Model, InputTokens, OutputTokens, CostUSD,\nsession_id); real CostUSD passes through the cach\n[…]\nUICKWORK_HOME; schema-tolerant (sqlite_master and PRAGMA introspection,\nper-line JSONL error isolation). The on-disk schema is reverse-engineered and\ndocumented as such in docs/providers/quickdesk.md.",
          "is_bot": false,
          "headline": "feat(quickdesk): Amazon Quick Desktop provider, parse ~/.quickwork se…",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-17T21:02:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2a01273b7a8801705293d7b2f5871cce2a9c950f",
          "body": "chore(app): desktop 0.9.17",
          "is_bot": false,
          "headline": "Merge pull request #734 from getagentseal/chore/desktop-0.9.17",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:56:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7946b4f369e79090fc30f41d1acd9022f5ec7742",
          "body": "Patch release: Windows bundled-CLI fix (was not-found on 100% of\nWindows), enriched cli_error telemetry, and the unified solid-flame\nbrand. CLI/menubar stay 0.9.16 (no changes needing an npm/menubar\nrepublish; the desktop bundles current main's CLI).",
          "is_bot": false,
          "headline": "chore(app): desktop 0.9.17",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:55:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "75de4ef07cedabc0e5d6ef2fb0612262193280ce",
          "body": "…elemetry\n\nfix: resolve bundled CLI on Windows (100% not-found) + enrich cli_error telemetry",
          "is_bot": false,
          "headline": "Merge pull request #733 from getagentseal/fix/windows-cli-and-error-t…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "707d621d7ab147940c000901fafa7e9a24e4d322",
          "body": "path.startsWith('/') POSIX guard rejected the Windows bundled-CLI path\n(C:\\...\\launch.js), so 100% of Windows installs got not-found\n(confirmed in telemetry: 84 events, all win32/x64). Use path.isAbsolute\neverywhere. cli_error now carries {cmd, kind, detail?} for\nself-diagnosing errors, never paths/args/stderr.",
          "is_bot": false,
          "headline": "fix(app): resolve bundled CLI on Windows + enrich cli_error telemetry",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:51:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2ff8a72f69d53989c6e73dc3e17a0778e1987b4",
          "body": "brand: original solid flame across all surfaces",
          "is_bot": false,
          "headline": "Merge pull request #732 from getagentseal/brand/solid-flame-all",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:34:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "862206ea81f8e87df5ff463caabbec207923a15b",
          "body": "Retires the binary-digit flame (which muddied below ~256px) in favor\nof the original solid flame everywhere: desktop app icon + FlameMark\n(splash, sidebar, About, dock), menubar dock icon, brand logo. One\nconsistent mark that stays crisp at every size, matching the website\nfavicon and local dashboard.",
          "is_bot": false,
          "headline": "brand: original solid flame across all surfaces",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:33:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9df2b81deda838f1ad23145a143d2bbcf074461d",
          "body": "brand: solid flame for the local dashboard mark",
          "is_bot": false,
          "headline": "Merge pull request #731 from getagentseal/brand/dash-solid-flame",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:29:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8af30ea3235b45eea904962f6ade506760090e29",
          "body": "The dashboard header logo and favicon render at 24px where the binary\nflame muddies; use the solid flame like the site favicon. Menubar dock\nicon keeps the binary squircle (large-icon context).",
          "is_bot": false,
          "headline": "brand: local dashboard uses the solid flame mark (crisp at 24px)",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:28:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15cd9af1b8aae367239a7fbb1ad0faeb5a180ddf",
          "body": "brand: binary-flame logo for local dashboard + menubar icon",
          "is_bot": false,
          "headline": "Merge pull request #730 from getagentseal/brand/binary-flame-logos",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:11:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03f597a334aeac3480b6f98146f8921ae49d15e2",
          "body": "Local web dashboard favicon + header (dash/public/codeburn-logo.png)\nand the menubar dock/app-icon source (assets/menubar-logo.png,\nassets/logo.png) now use the binary-flame mark, matching the desktop\napp and website. The menu-bar status item stays monochrome-template by\nApple convention; the new dock icon lands on the next menubar release.",
          "is_bot": false,
          "headline": "brand: binary-flame logo for local dashboard and menubar app icon",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T20:10:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb513d3f68e5d24517685610d2db1f74aedef4d5",
          "body": "…#729)\n\nThe AppImage-only Linux build hit users with a no-application-installed\nerror on double-click, because AppImages do not self-register and need\nchmod plus libfuse2 on newer distros. Add deb and rpm electron-builder\ntargets so Linux users get a native install that lands in the app menu\nwith no\n[…]\n.\n\nREADME hero grid now lists Debian/.deb, Fedora/.rpm, and AppImage\nalongside the macOS and Windows buttons, and the desktop release notes\nexplain the deb/rpm path plus the AppImage FUSE requirement.",
          "is_bot": false,
          "headline": "desktop: ship .deb and .rpm for Linux, surface all download targets (…",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T19:53:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "688467e86fab84987f266f468da9ad67f5b16b88",
          "body": "… the Plan tab (#723) (#724)\n\nCo-authored-by: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com>",
          "is_bot": false,
          "headline": "menubar: surface Codex limit-reset credits (count and next expiry) in…",
          "author_name": "Aditya Vikram Singh",
          "author_login": "avs-io",
          "committed_at": "2026-07-17T12:58:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca46845e2ba1bc1366773ea95c5cfbcfc5f812ee",
          "body": "Desktop: update-available notifications",
          "is_bot": false,
          "headline": "Merge pull request #722 from getagentseal/feat/update-check",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T11:58:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fc9e303b919c02c0694e437211bd9b1f7e078e3",
          "body": "Checks the GitHub releases for newer desktop-v tags once per launch\nand every 24h (15s timeout, no identifying headers, offline = silent\nretry). A dismissible banner and a Settings About row surface the\nnewer version and link the release page; dismissal persists per\nversion so each release nags at most once. No auto-install: unsigned\nbuilds cannot, by platform constraint; the checker only notifies.\n\nApp 364/364 (+24), typechecks + build green.",
          "is_bot": false,
          "headline": "feat(app): update-available notifications",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T11:58:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cbc96a5decd34dbcce285bddbee964d36dd4c2e",
          "body": "Bump the desktop app version and point the README download badges at the\ndesktop-v0.9.16 release assets.",
          "is_bot": false,
          "headline": "release: desktop 0.9.16 (#721)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T02:34:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c58a705b133f600810219381d2e8947e8d4bf968",
          "body": "Bump the version and refresh the bundled LiteLLM pricing snapshots.\n\nSince 0.9.15, roughly sixty merged changes: the /advisor escalation\nbilling and unified large-line scanners for Claude, Copilot CLI\nsession.shutdown billing and skill extraction, the CodeWhale provider,\nkiro v2 credit pricing, Open\n[…]\nREADME.\n\nEvery merged PR was re-verified against this exact tree before the bump:\nfull JS suite (3527 tests), Swift suite (97), release build smoked, and\neight area audits with live functional probes.",
          "is_bot": false,
          "headline": "release: 0.9.16 (#720)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T02:15:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b6bf233f4601dbeae046c5a468a9ac4ab8e2afa4",
          "body": "…614) (#631)\n\n* feat(optimize): mcp-deferral-gaps finding family\n\nAdd three read-only detectors for MCP tool-def deferral coverage gaps:\n\n- mcp-deferral-off: sessions carrying MCP tool-def overhead with zero\n  ToolSearch invocations and no deferred_tools_delta inventory across\n  the window. Cause at\n[…]\nhe detector's parseVersion/\nversionPredates are exported and shared instead of adding a parallel\ncomparator.\n\nRefs getagentseal/codeburn#614\n\n---------\n\nCo-authored-by: AgentSeal <hello@agentseal.org>",
          "is_bot": false,
          "headline": "feat(act): defer-* plan kinds for native deferral config (part 2 of #…",
          "author_name": "AVSR Pavan Kumar",
          "author_login": "AVSRPA1KR",
          "committed_at": "2026-07-17T02:01:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "261d113b77f3872b7dbc42cdba0932a7306b99cf",
          "body": "yield: group commit attribution by canonical repo root (fixes #713)",
          "is_bot": false,
          "headline": "Merge pull request #719 from getagentseal/fix/yield-repo-grouping",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T01:59:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b95cb95ce484e0be71d7d90879f7db3a90fd143e",
          "body": "Sessions launched from monorepo subdirectories or separate worktrees\nof one repository formed independent attribution groups, each awarding\nthe same commit (double-counted productive sessions; the duplicate\nowner was not even flagged ambiguous). Groups now key on the realpath\nof git-common-dir, so a\n[…]\nhile distinct repos stay separate; ambiguity semantics\nunchanged, now correctly spanning the whole repo. rev-parse results\ncached per directory.\n\nFixes #713. Regression tests fail on the unfixed code.",
          "is_bot": false,
          "headline": "fix(yield): group commit attribution by canonical repo, not launch path",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T01:58:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3625b5906594dafebb6a27de3093257b5e2e0053",
          "body": "docs: add Homebrew tap bump to the release checklist",
          "is_bot": false,
          "headline": "Merge pull request #718 from getagentseal/docs/brew-release-step",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T01:47:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03d559e1efe65988d3fdd266e5d9a2cbc7bee83e",
          "body": "The tap sat six versions behind (issue #716) because nothing in the\nrelease process mentioned it. Step 5b documents the tarball sha bump.",
          "is_bot": false,
          "headline": "docs: Homebrew tap bump joins the CLI release checklist",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T01:46:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ebd8a9efee479c808b598afd49fca0d55ea453c",
          "body": "Energy: zero hidden-window work + instant currency changes",
          "is_bot": false,
          "headline": "Merge pull request #717 from getagentseal/fix/energy",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T01:42:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4bbcaaba788ef13b8ac65bf1d5e644c391fd8ce",
          "body": "Energy (field report: ~3x Chrome drain):\n- polls skip entirely while the window is hidden/minimized, with one\n  catch-up refresh on return when data is stale; visible-but-unfocused\n  keeps polling (second-monitor case)\n- all looping animations pause under html.page-hidden (the sidebar\n  flame flicke\n[…]\n can never overwrite the applied currency\n- USD default verified end to end\n\nMeasured: hidden window = 0 new CLI spawns over 5 cadences (was: full\npolling forever). App 340/340, build + package green.",
          "is_bot": false,
          "headline": "fix(app): zero background work when hidden; currency applies instantly",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T01:41:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b597449bede6fe20abc1cd7cbcfda028b7176887",
          "body": "* docs(readme): four-surface hero grid with per-surface install shortcuts\n\nReplace the single TUI screenshot and the scattered optimize, compare and\nold menubar shots with one 2x2 grid under the badges: Desktop, Web,\nTerminal, and macOS Menubar, each with its one-line way in (direct\ndownload badges \n[…]\nas overstuffed for a table cell; Opus 4.6 in the signals\ntable aged into Opus 4.8; the License section ran MIT and the affiliation\nnote into one paragraph; two stray em dashes and a double blank line.",
          "is_bot": false,
          "headline": "docs(readme): four-surface hero grid with install shortcuts (#715)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-17T00:07:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a55251ce8f3f6859deccab4f85af9bbb349260a6",
          "body": "…t follow-ups (#712)\n\nFollow-ups to #710, completing issue #708's second ask plus the two review\nnotes:\n\n- export: new records.csv with one row per call incl. subagentType and\n  model; sessions.csv gains both fields APPENDED after all legacy columns\n  so by-index consumers are unaffected; JSON field\n[…]\no longer merges into the main bucket (test-pinned across all formats)\n- README: note that the --min-cost 0.01 default can hide sub-cent agent\n  buckets; --min-cost 0 shows the complete agent inventory",
          "is_bot": false,
          "headline": "feat(export): subagentType and model on per-record exports; --by-agen…",
          "author_name": "ozymandiashh",
          "author_login": "ozymandiashh",
          "committed_at": "2026-07-16T23:35:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6e66d34582e2e36a10fb4890c7358a596a0f30dc",
          "body": "Orchestrator setups pin different agents to different models (planner on\nOpus, implementers on Sonnet, scouts on Haiku). The dashboard shows\n\"Skills & Agents\" and \"By Model\" as separate panels, so there was no way\nto see which agent drove which model's spend, or catch an agent that\nsilently switched\n[…]\nboth errors politely.\n\nExposing subagentType + per-record model on `codeburn export` (so users\ncan build custom crosses over the export) is a separate follow-up and is\nintentionally out of scope here.",
          "is_bot": false,
          "headline": "feat(models): agent x model cross-breakdown (--by-agent) (#710)",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-16T22:43:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "db289fab65105a50d18224b89628c2db55ceb7ea",
          "body": "Audit batch: prefetch storm, day-bucketing unification, warm-path efficiency",
          "is_bot": false,
          "headline": "Merge pull request #711 from getagentseal/fix/audit-batch",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-16T22:37:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae18b1fd915d0e2504194af1137936c6c54f51d1",
          "body": "…rm-path collapse\n\n- prefetch fires exactly once per provider per session; memo sized to\n  detected providers so base keys never evict (was: 12 full-history\n  parses every 30s forever from LRU thrash re-triggering the effect)\n- day-aggregator buckets whole turns by user-message timestamp,\n  matching\n[…]\nd)\n  instead of aborting; onboarding hints Full Disk Access\n- rateLimited quota copy render tests; export -f json emits valid\n  empty JSON when no data\n\nRoot 2023 (+4), app 327 (+3), typechecks clean.",
          "is_bot": false,
          "headline": "fix: audit batch — prefetch one-shot, turn-anchored day bucketing, wa…",
          "author_name": "iamtoruk",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-16T22:37:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "71a8e8e2502d335dee63d5421af8d29d87130560",
          "body": "…tility QoS for tick spawns (#703) (#704)\n\nCo-authored-by: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com>",
          "is_bot": false,
          "headline": "menubar: skip unchanged background refreshes, 120s AC idle cadence, u…",
          "author_name": "Aditya Vikram Singh",
          "author_login": "avs-io",
          "committed_at": "2026-07-16T22:11:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4689b5afa9947149d22fb5216d4f0e4c722c0957",
          "body": "…eshes (#702)\n\n* menubar: honor Retry-After on Claude quota 429s, back off failed refreshes (#701)\n\n* Fix operator precedence in claudeDue fallback\n\n---------\n\nCo-authored-by: Aditya Vikram Singh <247195684+avs-io@users.noreply.github.com>",
          "is_bot": false,
          "headline": "menubar: honor Retry-After on Claude quota 429s, back off failed refr…",
          "author_name": "Aditya Vikram Singh",
          "author_login": "avs-io",
          "committed_at": "2026-07-16T21:52:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "568476b02dea65c910975e9b6478cfd25897c9ba",
          "body": "fix: cold_start telemetry emits once per launch",
          "is_bot": false,
          "headline": "Merge pull request #706 from getagentseal/fix/telemetry-metrics",
          "author_name": "Resham Joshi",
          "author_login": "iamtoruk",
          "committed_at": "2026-07-16T21:27:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 48,
      "commits_last_year": 1118,
      "latest_release_at": "2026-07-20T17:22:34Z",
      "latest_release_tag": "mac-v0.9.19",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 15,
      "days_since_latest_release": 2,
      "mean_days_between_releases": 2.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "codeburn",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "claude-code",
            "cursor",
            "codex",
            "kimi",
            "devin",
            "ibm-bob",
            "opencode",
            "pi",
            "codebuff",
            "codewhale",
            "ai-coding",
            "token-usage",
            "cost-tracking",
            "observability",
            "developer-tools"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/codeburn",
          "is_deprecated": false,
          "latest_version": "0.9.19",
          "repository_url": "https://github.com/getagentseal/codeburn",
          "versions_count": 50,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 32310,
          "first_published_at": "2026-04-13T22:15:36.608000Z",
          "latest_published_at": "2026-07-20T16:36:51.984000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 2
        }
      ]
    },
    "popularity": {
      "forks": 691,
      "stars": 8858,
      "watchers": 27,
      "fork_history": {
        "days": [
          {
            "date": "2026-04-13",
            "count": 2
          },
          {
            "date": "2026-04-14",
            "count": 63
          },
          {
            "date": "2026-04-15",
            "count": 57
          },
          {
            "date": "2026-04-16",
            "count": 26
          },
          {
            "date": "2026-04-17",
            "count": 18
          },
          {
            "date": "2026-04-18",
            "count": 14
          },
          {
            "date": "2026-04-19",
            "count": 21
          },
          {
            "date": "2026-04-20",
            "count": 13
          },
          {
            "date": "2026-04-21",
            "count": 22
          },
          {
            "date": "2026-04-22",
            "count": 14
          },
          {
            "date": "2026-04-23",
            "count": 3
          },
          {
            "date": "2026-04-24",
            "count": 8
          },
          {
            "date": "2026-04-25",
            "count": 26
          },
          {
            "date": "2026-04-26",
            "count": 22
          },
          {
            "date": "2026-04-27",
            "count": 6
          },
          {
            "date": "2026-04-28",
            "count": 13
          },
          {
            "date": "2026-04-29",
            "count": 7
          },
          {
            "date": "2026-04-30",
            "count": 9
          },
          {
            "date": "2026-05-01",
            "count": 7
          },
          {
            "date": "2026-05-02",
            "count": 13
          },
          {
            "date": "2026-05-03",
            "count": 15
          },
          {
            "date": "2026-05-04",
            "count": 15
          },
          {
            "date": "2026-05-05",
            "count": 6
          },
          {
            "date": "2026-05-06",
            "count": 15
          },
          {
            "date": "2026-05-07",
            "count": 20
          },
          {
            "date": "2026-05-08",
            "count": 7
          },
          {
            "date": "2026-05-09",
            "count": 5
          },
          {
            "date": "2026-05-10",
            "count": 5
          },
          {
            "date": "2026-05-11",
            "count": 6
          },
          {
            "date": "2026-05-12",
            "count": 5
          },
          {
            "date": "2026-05-13",
            "count": 4
          },
          {
            "date": "2026-05-14",
            "count": 4
          },
          {
            "date": "2026-05-15",
            "count": 8
          },
          {
            "date": "2026-05-16",
            "count": 10
          },
          {
            "date": "2026-05-17",
            "count": 2
          },
          {
            "date": "2026-05-18",
            "count": 5
          },
          {
            "date": "2026-05-19",
            "count": 5
          },
          {
            "date": "2026-05-20",
            "count": 5
          },
          {
            "date": "2026-05-21",
            "count": 3
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 2
          },
          {
            "date": "2026-05-24",
            "count": 5
          },
          {
            "date": "2026-05-25",
            "count": 5
          },
          {
            "date": "2026-05-26",
            "count": 5
          },
          {
            "date": "2026-05-27",
            "count": 4
          },
          {
            "date": "2026-05-28",
            "count": 2
          },
          {
            "date": "2026-05-29",
            "count": 3
          },
          {
            "date": "2026-05-30",
            "count": 3
          },
          {
            "date": "2026-05-31",
            "count": 3
          },
          {
            "date": "2026-06-01",
            "count": 4
          },
          {
            "date": "2026-06-02",
            "count": 4
          },
          {
            "date": "2026-06-03",
            "count": 9
          },
          {
            "date": "2026-06-04",
            "count": 6
          },
          {
            "date": "2026-06-05",
            "count": 6
          },
          {
            "date": "2026-06-06",
            "count": 4
          },
          {
            "date": "2026-06-08",
            "count": 5
          },
          {
            "date": "2026-06-09",
            "count": 2
          },
          {
            "date": "2026-06-10",
            "count": 5
          },
          {
            "date": "2026-06-11",
            "count": 5
          },
          {
            "date": "2026-06-12",
            "count": 5
          },
          {
            "date": "2026-06-13",
            "count": 10
          },
          {
            "date": "2026-06-14",
            "count": 4
          },
          {
            "date": "2026-06-15",
            "count": 2
          },
          {
            "date": "2026-06-16",
            "count": 6
          },
          {
            "date": "2026-06-17",
            "count": 2
          },
          {
            "date": "2026-06-18",
            "count": 1
          },
          {
            "date": "2026-06-19",
            "count": 3
          },
          {
            "date": "2026-06-20",
            "count": 5
          },
          {
            "date": "2026-06-22",
            "count": 2
          },
          {
            "date": "2026-06-23",
            "count": 3
          },
          {
            "date": "2026-06-24",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 2
          },
          {
            "date": "2026-06-26",
            "count": 2
          },
          {
            "date": "2026-06-27",
            "count": 1
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-06-30",
            "count": 5
          },
          {
            "date": "2026-07-01",
            "count": 3
          },
          {
            "date": "2026-07-02",
            "count": 3
          },
          {
            "date": "2026-07-03",
            "count": 1
          },
          {
            "date": "2026-07-04",
            "count": 4
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 2
          },
          {
            "date": "2026-07-07",
            "count": 2
          },
          {
            "date": "2026-07-08",
            "count": 3
          },
          {
            "date": "2026-07-09",
            "count": 4
          },
          {
            "date": "2026-07-13",
            "count": 3
          },
          {
            "date": "2026-07-14",
            "count": 4
          },
          {
            "date": "2026-07-15",
            "count": 3
          },
          {
            "date": "2026-07-17",
            "count": 3
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 2
          },
          {
            "date": "2026-07-21",
            "count": 3
          }
        ],
        "complete": true,
        "collected": 690,
        "total_forks": 691
      },
      "star_history": null,
      "open_issues_and_prs": 25
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "app/tsconfig.json",
        "dash/tsconfig.json",
        "tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 167083,
      "source_files_sampled": 510,
      "oversized_source_files": 8,
      "agent_instruction_files": [
        "docs/providers/claude.md",
        "docs/providers/gemini.md"
      ],
      "agent_instruction_max_bytes": 3012
    },
    "dependencies": {
      "manifests": [
        "app/package.json",
        "dash/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@gsap/react",
          "manifest": "app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.2"
        },
        {
          "name": "gsap",
          "manifest": "app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.15.0"
        },
        {
          "name": "react",
          "manifest": "app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.7"
        },
        {
          "name": "react-dom",
          "manifest": "app/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.7"
        },
        {
          "name": "@tanstack/react-query",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.62.7"
        },
        {
          "name": "clsx",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.1"
        },
        {
          "name": "lucide-react",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.468.0"
        },
        {
          "name": "react",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.0.0"
        },
        {
          "name": "react-dom",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.0.0"
        },
        {
          "name": "recharts",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.3.0"
        },
        {
          "name": "tailwind-merge",
          "manifest": "dash/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.0.2"
        },
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.29.0"
        },
        {
          "name": "bonjour-service",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.4.1"
        },
        {
          "name": "chalk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.4.1"
        },
        {
          "name": "commander",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^13.1.0"
        },
        {
          "name": "ink",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "react",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.5"
        },
        {
          "name": "selfsigned",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.5.0"
        },
        {
          "name": "strip-ansi",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.2.0"
        },
        {
          "name": "undici",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.27.2"
        },
        {
          "name": "zod",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.25.76"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 4,
        "merged_prs": 412,
        "open_issues": 21,
        "closed_ratio": 0.912,
        "closed_issues": 218,
        "closed_unmerged_prs": 132
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "iamtoruk",
          "commits": 887,
          "avatar_url": "https://avatars.githubusercontent.com/u/65915470?v=4"
        },
        {
          "type": "User",
          "login": "ozymandiashh",
          "commits": 62,
          "avatar_url": "https://avatars.githubusercontent.com/u/234437643?v=4"
        },
        {
          "type": "User",
          "login": "AgentSeal",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/265224789?v=4"
        },
        {
          "type": "User",
          "login": "lfl1337",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/80782621?v=4"
        },
        {
          "type": "User",
          "login": "spMohanty",
          "commits": 14,
          "avatar_url": "https://avatars.githubusercontent.com/u/1581312?v=4"
        },
        {
          "type": "User",
          "login": "avs-io",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/247195684?v=4"
        },
        {
          "type": "User",
          "login": "andklee",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/106256645?v=4"
        },
        {
          "type": "User",
          "login": "NihalJain",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/3429351?v=4"
        },
        {
          "type": "User",
          "login": "tmchow",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/517103?v=4"
        },
        {
          "type": "User",
          "login": "mallek",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/6627101?v=4"
        }
      ],
      "contributors_sampled": 61,
      "top_contributor_share": 0.796
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "block-claude-coauthor.yml",
        "ci.yml",
        "firstlook.yml",
        "release-menubar.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 3/29 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 14 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "23 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "6e3c57a9ff95a624f1d9affa7384d32a67f359b7",
        "ran_at": "2026-07-23T04:22:04Z",
        "aggregate_score": 4.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T11:04:16Z",
      "oldest_open_prs": [
        {
          "number": 744,
          "created_at": "2026-07-18T12:45:21Z",
          "last_comment_at": "2026-07-20T16:22:55Z",
          "last_comment_author": "iamtoruk"
        },
        {
          "number": 783,
          "created_at": "2026-07-20T20:22:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 786,
          "created_at": "2026-07-20T20:26:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 794,
          "created_at": "2026-07-21T22:16:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-21T11:03:48Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 106,
          "created_at": "2026-04-19T15:04:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 213,
          "created_at": "2026-05-04T14:01:23Z",
          "last_comment_at": "2026-05-04T22:04:29Z",
          "last_comment_author": "iamtoruk"
        },
        {
          "number": 234,
          "created_at": "2026-05-05T20:43:18Z",
          "last_comment_at": "2026-05-24T01:57:36Z",
          "last_comment_author": "m13v"
        },
        {
          "number": 389,
          "created_at": "2026-05-24T11:30:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 411,
          "created_at": "2026-05-28T20:44:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 428,
          "created_at": "2026-06-02T08:17:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 479,
          "created_at": "2026-06-11T14:45:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 574,
          "created_at": "2026-06-29T10:21:48Z",
          "last_comment_at": "2026-06-30T13:11:31Z",
          "last_comment_author": "Joon"
        },
        {
          "number": 597,
          "created_at": "2026-07-02T09:39:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 611,
          "created_at": "2026-07-03T13:31:45Z",
          "last_comment_at": "2026-07-16T09:13:33Z",
          "last_comment_author": "iamtoruk"
        },
        {
          "number": 626,
          "created_at": "2026-07-07T00:15:06Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 645,
          "created_at": "2026-07-09T18:49:51Z",
          "last_comment_at": "2026-07-18T11:12:21Z",
          "last_comment_author": "avs-io"
        },
        {
          "number": 703,
          "created_at": "2026-07-16T20:28:28Z",
          "last_comment_at": "2026-07-18T11:12:42Z",
          "last_comment_author": "avs-io"
        },
        {
          "number": 725,
          "created_at": "2026-07-17T13:00:15Z",
          "last_comment_at": "2026-07-17T19:10:26Z",
          "last_comment_author": "avs-io"
        },
        {
          "number": 767,
          "created_at": "2026-07-20T15:29:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 768,
          "created_at": "2026-07-20T15:51:43Z",
          "last_comment_at": "2026-07-20T17:02:09Z",
          "last_comment_author": "AVSRPA1KR"
        },
        {
          "number": 769,
          "created_at": "2026-07-20T15:52:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 770,
          "created_at": "2026-07-20T15:57:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 771,
          "created_at": "2026-07-20T16:05:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 795,
          "created_at": "2026-07-22T10:19:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/getagentseal/codeburn",
    "host": "github.com",
    "name": "codeburn",
    "owner": "getagentseal"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 70,
      "inputs": {
        "security": 42,
        "vitality": 80,
        "community": 82,
        "governance": 62,
        "engineering": 81
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 80,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "commits_last_year": 1118,
              "human_commit_share": 1,
              "days_since_last_push": 1,
              "active_weeks_last_year": 15
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "15/52 weeks with commits",
                "points": 10.4,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 15
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1118 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1118
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 48,
              "latest_release_tag": "mac-v0.9.19",
              "releases_from_tags": false,
              "days_since_latest_release": 2,
              "mean_days_between_releases": 2.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "48 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 48
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 82,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "forks": 691,
              "stars": 8858,
              "watchers": 27,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "8,858 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 8858
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "691 forks",
                "points": 23.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 691
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "27 watchers",
                "points": 7.9,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 75,
            "inputs": {
              "packages": [
                "codeburn"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 32310
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "32,310 downloads/month across npm",
                "points": 60.1,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 32310,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 62,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 37,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 61,
              "top_contributor_share": 0.796
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 80% of commits",
                "points": 4.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 80
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "61 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 61
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 14 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 73,
            "inputs": {
              "merged_prs": 412,
              "open_issues": 21,
              "closed_issues": 218,
              "issue_closed_ratio": 0.912,
              "closed_unmerged_prs": 132
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "91% of issues closed",
                "points": 42.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "412/544 decided PRs merged",
                "points": 29,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 412,
                      "decided": 544
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 3/29 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "followers": 77,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "getagentseal",
              "public_repos": 9,
              "account_age_days": 95
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "77 followers of getagentseal",
                "points": 13.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 77,
                      "login": "getagentseal"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "9 public repos, account ~0 yr old",
                "points": 7.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 9
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "codeburn"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 2
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 2 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "50 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 50
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 81,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai-coding",
                "claude-code",
                "cli",
                "codex",
                "cost-tracking",
                "developer-tools",
                "observability",
                "terminal-ui",
                "token-usage",
                "cursor-ide",
                "menubar",
                "web-dashboard"
              ],
              "has_wiki": true,
              "homepage": "https://codeburn.app/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://codeburn.app/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "12 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 42,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 42,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "28 out of 28 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 3/29 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 14 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 27 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "23 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 10
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 61,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "docs/providers/claude.md",
                "docs/providers/gemini.md"
              ],
              "agent_instruction_max_bytes": 3012
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "docs/providers/claude.md, docs/providers/gemini.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "docs/providers/claude.md, docs/providers/gemini.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 43,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "app/tsconfig.json",
                "dash/tsconfig.json",
                "tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "app/tsconfig.json, dash/tsconfig.json, tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "app/tsconfig.json, dash/tsconfig.json, tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 167083,
              "source_files_sampled": 510,
              "oversized_source_files": 8
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "8/510 source files over 60KB",
                "points": 54.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 510,
                      "oversized": 8
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
    "deps.dev does not index npm:codeburn@0.9.19; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-23T04:22:30.848128Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/g/getagentseal/codeburn.svg",
  "full_name": "getagentseal/codeburn",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.