Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-27 06:05 UTC

callmemorgan / agents-statusline

Unified statusline for agentic coding tools

GoMIT★ 0 Sterne⑂ 0 Forksseit Juli 2026Auf GitHub ansehen ↗

callmemorgan/agents-statusline erreicht einen Gesundheitsindex von 46 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei AI Readiness (83/100) ab, am schwächsten bei Community & Adoption (24/100). Zuletzt vor 7 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

46
gesamt / 100
Gefährdet

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.

46
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

Morgan AllenPersönliches Konto
1 Follower13 öffentliche Reposseit Feb. 2013SkySlope

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
Gogithub.com/callmemorgan/agents-statuslinev1.8.4-1vor 7 Tagen

Metriken nach Kategorie

Vitalität

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

70Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 7 Tagen
6.2/36Commit-Rhythmus — 9/52 Wochen mit Commits
18/18Commit-Volumen — 184 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Verwendete Eingangsdaten
commits_last_year184
human_commit_share1
days_since_last_push7
active_weeks_last_year9
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 1 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 7 Tagen
12.6/27Release-Rhythmus — Rhythmus unbekannt (nur ein Release)
8/10OpenSSF Scorecard: Signed-Releases — 1 out of the last 1 releases have a total of 1 signed artifacts.
Verwendete Eingangsdaten
releases_count1
latest_release_tagv1.8.4
releases_from_tagsnein
days_since_latest_release7
mean_days_between_releases

Community & Verbreitung

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

24Kritisch · 18 % des Gesamtindex
Wie die Bewertung erfolgt
0/60Stars — 0 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein

Nachhaltigkeit & Governance

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

49Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
38.2/38.3PR-Annahme — 2/2 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/28 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs2
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
2.2/25Reichweite des Inhabers — 1 Follower von callmemorgan
20.3/25Kontohistorie — 13 öffentliche Repos, Kontoalter ca. 13 Jahre
Verwendete Eingangsdaten
followers1
owner_typeUser
is_verified
owner_logincallmemorgan
public_repos13
account_age_days4.912
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf go
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 7 Tagen
4/20Versionshistorie — 1 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesgithub.com/callmemorgan/agents-statusline
ecosystemsgo
any_deprecatednein
min_days_since_publish7

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

50Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
0/24CI-Workflows
24/24Tests vorhanden
16/16Linter-Konfiguration — .golangci.yml
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 2 merged PRs checked by a CI test -- score normalized to 0
Verwendete Eingangsdaten
has_cinein
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
0/10Wiki
Verwendete Eingangsdaten
topics
has_wikinein
homepage
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

29Kritisch · 16 % des Gesamtindex

Sicherheitslage

29Kritisch
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 0 out of 2 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/28 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
0/10Dangerous-Workflow — keine Daten
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — keine Daten
0/5Pinned-Dependencies — keine Daten
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
6/7.5Signed-Releases — 1 out of the last 1 releases have a total of 1 signed artifacts.
0/7.5Token-Permissions — keine Daten
6/7.5Vulnerabilities — 2 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated14
scorecard_versionv5.5.0
checks_inconclusive4
scorecard_aggregate2,9
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): dangerous_workflow, packaging, pinned_dependencies, token_permissions. 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.

83Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md, CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 92 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,92
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes14.426
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .golangci.yml
11/11Statische Typprüfung — Go (statisch typisiert)
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 31 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — keine Daten
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum, package-lock.json
has_dockerfilenein
typed_languageja
bootstrap_filesMakefile
has_devcontainernein
has_linter_configja
typecheck_configs
agent_commit_share0,31
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Pinned-Dependencies. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Go (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/62 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageGo
largest_source_bytes47.052
source_files_sampled62
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

0GitHub-Sterne
1Mitwirkende
184Commits, letzte 12 Monate
7Tage seit letztem Push
1Releases
1Bus-Faktor
0offene Issues
Go, npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

OpenSSF Scorecard 2.9 / 10
2.9Gesamtwert

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-27 06:05 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 2 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/28 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
k. A.Dangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
k. A.Packagingpackaging workflow not detected
k. A.Pinned-Dependenciesno dependencies found
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
8Signed-Releases1 out of the last 1 releases have a total of 1 signed artifacts.
k. A.Token-PermissionsNo tokens found
8Vulnerabilities2 existing vulnerabilities detected
Direkte Abhängigkeiten 4
RegistryPaketVersionsvorgabeManifest
Gogithub.com/gdamore/tcell/v2v2.13.9go.mod
Gogithub.com/pelletier/go-toml/v2v2.3.1go.mod
Gogithub.com/rivo/tviewv0.42.0go.mod
Gogolang.org/x/termv0.37.0go.mod
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": [],
      "is_fork": false,
      "size_kb": 3743,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "Go": 535351,
        "Python": 11115,
        "Makefile": 1069,
        "JavaScript": 2768,
        "TypeScript": 4810
      },
      "pushed_at": "2026-07-19T16:40:46Z",
      "created_at": "2026-07-12T05:25:05Z",
      "owner_type": "User",
      "updated_at": "2026-07-19T16:40:48Z",
      "description": "Unified statusline for agentic coding tools",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Morgan Allen",
      "type": "User",
      "login": "callmemorgan",
      "company": "SkySlope",
      "location": "Sacramento, CA",
      "followers": 1,
      "avatar_url": "https://avatars.githubusercontent.com/u/3580971?v=4",
      "created_at": "2013-02-13T03:58:14Z",
      "is_verified": null,
      "public_repos": 13,
      "account_age_days": 4912
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.8.4",
          "kind": "patch",
          "published_at": "2026-07-19T16:42:00Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "301adad0af0b384ec352a8e9a04e1c03b1b547d6",
          "body": "Remove the direct Claude OAuth shim and consolidate all provider usage behind CLIProxyAPI's normalized subscription endpoint. Keep the one-minute stale-while-revalidate render cache, remove unreachable compatibility helpers, and prepare the fork's signed release contract.\n\nCo-authored-by: Codex <noreply@openai.com>",
          "is_bot": false,
          "headline": "feat(usage): route subscription quotas through proxy",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-19T16:38:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6874d1c05cbdc8b411c08709a66f84f616c06159",
          "body": "…ota shim\n\nClaude Code namespaces its macOS keychain item per CLAUDE_CONFIG_DIR\n(\"Claude Code-credentials-<sha256[:8]>\"); the shim previously always read\nthe unsuffixed default entry, reporting the wrong account's quota on\nmulti-profile machines. The shim now resolves a profile\n([quota_shim].claude_\n[…]\nsuffix so concurrent profiles never clobber\neach other. The foreign-usage \"claude\" row follows the resolved profile\nvia the new quota.CachePath.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(quota): per-profile keychain, cache, and lock scoping for the qu…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-17T04:55:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "bc7d59c1cc6e21fb2b04fb44f66d8dea91901e7a",
          "body": "feat(usage): configure foreign refresh cadence",
          "is_bot": false,
          "headline": "Merge pull request #2 from callmemorgan/agent/configure-usage-refresh",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-14T21:39:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc4f2e3a60dafdfd16376c44582ae88add44349e",
          "body": null,
          "is_bot": false,
          "headline": "feat(usage): configure foreign refresh cadence",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-14T21:39:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b16d7ad8d63d6d5751b88600bd40929565c4bd83",
          "body": "chore: remove release automation",
          "is_bot": false,
          "headline": "Merge pull request #1 from callmemorgan/agent/remove-release-automation",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-14T18:24:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a6f271a35d57a6f2d55c675f4807c27ab017910",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove release automation",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-14T18:23:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adb338d36b1849789fa1a36ee00e783f7747dd8b",
          "body": null,
          "is_bot": false,
          "headline": "fix(usage): hide suspended Codex 5h limit",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-13T02:54:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "669440437a82a7ad7e58aef5a31cd7541d26ed18",
          "body": null,
          "is_bot": false,
          "headline": "feat(usage): add live multi-provider subscription bars",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-12T16:53:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9df3b3d0d2c5dd6fd7fb7cef7f5b414a35211a9",
          "body": null,
          "is_bot": false,
          "headline": "fork as agents-statusline",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-12T05:24:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "367f694feffb44f9a6f1b641f2d8ab580061294a",
          "body": "Claude Code's statusline payload never carries seven_day_overage_included,\nseven_day_sonnet, seven_day_opus, or model_scoped — that parsing was\nspeculation about an unshipped wire format. Remove it: RateLimits carries\nonly the documented five_hour/seven_day windows, and ModelScoped is a\nshim-only fi\n[…]\nA regression test pins\nthat model-class keys on the wire are ignored. If Claude Code ships the\nfields, add parsing back against the real schema.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(payload)!: model-class weekly windows are quota-shim-only",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T21:52:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7f4bf3d23b264d4e5dd170e1cca2765b2c191ebb",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: changelog for v1.8.2",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T18:38:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "92d56e01ea3db3dfbd991c8490969cf61fa0befc",
          "body": "Inactive shim windows come back with resets_at null; render the bar\nwithout the (?) placeholder instead.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(segments): omit rate-limit countdown when resets_at is absent",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T18:38:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "86cae622949fff9f3d82522c2a674afb05bf8e4f",
          "body": "Claude Code's statusline payload does not yet carry the model-class weekly\nwindows, so rate-limit-fable/-sonnet/-opus self-hide. The new opt-in\n[quota_shim] table bridges the gap: a detached quota-refresh worker fetches\napi.anthropic.com/api/oauth/usage (the data behind `claude /usage`) and\ncaches t\n[…]\ntages and reset\ntimes are cached, never the OAuth token (env, macOS keychain, or\n.credentials.json). New `quota` subcommand verifies end-to-end.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(quota): OAuth quota shim for the model-class weekly bars",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T18:38:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "60566622758cebf9c473c86483fca57e6fa217c4",
          "body": "npm@latest is now 12.0.0, which omits the bundled sigstore module\nand breaks `npm publish --provenance` (npm/cli#9722). Pin to the\n11.x line so OIDC trusted publishing keeps working.\n\nCo-authored-by: Grok <grok@x.ai>",
          "is_bot": false,
          "headline": "ci: pin npm to 11.x for provenance publish",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T18:10:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b3c260d596614d9f0a18c40242cca252b84eb05",
          "body": "Co-authored-by: Grok <grok@x.ai>",
          "is_bot": false,
          "headline": "docs: changelog for v1.8.1",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T18:01:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ba5a746d06ebb6740370ac4b69dae74d19eb741",
          "body": "* feat(segments): add Fable/Sonnet/Opus weekly rate-limit bars\n\nParse model-class weekly windows (seven_day_overage_included, seven_day_sonnet,\nseven_day_opus, optional model_scoped) and render them like the existing 5h/7d\nbars. Auto-insert rate-limit-fable after rate-limit-7d on schema v2 upgrade.\n\n[…]\nor users with rate-limit-7d. Stamping schema\nversion 2 without the insert left those configs stuck without the Fable bar.\n\nCo-authored-by: Grok <grok@x.ai>\n\n---------\n\nCo-authored-by: Grok <grok@x.ai>",
          "is_bot": false,
          "headline": "feat(segments): Fable/Sonnet/Opus weekly rate-limit bars (#23)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-09T18:00:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "81ebb05863ff3c94d903b4133a43248a00d84af0",
          "body": "…oldens",
          "is_bot": false,
          "headline": "feat(config): enable new Claude Code segments by default and update g…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:37:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e16f799b4814b53ac6c592326df9d69c24c74de",
          "body": null,
          "is_bot": false,
          "headline": "docs: update AGENTS.md Makefile reference and changelog for v1.8.0",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:33:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74b1db412222de4f01a4dec4bb91aa3212aade97",
          "body": null,
          "is_bot": false,
          "headline": "chore: add root package.json for Biome dev tooling",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:33:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71a92ba06eac2b7ed709538881b7fc418f330648",
          "body": null,
          "is_bot": false,
          "headline": "chore: fix Biome lint/format issues in npm shim and build script",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:33:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c79d8f96687a799d15ed743c07b54d8526ac8ef6",
          "body": "Documents the new segments, install flags, subagentStatusLine hook, and expanded payload fields in the README, embedded README, help text, debug schema, and example config.",
          "is_bot": false,
          "headline": "docs: update README, help, config example, debug schema",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:29:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66296c4b612ad77b0f9330f94bb38fa916588579",
          "body": "Adds --refresh-interval, --hide-vim-mode-indicator, and --statusline-padding install flags. Adds the subagent-statusline subcommand and --subagent-statusline wiring, with tests for both.",
          "is_bot": false,
          "headline": "feat(install): support statusLine options and subagentStatusLine hook",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:29:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8059642e8ff2cb9031d51d29260a3dae4d3d7e5",
          "body": "…ee enrichment\n\nAdds five new built-in segments (prompt-id, pr, repo, thinking) and opt-in git-branch settings to show the worktree path and original branch. Includes setting specs and renderer tests.",
          "is_bot": false,
          "headline": "feat(segments): add prompt-id, pr, repo, thinking segments and worktr…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:29:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d485c95e5fd6c2f624875724c37b58610ff4ea0",
          "body": "Adds prompt_id, pr, workspace.repo, full worktree metadata, and thinking.enabled to the payload struct and the claude-full test fixture.",
          "is_bot": false,
          "headline": "feat(payload): add new Claude Code statusline fields",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-07-04T14:29:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f72c700e0c8d02625d576c7b302d1c985599fed",
          "body": null,
          "is_bot": false,
          "headline": "docs(agents): strengthen CHANGELOG update requirement before tagging",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:26:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95714e3bd8ff216b5d4f3c4e11f143be84bfe222",
          "body": null,
          "is_bot": false,
          "headline": "docs: highlight plugin preview values in v1.7.2 changelog",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:14:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32d6cbf41de4e3985e52c19b74af37881dcd9a13",
          "body": "The post-upgrade takeover was reserving its last line for a config hint,\nwhich crowded out real CHANGELOG bullets when space was limited. Drop the\nhint and use every available line for the version header and bullets.\n\n- Remove the \"configure: [release_notes]\" hint from announceLines.\n- Remove the \"claude-statusline release-notes\" suffix from the n=1\n  compressed form.\n- Pad shorter announcements with blank lines instead of a hint.\n- Update tests and add a v1.7.2 CHANGELOG entry.",
          "is_bot": false,
          "headline": "feat(releasenotes): show actual release notes in the takeover",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:10:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3a5d31bd758e717e1999b60887ec8a2661c5b2eb",
          "body": "Run test, lint, and Node jobs before GoReleaser in release.yml and\ndelete the separate ci.yml workflow. Update AGENTS.md accordingly.",
          "is_bot": false,
          "headline": "ci: fold CI checks into release workflow",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:05:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e588ef1736306050edc472e5eacbc63a01034d85",
          "body": null,
          "is_bot": false,
          "headline": "docs: sync embedded changelog",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:05:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ae0efee997ffbbd4895d1822344b3517f8a6f2e",
          "body": null,
          "is_bot": false,
          "headline": "docs: changelog for v1.7.1",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:02:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66d558247b3832a9c3d520e23a5a8005f397ffb9",
          "body": "- Mark plugin segments with 📌 in the segment list.\n- Add a \"📌 plugin\" hint to the footer when plugins exist.\n- Let plugins declare a \"preview\" sample value used in the TUI\n  assembler, per-segment preview, demo mode, and v terminal view.\n- Thread a Preview flag through render.Input and segments.RenderCtx\n  so the real stdin->stdout render path is unaffected.\n- Update README and configs/config.toml.example with examples.",
          "is_bot": false,
          "headline": "feat(plugins,tui): make plugins visible in the TUI assembler",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-22T17:00:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d158a37b7227a7b7cde2ed2767b9d72c4e28f7e",
          "body": null,
          "is_bot": false,
          "headline": "feat(npm): add dedicated readmes for every published package",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-21T20:07:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ed9037a8c074824c338e554106d256eab6747c6",
          "body": "Pi sent session_id, but renderSessionName only reads SessionName/ConversationID, so the Pi session identifier never displayed. The Pi extension now also emits conversation_id; session_id stays for per-session state keying.\n\nrenderTokens never self-hid, so a harness that sends no token counts (Pi) re\n[…]\nged/etc.\n\nUpdate the pi-full fixture, regenerate the minimal and pi-full goldens, and sync the README harness matrix and Pi notes.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: render session-name under Pi and self-hide zero-count tokens",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T16:08:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e31c690ddb0a61d89692e4bb1fa08539617f6b89",
          "body": "Sharpen the tagline and lead-in, and fix the built-in segment count (from 24 to 26, verified against allSegmentInfos).\n\nAdd a Harness support matrix covering Claude Code, Antigravity, and Pi, grounded in the segment renderers and the Pi extension's payload builder. Correct the Pi section accordingly\n[…]\ndo not render under Pi, and version is Claude Code + Antigravity only. Keep README.md and cmd/claude-statusline/README.md in sync.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: polish README intro and add segment/harness support matrix",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T13:52:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "78d7b4d8e3e4a73e1dec7219ac83f818e320aa2c",
          "body": null,
          "is_bot": false,
          "headline": "docs(readme): fix Antigravity website URL",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T06:09:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7233aac4085bd25a2c7b612aeac0fb6e6b59291",
          "body": "…S.md\n\n- README/AGENTS/.goreleaser.yaml/npm package.json now use 'Pi' and\n  'Antigravity' consistently (commands/flags/package names remain lowercase).\n- Added the CLI error: bubbletea: error opening TTY: bubbletea: could not open TTY: open /dev/tty: device not configured reference on first Antigravity use and renamed headings.\n- CLAUDE.md is now a symlink to AGENTS.md so the two cannot drift.\n- Created GitHub issues #16 and #17 for Pi/Antigravity TUI preview modes.",
          "is_bot": false,
          "headline": "docs: capitalize Pi/Antigravity naming and symlink CLAUDE.md to AGENT…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T06:01:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9d009ae8c650ee723d8ed372270c9d0ab00d526",
          "body": "The v1.6.0 cask collided with the existing claude-statusline formula in the\ntap, breaking brew upgrade and auto-update for existing installs. Go back to\nthe brews formula in GoReleaser and restore the pre-1.6.0 install/upgrade\ncommands. A cask under a different token (agents-statusline) will be added\nseparately later.",
          "is_bot": false,
          "headline": "fix(release): revert Homebrew distribution to formula",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T05:39:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94e059c1dcff250cdaec81de544271d68bb02be7",
          "body": null,
          "is_bot": false,
          "headline": "docs: changelog for v1.6.0",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T05:15:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e20c8b3bf9525cdeee23087a975f3f72a0dc852",
          "body": "…age.json",
          "is_bot": false,
          "headline": "style(js): fix biome lint/format errors in build scripts and npm pack…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T05:13:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ef1bfc52c62d1e6e8db25bff39595c825ea03c8",
          "body": "…uild pipeline",
          "is_bot": false,
          "headline": "refactor(cmd): move entry point to cmd/claude-statusline and update b…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T05:11:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84b5dad7a6d600c1475bbc6dcf066df2f2b05050",
          "body": null,
          "is_bot": false,
          "headline": "refactor(tui): move configure TUI into internal/tui",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T05:05:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca2429f79239d15f31afdf6025981afadf2a0e30",
          "body": "…al packages\n\nMoves install.go/update.go/releasenotes.go (and their tests) into\n\ninternal/install, internal/update, and internal/releasenotes. Shared\n\nversion helpers (IsReleaseVersion, CompareVersions, ParseVersion) move to\n\ninternal/version to break the update/releasenotes import cycle.\n\nHard-link embedded assets (CHANGELOG.md, release/cosign.pub) into the\n\nnew package directories so //go:embed can resolve them without '..' paths.",
          "is_bot": false,
          "headline": "refactor(update): move install, update, and release-notes into intern…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T05:01:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83db8003df7b9738877eb6c3fbcfb9d6d322c811",
          "body": null,
          "is_bot": false,
          "headline": "docs: update build/test and architecture notes for internal packages",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T04:46:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b94139f24aa92368f645c9f5fff27ed616d3dad9",
          "body": "…al packages",
          "is_bot": false,
          "headline": "refactor(segments): move segments, rendering, and plugins into intern…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T04:45:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d72da83ebc5ea898104bce067d5cad6e01b0c16",
          "body": "…rnal/config",
          "is_bot": false,
          "headline": "refactor(config): move config, migrate, schema, and presets into inte…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T04:01:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3eb7dd0f657428422ff511d72576fb94707590a9",
          "body": "…lette, sys, ansi)",
          "is_bot": false,
          "headline": "refactor: extract leaf internal packages (payload, version, state, pa…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T03:28:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b63d738512c64ec8b5337704be1ed7682828be3",
          "body": null,
          "is_bot": false,
          "headline": "refactor: move release artifacts into release/ and configs/",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T03:11:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db3a23b9fb173229e0ef79e05d1cdf2233de9f6",
          "body": "GoReleaser deprecated brews for precompiled binaries in v2.10/v2.16.\nSwitch .goreleaser.yaml to homebrew_casks, keep the same tap, and add a\npost-install hook that removes the macOS quarantine bit (unsigned binary).\n\nAlso update the auto-update path and docs to use brew upgrade --cask,\ndetect Caskroom installs, and ignore the GoReleaser dist/ directory.",
          "is_bot": false,
          "headline": "fix(goreleaser): migrate Homebrew formula to cask",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T01:58:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "812973d7e5cf3063b8eac9142be847db034128af",
          "body": "- TypeScript extension wires claude-statusline into pi's footer on\n  session/turn/model events\n- npm package declares pi extension entry point; build script packages it\n- README/TESTING/docs update install and smoke-test instructions\n- CI adds pi extension smoke test\n- Sample payload + golden test for pi render output\n- Regenerate theme screenshots",
          "is_bot": false,
          "headline": "feat(pi): add first-class pi extension support",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-19T01:27:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30c5694dbe2f990de600002568de322185b9fa98",
          "body": "The context-window and rate-limit bars produce the longest rendered line,\nwhich was being truncated in the README screenshots. Increase WINDOW_WIDTH\nfrom 950 to 1150 CSS pixels so the full third line fits inside the capture\nwindow, and regenerate all theme screenshots.",
          "is_bot": false,
          "headline": "fix(screenshots): widen capture window to prevent bar overflow",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T23:19:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2192590d1a63221916ddf1a974fc6fb35ed67f05",
          "body": null,
          "is_bot": false,
          "headline": "docs: document Node checks in CI workflow",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T23:13:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c3a0ec822c9df5980579a554ae840d1236a3384",
          "body": "Now that the npm shim and build script are part of the release, run them\nthrough CI on every tag push:\n\n- Syntax-check the npm shim and scripts/build-npm.mjs with node --check.\n- Build the Go binary and exercise the shim via CLAUDE_STATUSLINE_BIN so a\n  working payload round-trips through the Node entrypoint.",
          "is_bot": false,
          "headline": "ci: add Node checks to CI workflow",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T23:12:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85e9a0379f8c9a967dd5cf9d71002f09668157f1",
          "body": "Add [release_notes].max_lines to control how many lines the post-upgrade\nannouncement may occupy. Accepts an integer (0 = keep the statusline's own\nheight) or symbolic strings like \"status-line\" / \"same-as-status-line\".\n\n- Default is 10 lines, so a typical minor-version update fits without\n  truncat\n[…]\nrminal's width reserves.\n- The takeover never shrinks below the statusline's normal line count.\n- validateConfig warns and resets invalid values.\n\nBump the in-progress release notes section to v1.5.1.",
          "is_bot": false,
          "headline": "feat(release-notes): configurable takeover height via max_lines",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T23:07:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09116cbea58bb5ddfda9822d6e8fbac95e299839",
          "body": "…mmaries\n\nAdd a 32-bit importance field to every changelog bullet via leading [N]\nmarkers in CHANGELOG.md. Ordinary items use 0-5; pinned/critical items\ncan use much larger values (e.g. 99999) to force top placement.\n\n- Sort bullets by descending importance in release-notes output and the\n  post-upg\n[…]\n jumping v1->vN\n  see the highest-impact changes across the whole span.\n- Render importance >= 100 bullets with a [PINNED] prefix.\n- Backfill importance markers across the entire CHANGELOG.md history.",
          "is_bot": false,
          "headline": "feat(release-notes): importance-weighted bullets and cross-version su…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T22:47:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c24a3f922ecf7ce0f6a1366a148f062f2a53c62e",
          "body": "- Add Makefile with lint/fmt/vet/test/check targets\n\n- Ignore .claude/ local state and worktrees\n\n- Remove unused pathKnown field in installTarget\n\n- Add nolint annotation for best-effort prompt read\n\n- Simplify color picker row increment\n\n- Reformat npm shim with Biome",
          "is_bot": false,
          "headline": "chore(dev): add Makefile, ignore .claude, apply lint cleanups",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T20:40:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f50eec3abd26c479237dbf099fa1eaa08728282c",
          "body": null,
          "is_bot": false,
          "headline": "docs: update agent guidance for new themes, platforms, and CI workflow",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T18:03:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ac08b415f7145560df830d4e3b8286f85eb8839",
          "body": null,
          "is_bot": false,
          "headline": "docs: changelog for v1.4.1",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T18:00:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b12520bc1cdda177944230c568c6ba3217b9c7fb",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): remove accidental pi extension dependency and fix gofmt",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T17:59:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f4b977587030ca80c95350ce3678aa0f3de7d9c",
          "body": null,
          "is_bot": false,
          "headline": "docs: changelog for v1.4.0",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T17:45:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22ea75a51c932a66a6d2a46e5a08a68614bf3bc4",
          "body": null,
          "is_bot": false,
          "headline": "docs: add commit message conventions to AGENTS.md",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T17:45:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df70cbbc6fb55d3eeefe35275da97b6c73cf2171",
          "body": null,
          "is_bot": false,
          "headline": "build: add windows/arm64 and linux/arm platform packages",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T16:26:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f86e44e471d722278ef1325dc49aba8f31054ad",
          "body": null,
          "is_bot": false,
          "headline": "ci: run lint/test workflow only on tag pushes",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T16:12:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "706933cf0957b86cc894b1fd00a0714d3799a33f",
          "body": null,
          "is_bot": false,
          "headline": "ci: add lint/test workflow with golangci-lint v2 config",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T16:11:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85a73537f71a8500991cde5f3dd00ac7b10a4b07",
          "body": null,
          "is_bot": false,
          "headline": "docs: changelog for v1.3.2",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T16:08:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21a4cd476d47ce43f142d25fa0ecbb0c5739be7e",
          "body": null,
          "is_bot": false,
          "headline": "Ignore local node_modules for dev tooling",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T16:06:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af7a6a5c4373a3c5c970266225c4f109b648b253",
          "body": null,
          "is_bot": false,
          "headline": "Regenerate theme screenshots including new light and monochrome themes",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:41:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c78ce865af3dcc7feb0754125d512ef27948f1fa",
          "body": null,
          "is_bot": false,
          "headline": "Document new light and monochrome themes",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:38:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df195f782ee52a6a1519598b0637fe482be854e1",
          "body": null,
          "is_bot": false,
          "headline": "Add paper, solarized-light, and monochrome themes",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:38:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08f6390919f3893c193a5efd2ffabb1db1de28a4",
          "body": "- Update GoReleaser archive config: format -> formats (v2.6 deprecation).\n- Bump GitHub Actions to Node 24 runtimes:\n  - actions/checkout@v6 -> v7\n  - actions/upload-artifact@v4 -> v7\n  - actions/download-artifact@v4 -> v8\n  - actions/setup-node@v4 -> v6\n- Leave brews as-is: migrating to homebrew_casks would drop Linuxbrew\n  support (casks are macOS-only) for a cross-platform CLI tool.",
          "is_bot": false,
          "headline": "ci: resolve release-workflow warnings",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:19:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d47a1a456523f9510c780389d549c5555fc5abff",
          "body": "This reverts commit 840d69004c656ce8cca7a3385e8662b31f504d58.",
          "is_bot": false,
          "headline": "Revert \"ci: resolve release-workflow warnings\"",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77af949a6d3dd90b342938a8194818dd15a2d3cb",
          "body": "This reverts commit 882a301adbb73709068ac33f98b9df63194a2f35.",
          "is_bot": false,
          "headline": "Revert \"ci: add supporting config for the new CI workflow\"",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "882a301adbb73709068ac33f98b9df63194a2f35",
          "body": "Adds .golangci.yml, Biome config, package manifests, and the pi extension\nsource so the ci.yml workflow pushed in the previous commit can run.",
          "is_bot": false,
          "headline": "ci: add supporting config for the new CI workflow",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:17:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "840d69004c656ce8cca7a3385e8662b31f504d58",
          "body": "- Update GoReleaser archive config: format -> formats (v2.6 deprecation).\n- Bump GitHub Actions to Node 24 runtimes:\n  - actions/checkout@v6 -> v7\n  - actions/upload-artifact@v4 -> v7\n  - actions/download-artifact@v4 -> v8\n  - actions/setup-node@v4 -> v6\n  - actions/setup-go@v5 -> v6\n  - golangci/golangci-lint-action@v6 -> v9\n- Leave brews as-is: migrating to homebrew_casks would drop Linuxbrew\n  support (casks are macOS-only) for a cross-platform CLI tool.",
          "is_bot": false,
          "headline": "ci: resolve release-workflow warnings",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:15:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "802b34f70f32ac8f17147756824456a04b989e45",
          "body": "Aged newsprint palette: warm greys and sepia tones on dark stock.\nIncludes README/help/example updates, screenshot script wiring, and\ngenerated gallery asset.",
          "is_bot": false,
          "headline": "Add newsprint theme",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-18T15:06:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b5cddf50523e970fda14daa0633c3c629cc02f4",
          "body": "The auto-update spec predated npm distribution and never mentioned kindNpm.\nDocument the npm carve-out in docs/specs/auto-update.md (decision tree, the\n\"decisions already made\" list, detectInstallKind ordering, the worker's\nstep-3 exit, and the foreground `update` subcommand branch), and fix the\nREADME `auto` mode comment that still said \"manual installs only\" (Homebrew\nauto-upgrades too; npm is the excluded one).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: bring auto-update docs current with npm install kind",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-16T04:18:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b31b24b1cb692ddb8141d64fbdf334373b29c9f9",
          "body": "Publish every GitHub release to npm as @morgan.rebrand/claude-statusline:\na tiny Node shim that execs the correct prebuilt binary from per-platform\noptionalDependencies (@morgan.rebrand/claude-statusline-<os>-<cpu>).\nscripts/build-npm.mjs repacks the GoReleaser dist/ archives into the\nplatform packa\n[…]\nreflect that npm requires a package to exist before a trusted publisher\ncan be configured (manual bootstrap publish is mandatory).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(npm): distribute via npm with per-platform packages",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-16T03:53:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7c40cbc0c96b6be0aebe46c3db112576b3dc5188",
          "body": "Previously the default reflow (\"\") behaved like \"cascade\", spilling segments\nacross physical lines whenever a logical line exceeded the terminal width. The\ndefault is now \"off\": each logical line is emitted as-is and the terminal\nsoft-wraps anything too wide. Opt back in with reflow = \"cascade\" or \"\n[…]\nentical, so existing default goldens are unchanged. Added a default-60 golden\n  and a width-independence test for the new default.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(reflow): make line wrapping opt-in (default reflow = off) (#6)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-15T02:20:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1e851ee7a3eb7ac9c5644946f84cd28470cb0d32",
          "body": "`brew upgrade` runs with HOMEBREW_NO_AUTO_UPDATE=1 to stay fast, but that means\na stale local tap makes brew report \"already installed\" against an outdated\nformula — so a Homebrew install could never actually upgrade even while the\nupdate segment correctly showed a newer release (it checks GitHub di\n[…]\n our tap, and best-effort (any failure falls through to the upgrade\nagainst whatever is cached). Behind the refreshBrewTapFn seam.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(update): refresh the Homebrew tap before brew upgrade (#5)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-15T02:07:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "88ca06e09a98c7cee4955f8f0f36e9b068ac9b4f",
          "body": "Shows the git stash count (⚑N) and hides when there are no stashes. Runs a\ncached, bounded `git rev-list --walk-reflogs --count refs/stash` mirroring the\nrich git-branch status, with its own cache file so enabling both segments never\ncosts two uncached execs per render. A missing stash ref is treate\n[…]\nached; a transient git error falls back to the last cached count. Off by\ndefault (it runs git when enabled) — added via configure.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(segments): add opt-in git-stash segment (#4)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-15T01:45:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3a6f37f1c2824ea1f08deed2c9c944f14eef583b",
          "body": "…ation (#3)\n\nThe in-process signature verifier read the checksum signature only from the\nsigstore bundle field (messageSignature.signature), but a release's\nchecksums.txt.bundle may instead carry it under the legacy top-level\nbase64Signature field depending on the cosign version CI resolves. v1.2.0\n\n[…]\n update verify` runs the same signature check on demand and\n  prints the embedded key fingerprint; installs nothing, fails closed.\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(update): verify real release bundles; add update verify + confirm…",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-15T01:36:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "61776b3062055b30a8b7422d6db03eb5f47d7e54",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: unpin cosign (custom version trips installer digest check)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-14T15:49:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5b0b489bd532c7625897b8c5fe707381b78dc10f",
          "body": "v3.1.1 can't be installed by cosign-installer@v3 (pubkey digest\nmismatch), and v3.0.6 lacks the offline-bundle flags. Use cosign's\ndefault signing (records a Rekor hashedrekord) for cross-version\nstability; the in-process verifier reads only messageSignature and\nignores the tlog entry.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: pin cosign v3.0.6 and use default signing flags",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-14T15:48:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "770a502c193cb39172d39a93718251a17b8f26ba",
          "body": "The installer default (v3.0.6) lacks the --use-signing-config flag the\ngoreleaser signs block uses; pin to the validated version.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: pin cosign to v3.1.1 for release signing",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-14T15:44:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "583998077f7f5f669a7900a850e0eae5cdf4f9fe",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: release v1.2.0 (signature verification + self-update hardening)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-14T15:40:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e62bd750965b22c1ae8bcf5b9d1c39bff69725b7",
          "body": "Auto-update now cryptographically verifies releases before installing.\nchecksums.txt is signed with a key-based cosign bundle and verified\nin-process against an embedded ECDSA public key (cosign.pub) — pure\nstdlib, no cosign needed at runtime — and fails closed on a missing or\ninvalid signature. Rel\n[…]\nd detection, lazy exe-path resolution on the render path, and\na clock-skew guard so the update segment can't pin its verbose hint.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(update): verify release signatures + harden self-swap",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-14T15:37:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e168baf9b3fdcbeaeaecd0b87c36bb59263c266a",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: ignore .worktrees/",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T05:08:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6e18c1c9f9a3a1d9be71f7d1b5156dd8da268db0",
          "body": "Point-in-time design record for the auto-update feature: update the spec\nto reflect the isReleaseVersion carve-out and add the step-by-step\nimplementation plan.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: auto-update design spec and implementation plan",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T05:08:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f63c637b24135e101df74f286df3474b4ee476b3",
          "body": "Add an [update] config table and a detached `update-check` worker that\nresolves the latest GitHub release, caches it under the state dir, and —\nin auto mode — either runs `brew upgrade claude-statusline` for Homebrew\ninstalls or atomically self-swaps the binary for manual installs\n(download → sha256\n[…]\ndirty, Go pseudo-versions) short-circuit the whole feature,\nmirroring the release-notes carve-out so tests and goldens stay inert.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: background update checks (notify/auto/off)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T05:08:26Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2947442d627d85a0dc9a78d2fe68b8c7da75da27",
          "body": "Hoist the timeout+5s staleness computation out of tryAcquireLock and\ninto its caller (trySpawnRefresher), so the lock helper can be shared by\ncallers that derive staleness differently — namely the new update-check\nworker. Behavior for async plugins is unchanged.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: tryAcquireLock takes a staleness duration",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T05:08:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7b13332c1b6f8a7de304b182cbe5a0f5c85493dd",
          "body": "Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Remove current-pr plugin example",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T01:42:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0d5bd790857dcff863cdc2c0d0578423a5bbae05",
          "body": "Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: mark auto-update spec in progress (handed off)",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T00:44:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ad8fd596ccef1d4ea62fac7e4719b434f41a0a47",
          "body": "release-notes (shipped in v1.1.0, marked historical) and auto-update\n(planned, interview-settled). Specs are append-only decision logs;\ncode and CLAUDE.md remain the maintained truth.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: track design specs as point-in-time records",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-13T00:37:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7fc1549ac5f655742ace51a0c61ec89f263a7874",
          "body": "`claude-statusline release-notes` prints notes for the current or any\npast version (`vX.Y.Z`, `--all`) from CHANGELOG.md, embedded at build\ntime via go:embed — CHANGELOG.md is now a build input and must ship\nwith every commit that touches releasenotes.go.\n\nAfter an upgrade, the render path replaces \n[…]\niled state writes all\ndegrade silently to the normal render. The takeover reuses the\nrenderer's line budgets via a new shared lineBudget helper.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: release-notes subcommand and post-upgrade announcement",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-12T21:35:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e6d3396e67315a3c68811dfb08e54eafb4501b71",
          "body": null,
          "is_bot": false,
          "headline": "docs: async plugin docs and current-pr example",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-12T02:20:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f800e3f4335e98997d649ca904d75fed9ae5496",
          "body": null,
          "is_bot": false,
          "headline": "feat: async plugins with stale-while-revalidate caching",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-12T02:19:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d2494d34b08e153b6dcaa488478d8d26fc819db",
          "body": "Add rendered PNG screenshots to the README — a Tokyo Night hero shot,\nclassic Claude Code + agy renders in 'What it looks like', and a\nsix-theme gallery in the Themes section. All generated from actual\nrenderer output (synthetic payload + a fabricated hour of session\nhistory so burn rates, projections, and trends light up) by the new\nscripts/screenshots.py, which screenshots the ANSI via headless Chrome\nfor correct glyph fallback.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: real screenshots for the GitHub page",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-10T17:48:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "22a274a89514f3b66f9526f5a8f2c93a70876da2",
          "body": "The claude install target hardcoded ~/.claude/settings.json, so users\nrunning Claude Code with a CLAUDE_CONFIG_DIR profile got the statusline\nwired into the wrong settings file. --settings-path still wins over both.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(install): honor CLAUDE_CONFIG_DIR when resolving settings.json",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-10T16:20:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d95171ca0dba22d9224ff29e44b648fd76d9872d",
          "body": "Cover the work that landed after the G24 docs sweep across README,\nCLAUDE.md/AGENTS.md, TESTING.md, the CLI help, and the in-TUI help:\nsynthetic preview data, demo mode (d), the render-in-terminal view (v),\nfooter wrapping, and the 'original' theme alias. Adds two troubleshooting\nentries: checking t\n[…]\n.0+ reads\nconfig.toml — migration strands an older installed binary on defaults\nuntil config.json.bak is copied back or the binary is upgraded).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: catch docs up to the post-sweep TUI features",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-10T13:58:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "063c902d897e2437f5e4c57fa59e5ecd06d54190",
          "body": "- v hides the TUI (tview Suspend) and renders the statusline with real\n  escapes straight to the terminal, so themes can be judged against the\n  actual background, font, and color handling instead of the in-TUI\n  approximation. Enter returns to the configurator.\n- The footer key hints word-wrap onto\n[…]\nheme\n  picker description and docs say so. Classic remains the default, so\n  preexisting installs keep their original colors without any config.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(tui): terminal view (v), wrapping footer, 'original' theme alias",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-10T13:49:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0ad3838d0ebe7c32c14a800e5af4e7c723886885",
          "body": "The TUI preview had no data source for several features, so toggling them\nchanged nothing:\n\n- State-derived features (cost-rate, →NN% projections, ↗ context trend)\n  never rendered: neither preview passed a session state. The TUI now\n  builds an hour of synthetic rising history (previewState) and th\n[…]\nsweeps 0→100 together, countdowns wind down,\nand cost and lines-changed grow, so threshold colors and reflow are\nvisible across the entire line.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tui): every option previews — synthetic state, demo mode, git fix",
          "author_name": "Morgan Allen",
          "author_login": "callmemorgan",
          "committed_at": "2026-06-10T13:39:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 1,
      "commits_last_year": 184,
      "latest_release_at": "2026-07-19T16:42:00Z",
      "latest_release_tag": "v1.8.4",
      "releases_from_tags": false,
      "days_since_last_push": 7,
      "active_weeks_last_year": 9,
      "days_since_latest_release": 7,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/callmemorgan/agents-statusline",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/callmemorgan/agents-statusline",
          "is_deprecated": false,
          "latest_version": "v1.8.4",
          "repository_url": "https://github.com/callmemorgan/agents-statusline",
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-19T16:38:23Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 47052,
      "source_files_sampled": 62,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 14426
    },
    "dependencies": {
      "manifests": [
        "go.mod",
        "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": [
        "go",
        "npm"
      ],
      "dependencies": [
        {
          "name": "github.com/gdamore/tcell/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.13.9"
        },
        {
          "name": "github.com/pelletier/go-toml/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.3.1"
        },
        {
          "name": "github.com/rivo/tview",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.42.0"
        },
        {
          "name": "golang.org/x/term",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.37.0"
        }
      ],
      "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": 0,
        "merged_prs": 2,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "callmemorgan",
          "commits": 184,
          "avatar_url": "https://avatars.githubusercontent.com/u/3580971?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum",
        "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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
            "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": 0,
            "reason": "Found 0/28 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "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": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "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": null,
            "reason": "no dependencies found",
            "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": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 8,
            "reason": "1 out of the last 1 releases have a total of 1 signed artifacts.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 8,
            "reason": "2 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "301adad0af0b384ec352a8e9a04e1c03b1b547d6",
        "ran_at": "2026-07-27T06:05:04Z",
        "aggregate_score": 2.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-14T21:39:35Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/callmemorgan/agents-statusline",
    "host": "github.com",
    "name": "agents-statusline",
    "owner": "callmemorgan"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 46,
      "inputs": {
        "security": 29,
        "vitality": 70,
        "community": 24,
        "governance": 49,
        "engineering": 50
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 70,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "commits_last_year": 184,
              "human_commit_share": 1,
              "days_since_last_push": 7,
              "active_weeks_last_year": 9
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "9/52 weeks with commits",
                "points": 6.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 9
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "184 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 184
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "v1.8.4",
              "releases_from_tags": false,
              "days_since_latest_release": 7,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "1 out of the last 1 releases have a total of 1 signed artifacts.",
                "points": 8,
                "status": "partial",
                "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": "critical",
        "name": "Community & Adoption",
        "value": 24,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "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": 0,
                "status": "missed",
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 49,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "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 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "merged_prs": 2,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "2/2 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 2,
                      "decided": 2
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 41,
            "inputs": {
              "followers": 1,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "callmemorgan",
              "public_repos": 13,
              "account_age_days": 4912
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "1 followers of callmemorgan",
                "points": 2.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1,
                      "login": "callmemorgan"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "13 public repos, account ~13 yr old",
                "points": 20.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 13
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "good",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "packages": [
                "github.com/callmemorgan/agents-statusline"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 7
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 7 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "1 published versions",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 50,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": ".golangci.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "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": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "critical",
        "name": "Security",
        "value": 29,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 29,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 14,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 4,
              "scorecard_aggregate": 2.9
            },
            "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 not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 2 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "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": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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 not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "1 out of the last 1 releases have a total of 1 signed artifacts.",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "2 existing vulnerabilities detected",
                "points": 6,
                "status": "partial",
                "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": 2
            },
            "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": "good",
        "name": "AI Readiness",
        "value": 83,
        "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": 0.92,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 14426
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.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": "92 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 92,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 91,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum",
                "package-lock.json"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.31,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": ".golangci.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "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": "31 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 31,
                      "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": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 47052,
              "source_files_sampled": 62,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/62 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 62,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "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": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T06:05:10.986681Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/callmemorgan/agents-statusline.svg",
  "full_name": "callmemorgan/agents-statusline",
  "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 StatistikenGo.