Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-25 09:36 UTC

iome-sh / iomesh-tui

I/O Mesh TUI coding agent (Go) — multi-model (DeepSeek, Grok, Gemini/Vertex) + mesh context hooks

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

iome-sh/iomesh-tui erreicht einen Gesundheitsindex von 61 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (77/100) ab, am schwächsten bei Community & Adoption (43/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

61
gesamt / 100
Mittel

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.

61
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

0 Follower3 öffentliche Reposseit Juni 2026IOMesh Technology Ltd.

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
Gogithub.com/iome-sh/iomesh-tuiv0.70.0-71vor 2 Tagen

Metriken nach Kategorie

Vitalität

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

72Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
1.4/36Commit-Rhythmus — 2/52 Wochen mit Commits
18/18Commit-Volumen — 190 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_year190
human_commit_share0,99
days_since_last_push0
active_weeks_last_year2
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 71 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 2 Tagen
27/27Release-Rhythmus — ein Release etwa alle 0,2 Tage
8/10OpenSSF Scorecard: Signed-Releases — 5 out of the last 5 releases have a total of 5 signed artifacts.
Verwendete Eingangsdaten
releases_count71
latest_release_tagv0.70.0
releases_from_tagsnein
days_since_latest_release2
mean_days_between_releases0,2

Community & Verbreitung

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

43Gefährdet · 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)
18/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductja
has_pull_request_templateja

Nachhaltigkeit & Governance

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

50Mittel · 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/38.3PR-Annahme — 189/190 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/29 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs189
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
0/25Reichweite des Inhabers — 0 Follower von iome-sh
4.6/25Kontohistorie — 3 öffentliche Repos, Kontoalter ca. 0 Jahre
Verwendete Eingangsdaten
followers0
owner_typeOrganization
is_verified
owner_loginiome-sh
public_repos3
account_age_days31

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf go
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 2 Tagen
20/20Versionshistorie — 71 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesgithub.com/iome-sh/iomesh-tui
ecosystemsgo
any_deprecatednein
min_days_since_publish2

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

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

Dokumentation

90Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://iome.sh
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepagehttps://iome.sh
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

64Mittel · 16 % des Gesamtindex
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
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/29 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — 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
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
6/7.5Signed-Releases — 5 out of the last 5 releases have a total of 5 signed artifacts.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
6/7.5Vulnerabilities — 2 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate5,5
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories2
affected_packages2
assessed_packages26
unassessed_packages0
affected_by_severityunknown 2
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 26 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

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.

64Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 99 von 99 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — Go (statisch typisiert)
10/10Reproduzierbare Umgebung — lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
8/8Automatisierte Wartung — 1 der letzten 100 Commits sind automatisierte Abhängigkeits-Updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum
has_dockerfilenein
typed_languageja
bootstrap_filesMakefile
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0,01
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Go (statisch typisiert)
53.3/55Handhabbare Dateigrößen — 3/97 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageGo
largest_source_bytes174.818
source_files_sampled97
oversized_source_files3

Eckdaten

0GitHub-Sterne
1Mitwirkende
190Commits, letzte 12 Monate
0Tage seit letztem Push
71Releases
1Bus-Faktor
0offene Issues
GoPaket-Ökosysteme

Weitere Details

OpenSSF Scorecard 5.5 / 10
5.5Gesamtwert

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-25 09:36 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/29 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
8Signed-Releases5 out of the last 5 releases have a total of 5 signed artifacts.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
8Vulnerabilities2 existing vulnerabilities detected
Direkte Abhängigkeiten 5
RegistryPaketVersionsvorgabeManifest
Gogithub.com/charmbracelet/bubblesv1.0.0go.mod
Gogithub.com/charmbracelet/bubbleteav1.3.10go.mod
Gogithub.com/charmbracelet/lipglossv1.1.0go.mod
Gogithub.com/coder/websocketv1.8.15go.mod
Gogithub.com/pelletier/go-toml/v2v2.4.3go.mod
Alle Abhängigkeiten 26

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 5 direkte und 21 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
Gogithub.com/charmbracelet/bubblesv1.0.0direkt
Gogithub.com/charmbracelet/bubbleteav1.3.10direkt
Gogithub.com/charmbracelet/lipglossv1.1.0direkt
Gogithub.com/coder/websocketv1.8.15direkt
Gogithub.com/pelletier/go-toml/v2v2.4.3direkt
Gogithub.com/atotto/clipboardv0.1.4indirekt
Gogithub.com/aymanbagabas/go-osc52/v2v2.0.1indirekt
Gogithub.com/charmbracelet/colorprofilev0.4.1indirekt
Gogithub.com/charmbracelet/x/ansiv0.11.6indirekt
Gogithub.com/charmbracelet/x/cellbufv0.0.15indirekt
Gogithub.com/charmbracelet/x/termv0.2.2indirekt
Gogithub.com/clipperhouse/displaywidthv0.9.0indirekt
Gogithub.com/clipperhouse/stringishv0.1.1indirekt
Gogithub.com/clipperhouse/uax29/v2v2.5.0indirekt
Gogithub.com/erikgeiser/coninputv0.0.0-20211004153227-1c3628e74d0findirekt
Gogithub.com/lucasb-eyer/go-colorfulv1.3.0indirekt
Gogithub.com/mattn/go-isattyv0.0.20indirekt
Gogithub.com/mattn/go-localereaderv0.0.1indirekt
Gogithub.com/mattn/go-runewidthv0.0.19indirekt
Gogithub.com/muesli/ansiv0.0.0-20230316100256-276c6243b2f6indirekt
Gogithub.com/muesli/cancelreaderv0.2.2indirekt
Gogithub.com/muesli/termenvv0.16.0indirekt
Gogithub.com/rivo/unisegv0.4.7indirekt
Gogithub.com/xo/terminfov0.0.0-20220910002029-abceb7e1c41eindirekt
Gogolang.org/x/sysv0.38.0indirekt
Gogolang.org/x/textv0.3.8indirekt
Abhängigkeits-Advisories 2

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 26 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 2 tragen bekannte Advisories, davon 0 direkte.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
golang.org/x/sysv0.38.0indirektunbekannt10.44.0
golang.org/x/textv0.3.8indirektunbekannt10.39.0

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 810,
      "has_wiki": true,
      "homepage": "https://iome.sh",
      "languages": {
        "Go": 964818,
        "Shell": 1943,
        "Makefile": 1843
      },
      "pushed_at": "2026-07-25T04:09:07Z",
      "created_at": "2026-07-16T09:43:17Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-25T04:09:11Z",
      "description": "I/O Mesh TUI coding agent (Go) — multi-model (DeepSeek, Grok, Gemini/Vertex) + mesh context hooks",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://iome.sh",
      "name": "IOMesh Technology Ltd.",
      "type": "Organization",
      "login": "iome-sh",
      "company": "IOMesh Technology Ltd.",
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/296311984?v=4",
      "created_at": "2026-06-23T22:22:15Z",
      "is_verified": null,
      "public_repos": 3,
      "account_age_days": 31
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.70.0",
          "kind": "minor",
          "published_at": "2026-07-23T05:35:28Z"
        },
        {
          "tag": "v0.69.0",
          "kind": "minor",
          "published_at": "2026-07-22T22:44:49Z"
        },
        {
          "tag": "v0.68.0",
          "kind": "minor",
          "published_at": "2026-07-22T22:23:11Z"
        },
        {
          "tag": "v0.67.0",
          "kind": "minor",
          "published_at": "2026-07-22T21:17:17Z"
        },
        {
          "tag": "v0.66.0",
          "kind": "minor",
          "published_at": "2026-07-22T20:59:37Z"
        },
        {
          "tag": "v0.65.0",
          "kind": "minor",
          "published_at": "2026-07-22T20:43:13Z"
        },
        {
          "tag": "v0.64.0",
          "kind": "minor",
          "published_at": "2026-07-22T20:35:35Z"
        },
        {
          "tag": "v0.63.0",
          "kind": "minor",
          "published_at": "2026-07-21T11:14:56Z"
        },
        {
          "tag": "v0.62.0",
          "kind": "minor",
          "published_at": "2026-07-21T10:57:33Z"
        },
        {
          "tag": "v0.61.0",
          "kind": "minor",
          "published_at": "2026-07-21T07:28:10Z"
        },
        {
          "tag": "v0.60.0",
          "kind": "minor",
          "published_at": "2026-07-21T07:02:39Z"
        },
        {
          "tag": "v0.59.0",
          "kind": "minor",
          "published_at": "2026-07-21T06:39:57Z"
        },
        {
          "tag": "v0.58.0",
          "kind": "minor",
          "published_at": "2026-07-21T06:02:31Z"
        },
        {
          "tag": "v0.57.0",
          "kind": "minor",
          "published_at": "2026-07-21T05:44:58Z"
        },
        {
          "tag": "v0.56.0",
          "kind": "minor",
          "published_at": "2026-07-21T05:27:52Z"
        },
        {
          "tag": "v0.55.0",
          "kind": "minor",
          "published_at": "2026-07-21T05:10:31Z"
        },
        {
          "tag": "v0.54.0",
          "kind": "minor",
          "published_at": "2026-07-21T05:08:48Z"
        },
        {
          "tag": "v0.53.0",
          "kind": "minor",
          "published_at": "2026-07-21T04:10:52Z"
        },
        {
          "tag": "v0.52.0",
          "kind": "minor",
          "published_at": "2026-07-21T03:55:59Z"
        },
        {
          "tag": "v0.51.0",
          "kind": "minor",
          "published_at": "2026-07-21T03:41:12Z"
        },
        {
          "tag": "v0.50.0",
          "kind": "minor",
          "published_at": "2026-07-21T03:25:29Z"
        },
        {
          "tag": "v0.49.0",
          "kind": "minor",
          "published_at": "2026-07-21T03:06:55Z"
        },
        {
          "tag": "v0.48.0",
          "kind": "minor",
          "published_at": "2026-07-21T02:48:22Z"
        },
        {
          "tag": "v0.47.0",
          "kind": "minor",
          "published_at": "2026-07-20T17:29:51Z"
        },
        {
          "tag": "v0.46.0",
          "kind": "minor",
          "published_at": "2026-07-20T17:14:09Z"
        },
        {
          "tag": "v0.45.0",
          "kind": "minor",
          "published_at": "2026-07-20T16:52:22Z"
        },
        {
          "tag": "v0.44.0",
          "kind": "minor",
          "published_at": "2026-07-20T16:43:24Z"
        },
        {
          "tag": "v0.43.0",
          "kind": "minor",
          "published_at": "2026-07-20T16:24:42Z"
        },
        {
          "tag": "v0.42.0",
          "kind": "minor",
          "published_at": "2026-07-20T15:07:25Z"
        },
        {
          "tag": "v0.41.0",
          "kind": "minor",
          "published_at": "2026-07-20T14:53:56Z"
        },
        {
          "tag": "v0.40.0",
          "kind": "minor",
          "published_at": "2026-07-20T14:40:44Z"
        },
        {
          "tag": "v0.39.0",
          "kind": "minor",
          "published_at": "2026-07-20T14:28:50Z"
        },
        {
          "tag": "v0.38.0",
          "kind": "minor",
          "published_at": "2026-07-20T10:55:08Z"
        },
        {
          "tag": "v0.37.0",
          "kind": "minor",
          "published_at": "2026-07-20T10:42:20Z"
        },
        {
          "tag": "v0.36.0",
          "kind": "minor",
          "published_at": "2026-07-20T10:30:18Z"
        },
        {
          "tag": "v0.35.0",
          "kind": "minor",
          "published_at": "2026-07-20T10:18:04Z"
        },
        {
          "tag": "v0.34.0",
          "kind": "minor",
          "published_at": "2026-07-20T06:33:14Z"
        },
        {
          "tag": "v0.33.0",
          "kind": "minor",
          "published_at": "2026-07-20T06:19:35Z"
        },
        {
          "tag": "v0.32.0",
          "kind": "minor",
          "published_at": "2026-07-20T06:07:51Z"
        },
        {
          "tag": "v0.31.0",
          "kind": "minor",
          "published_at": "2026-07-20T05:56:50Z"
        },
        {
          "tag": "v0.30.0",
          "kind": "minor",
          "published_at": "2026-07-20T04:10:38Z"
        },
        {
          "tag": "v0.29.0",
          "kind": "minor",
          "published_at": "2026-07-20T04:15:18Z"
        },
        {
          "tag": "v0.28.0",
          "kind": "minor",
          "published_at": "2026-07-19T23:44:32Z"
        },
        {
          "tag": "v0.27.0",
          "kind": "minor",
          "published_at": "2026-07-19T23:32:05Z"
        },
        {
          "tag": "v0.26.0",
          "kind": "minor",
          "published_at": "2026-07-19T23:20:41Z"
        },
        {
          "tag": "v0.25.0",
          "kind": "minor",
          "published_at": "2026-07-19T22:40:07Z"
        },
        {
          "tag": "v0.24.0",
          "kind": "minor",
          "published_at": "2026-07-19T22:32:42Z"
        },
        {
          "tag": "v0.23.0",
          "kind": "minor",
          "published_at": "2026-07-19T22:26:14Z"
        },
        {
          "tag": "v0.22.0",
          "kind": "minor",
          "published_at": "2026-07-19T04:47:41Z"
        },
        {
          "tag": "v0.21.0",
          "kind": "minor",
          "published_at": "2026-07-19T04:36:06Z"
        },
        {
          "tag": "v0.20.0",
          "kind": "minor",
          "published_at": "2026-07-19T04:25:12Z"
        },
        {
          "tag": "v0.19.0",
          "kind": "minor",
          "published_at": "2026-07-19T04:18:12Z"
        },
        {
          "tag": "v0.18.0",
          "kind": "minor",
          "published_at": "2026-07-19T03:49:30Z"
        },
        {
          "tag": "v0.17.0",
          "kind": "minor",
          "published_at": "2026-07-19T03:41:33Z"
        },
        {
          "tag": "v0.16.0",
          "kind": "minor",
          "published_at": "2026-07-19T02:43:52Z"
        },
        {
          "tag": "v0.15.0",
          "kind": "minor",
          "published_at": "2026-07-19T02:36:02Z"
        },
        {
          "tag": "v0.14.0",
          "kind": "minor",
          "published_at": "2026-07-19T02:25:50Z"
        },
        {
          "tag": "v0.13.0",
          "kind": "minor",
          "published_at": "2026-07-19T02:16:15Z"
        },
        {
          "tag": "v0.12.0",
          "kind": "minor",
          "published_at": "2026-07-19T01:40:01Z"
        },
        {
          "tag": "v0.11.0",
          "kind": "minor",
          "published_at": "2026-07-19T01:34:15Z"
        },
        {
          "tag": "v0.10.0",
          "kind": "minor",
          "published_at": "2026-07-19T01:25:31Z"
        },
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-07-19T01:16:46Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-07-19T01:06:30Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-07-19T00:28:22Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2026-07-19T00:16:18Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-07-18T09:57:46Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-07-18T09:16:39Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-07-18T05:32:09Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-07-16T22:35:47Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-07-16T21:05:15Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-07-16T20:05:31Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "8c4702c3b5b397c1a47a14a64919227387a65c48",
          "body": "When memory pull has empty --filter/pull_filter and tenant is hierarchical\n(dept.* or contains '.'), default filter_subject to tenant.> so durable\nconsumers only see that tenant's subjects. Log effective filter once at start.\n\nCreateConsumer already receives opt.Filter; client.auth continues to set\nX-IOMesh-Tenant on create/fetch/ack (mesh client falls back to memory tenant).\n\nHonesty: cost-max M1 pull remains Beta local-palace path; federated ACL peer\nis aion s659 — no GA claim.",
          "is_bot": false,
          "headline": "feat(memory): pull default filter from tenant (s660) (#190)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-25T04:09:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b28f66387dc37f6f92f75befdc2b4ba51114d436",
          "body": "* feat(memory): iomesh memory pull mesh→local palace (s652 M1)\n\nCost-max path: durable consumer fetch maps envelopes into local MCP\nmemory_ingest_turn. dual_write stays optional audit. Unit tests + docs.\n\n* fix(lint): memory pull errcheck + fprintln help\n\n* style: gofmt memory pull files",
          "is_bot": false,
          "headline": "feat(memory): iomesh memory pull mesh→local palace (s652 M1) (#189)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-25T02:32:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50a842303f1008c3ff4c5504c5edd1775c10886e",
          "body": "FormatProductDetail always-emit (status/department/description/lineage/subjects) already on main.",
          "is_bot": false,
          "headline": "chore: release v0.70.0 (#188)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-23T05:33:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8805b97e54e99a3291a7d84eebd1ed139b4b28ce",
          "body": null,
          "is_bot": false,
          "headline": "feat(catalog): FormatProductDetail always-emits optional knobs (#187)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-23T05:24:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "118088d4a89fabb7b4d475e81c66f3644c74f644",
          "body": "Format stream/consumer always-emit (stream knobs + filter_subject) already on main.",
          "is_bot": false,
          "headline": "chore: release v0.69.0 (#186)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T22:42:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b911381feba3f9456668814121684f7dc454e06c",
          "body": "…ject (#185)",
          "is_bot": false,
          "headline": "feat(format): always-emit stream detail knobs and consumer filter_sub…",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T22:39:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c02a2c543430f9ff4e74c07ffe3a241a06b94b06",
          "body": "FormatKV always-emit (entry created_at + bucket knobs) already on main.",
          "is_bot": false,
          "headline": "chore: release v0.68.0 (#184)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T22:21:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b98c77d28826b43167c874a2136675c3e20994b3",
          "body": null,
          "is_bot": false,
          "headline": "feat(kv): always-emit FormatKV entry created_at and bucket knobs (#183)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T22:14:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74ad782e1283234fc269af17dfa496e6ff36b1d2",
          "body": "Dogfood step latency_ms always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.67.0 (#182)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T21:15:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d1a891310913ab0dab8495777eabdb0af31621d",
          "body": "Add per-step latency_ms (int ms, 0 when zero/not timed) alongside\nexisting string latency so CI scrapers can marshal DogfoodReport steps\nnatively without omitempty gaps. stepTimed sets LatencyMS whenever\nLatency is set; FormatReportJSON always emits both fields.",
          "is_bot": false,
          "headline": "feat(dogfood): always-emit step latency_ms for CI scrapers (#181)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T21:12:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "faffa51c1e7de61e1ae641ec50548e782d8fd4c5",
          "body": "Mesh wait error always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.66.0 (#180)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T20:57:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25c2a7c37a276a87ccfc15c498150645d14b82a1",
          "body": "Always emit `error` (empty string when OK) in mesh wait text and JSON so\nCI scrapers can key on a stable field without omitempty gaps. Peers\nresult/exit_code/identity always-emit continuum.",
          "is_bot": false,
          "headline": "feat(mesh-wait): always-emit error for CI scrapers (#179)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T20:53:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7dc23c42c7fe6d0a11cb6b6b823200d5eadd5938",
          "body": "Dogfood step detail and latency always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.65.0 (#178)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T20:41:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe0f013ae884644652efcfb61b6285d8f4486e48",
          "body": "Always emit per-step detail (empty string when unset) and latency\n(duration string; empty when zero) in dogfood JSON so CI scrapers\ncan key on stable step fields without omitempty gaps.",
          "is_bot": false,
          "headline": "feat(dogfood): always-emit step detail and latency for CI (#177)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-22T20:37:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a25235759b9603ac843464d1afb89eeb7c134dcd",
          "body": "Dogfood policy_allow always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.64.0 (#176)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T17:51:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4e9c301a1ebb7646555bf6085c1f4dd7b2ad537",
          "body": "Change DogfoodReport.PolicyAllow from *bool omitempty to string\n\"true\"|\"false\"|\"\" always-emitted in JSON and text (empty when policy\nmode off / not evaluated / mesh disabled). Peers health_err/ready_err/\npolicy_source/memory_endpoint continuum (s515).",
          "is_bot": false,
          "headline": "feat(dogfood): always-emit policy_allow as string for CI (#175)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T17:48:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be73ed7bbcb863c59102a892a20b5a7c87b9574c",
          "body": "Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 6 to 7.\n- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)\n- [Commits](https://github.com/goreleaser/goreleaser-action/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: go\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump goreleaser/goreleaser-action from 6 to 7 (#109)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T17:19:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dff8cac9d88329816a34673dd2a3a93b45eb9224",
          "body": "Dogfood kv/consumer identity always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.63.0 (#174)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T11:13:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86bfc8b9a1975048423a3e51dc60707c30b472af",
          "body": "Always emit kv_bucket, consumer_stream, consumer_name, and consumer_filter\nas empty strings when unset (JSON + text) so CI scrapers have stable keys\nwithout omitempty gaps. Empty identity does not invent probe success —\npair with counts/flags. Bool probe flags unchanged.",
          "is_bot": false,
          "headline": "feat(dogfood): always-emit kv/consumer soft-probe identity for CI (#173)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T11:09:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ddcb1385edf0f28a7f7a8413ef2d29860958ce6",
          "body": "Dogfood catalog_source and policy_source always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.62.0 (#172)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T10:55:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bf9ed95a7bf67a978c4bce6f70329857f50aa95",
          "body": "…rapers (#171)\n\nAlways emit top-level catalog_source and policy_source (empty string when\nunset / mesh disabled before step) in dogfood text and JSON so CI scrapers\ncan key on stable source fields without omitempty gaps. Peers identity /\nmemory_endpoint / health_err always-emit continuum.",
          "is_bot": false,
          "headline": "feat: dogfood always-emits catalog_source and policy_source for CI sc…",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T10:51:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "429586f63682e443608b53382ee47c99fd6f9482",
          "body": "Dogfood memory_endpoint always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.61.0 (#170)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T07:26:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b9b090ca6f7779445d7cc24d38dbda71f6045b9",
          "body": "* feat: dogfood always-emits memory_endpoint for CI scrapers\n\nDrop omitempty on DogfoodReport.MemoryEndpoint and FormatReportJSON out\nstruct so JSON always has \"memory_endpoint\":\"\" when unset. FormatReport\ntext always prints the memory_endpoint line (empty-honest when unset).\n\nDoes not invent memory\n[…]\ns sidecar not\nconfigured (retrieve falls back to mesh endpoint). Peers identity\nalways-emit mold and SDK SUMMARY+RESULT base_url continuum.\n\n* style: gofmt dogfood.go after memory_endpoint always-emit",
          "is_bot": false,
          "headline": "feat: dogfood always-emits memory_endpoint for CI scrapers (#169)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T07:23:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "39f4abfe68042dd8010e959023add23a5eff00a9",
          "body": "Dogfood probe-err always-emit (health_err/ready_err) already on main.",
          "is_bot": false,
          "headline": "chore: release v0.60.0 (#168)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T07:00:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b55ae454849952c3215fdc6d644e5936dc6093c",
          "body": "…#167)\n\nAlways emit top-level health_err and ready_err in dogfood text and JSON\n(empty string when health/ready PASS, clean skip without err, or mesh\ndisabled) so CI scrapers can key on stable probe-error fields without\nomitempty gaps. Text uses dedicated health_err:/ready_err: lines after\nhealth_ms/ready_ms. Populated from health FAIL and ready FAIL/soft-SKIP\nunderlying probe errors. Peers mesh status probe-err and SDK\nConnectionStatus always-emit continuum.",
          "is_bot": false,
          "headline": "feat: dogfood always-emits health_err and ready_err for CI scrapers (…",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T06:58:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4e5f865a38ff73587ab0ffd556683e724d25fb4",
          "body": "Mesh status probe-err always-emit (health_err/ready_err) already on main.",
          "is_bot": false,
          "headline": "chore: release v0.59.0 (#166)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T06:38:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "939f289eb286feb9c60b30d2a3124ed85280b206",
          "body": "…rs (#165)\n\nAlways emit health_err and ready_err in mesh status text and JSON (empty\nstring when probe OK/skipped) so CI scrapers can key on stable probe-error\nfields without omitempty gaps. Text uses dedicated health_err:/ready_err:\nlines; detail is no longer inlined on health:/ready:. Peers SDK\nConnectionStatus always-emit continuum.",
          "is_bot": false,
          "headline": "feat: mesh status always-emits health_err and ready_err for CI scrape…",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T06:35:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a0b2395c8136ccd04273776750adf20d085b3cf",
          "body": "Mesh wait identity always-emit (endpoint/tenant/org/workspace) plus\ndogfood identity always-emit already on main.",
          "is_bot": false,
          "headline": "chore: release v0.58.0 (#164)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T06:02:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9442b7d5519379f5369a12509d5bd8bbb61a2fe9",
          "body": "Always emit endpoint/tenant/org/workspace on mesh wait text+JSON\n(empty string honest when unset). Compose MeshWaitEvidence; do not\ninvent readiness from identity. Peers mesh status identity continuum.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits identity fields for CI scrapers (#163)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:59:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "466f8eb6e5f83a70c78fab5fe61dfdb196a78b24",
          "body": "Always emit tenant, org, and workspace (empty string when unset) in dogfood text and JSON reports so CI scrapers can key on stable identity fields without omitempty gaps; peers mesh status identity always-emit.",
          "is_bot": false,
          "headline": "feat(dogfood): always emit tenant/org/workspace identity fields (#162)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:55:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13385c8431d35e1f0ff717fc4804122a735f33b8",
          "body": "Minor release: mesh status identity always-emit evidence.",
          "is_bot": false,
          "headline": "chore: release v0.57.0 (#161)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:43:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4ff88be06a58b6758ecebd8a9234a87841dd38f",
          "body": "Always emit endpoint, tenant, org, and workspace in mesh status text and\nJSON (empty string when unset) so CI scrapers can key on stable identity\nfields without omitempty gaps. Peers dogfood/mesh wait always-emit continuum.",
          "is_bot": false,
          "headline": "feat: mesh status always-emits identity fields for CI scrapers (#160)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:37:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b7f1633e25a384752889dea1a1b7f0879840dbe",
          "body": "Minor release: dogfood always-emit user_agent evidence.",
          "is_bot": false,
          "headline": "chore: release v0.56.0",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:26:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90e8535087dc52486fdeed73594d29b9f8f24651",
          "body": "Remove omitempty on FormatReportJSON out.UserAgent and always print\nuser_agent in FormatReport so CI scrapers get a stable key even when\nempty. Peers mesh wait/status always-emit continuum.",
          "is_bot": false,
          "headline": "feat(dogfood): always emit user_agent in text and JSON (#158)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:21:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfd143d4ef576f7136db88264aeade3e04addfd3",
          "body": "Minor release: mesh wait result evidence.",
          "is_bot": false,
          "headline": "chore: release v0.55.0 (#157)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:10:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f51be410d75702e0935b59931cc89f2b71ab028e",
          "body": "Always emit result (ok when wait OK / err when wait fails; derived from\nOK/waitErr only) on mesh wait text and --json so scrapers peer mesh status\nresult continuum without inventing readiness schema.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits result ok|err evidence (#156)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:07:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88ac7a695c7c803332f1f41ff6c4ec617589dae8",
          "body": "Minor release: mesh wait user_agent evidence.",
          "is_bot": false,
          "headline": "chore: release v0.54.0 (#155)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:06:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "469eebea5309934f74fca9614f6f4459574db0eb",
          "body": "Always emit package mesh HTTP User-Agent (iomesh.UserAgent()) on mesh wait\ntext and --json output for CI scrapers; peers mesh status/dogfood.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits user_agent evidence (#154)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T05:02:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cce8a3ab39f77f2287d8fcd3aff4928cd06bddd7",
          "body": "Minor release: mesh wait version evidence.",
          "is_bot": false,
          "headline": "chore: release v0.53.0 (#153)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T04:09:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9aaa38d2ab96868e76a6565fa81da972d465f9c6",
          "body": "Always emit version (ProductVersion, empty when unset) on mesh wait\ntext and --json output so CI scrapers record CLI build; peers status/dogfood.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits version product evidence (#152)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T04:06:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d72d76e1c33d81cabbb0ae7a9ccacba51e8e584",
          "body": "Minor release: mesh wait exit_code evidence.",
          "is_bot": false,
          "headline": "chore: release v0.52.0 (#151)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:54:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72ab369221f118efde483548e5069a606e2f610b",
          "body": "Always emit exit_code (0 when ok, 1 when not) in mesh wait text and\nJSON so CI scrapers record the intended process exit without shell $?.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits exit_code process exit evidence (#150)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:51:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ecbf2141db42fcab4401ad4080cb8f1ef216ab97",
          "body": "Minor release: dogfood exit_code evidence.",
          "is_bot": false,
          "headline": "chore: release v0.51.0 (#149)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:39:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79a3892e0fd0e3b791d2f7e7ece9f23aa6e67d45",
          "body": "Always emit exit_code (0 when ok, 1 when not) in dogfood text/JSON\nreports so CI scrapers record intended process exit without shell $?.\ncmdMeshDogfood returns rep.ExitCode (equivalent to prior !OK → 1).",
          "is_bot": false,
          "headline": "feat(dogfood): always emit exit_code evidence (#148)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:34:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "810a000b8b0f80e7fab4fb7cbd1affc4dab436d4",
          "body": "Minor release: mesh status exit_code evidence.",
          "is_bot": false,
          "headline": "chore: release v0.50.0 (#147)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:25:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c6864c27bdcd2d4bc623659b955db631eceede1",
          "body": "Always emit exit_code (int) in mesh status text and JSON: the process\nexit MeshStatusExitCode(strict, result) would return (0 fail-open /\nnon-err; 1 only when --strict and result=err) so CI scrapers record\nintended exit without shell $?.",
          "is_bot": false,
          "headline": "feat: mesh status always-emits exit_code process exit evidence (#146)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:19:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb37e3c7fd56834fe4afdf47bd0a737db322d83d",
          "body": "Minor release: mesh status strict evidence.",
          "is_bot": false,
          "headline": "chore: release v0.49.0 (#145)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T03:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d65ec429679a2da1b32d289cb53f385708c14c77",
          "body": "Always emit configured --strict (bool) on mesh status text and JSON so\nCI scrapers record whether result=err would exit 1 without re-parsing flags.",
          "is_bot": false,
          "headline": "feat: mesh status always-emits strict exit-gate evidence (#144)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T02:59:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b02e72d3edc2ab7623cebd72d666c96b33253c93",
          "body": "Minor release: dogfood wait_ready_attempts evidence.",
          "is_bot": false,
          "headline": "chore: release v0.48.0 (#143)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T02:46:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6481473f3e9a0e7554b28dfa321ca4353a454cde",
          "body": "Always emit top-level wait_ready_attempts (WaitReady probe cycle count)\nin text and JSON dogfood reports so CI can record Health/Ready loop\ncounts without scraping step detail. 0 when wait budget off / step not\nrun; actual count on success or soft/strict fail. Uses WaitReadyAttempts\nAPI and optional attempts=N in wait_ready PASS detail.",
          "is_bot": false,
          "headline": "feat: dogfood always-emit wait_ready_attempts probe cycles (#142)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-21T02:43:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e6c72f4e6df4c6dc53d9329d93a1b948a51446a",
          "body": "Minor release: mesh wait attempts evidence for CI scrapers without re-parsing logs.",
          "is_bot": false,
          "headline": "chore: release v0.47.0 (#141)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T17:28:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "009b4fd9e96e7da3673d539d27d8c518cf373ddc",
          "body": "WaitReadyAttempts counts each Health/Ready probe loop; MeshWaitEvidence\nand text/JSON formatters always emit attempts for CI scrapers.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits attempts probe cycle count (#140)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T17:24:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79497911db3d37306f3f1240b55f8eb51a00db02",
          "body": "Minor release: dogfood wait_ready_result evidence for CI scrapers without scraping the steps array.",
          "is_bot": false,
          "headline": "chore: release v0.46.0 (#139)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T17:12:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "127478aef3e285241667a59a6846b9a3ce4e96d3",
          "body": "Always emit top-level wait_ready_result (off|ok|err|skip) in text and\nJSON dogfood reports so CI can record wait_ready step outcome without\nscraping the steps array. off when WaitReady budget is 0 / step not run.",
          "is_bot": false,
          "headline": "feat: dogfood always-emit wait_ready_result for CI scrapers (#138)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T17:06:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c654d86b64a021a897eb56bbb3967a699623080",
          "body": "Minor release: dogfood wait_ready_interval_ms and wait_require_health evidence for CI scrapers without re-parsing WaitReady flags.",
          "is_bot": false,
          "headline": "chore: release v0.45.0",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T16:50:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38f6c594c0d037e638a36168fbf39e0057bae164",
          "body": "… (#136)\n\nAlways emit configured WaitReady poll interval (effective ms; 0 when off,\ndefault 500 when wait on and interval unset) and WaitRequireHealth bool in\ndogfood text/JSON reports so CI scrapers record preflight knobs without\nre-parsing flags.",
          "is_bot": false,
          "headline": "feat: dogfood wait_ready_interval_ms and wait_require_health evidence…",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T16:47:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f778ee95f06cbf44ccde0fac1edaeaf17e58da30",
          "body": "* chore: release v0.44.0\n\nMesh wait timeout_ms and interval_ms evidence.\n\n* chore: drop accidental local iomesh binary from release branch\n\n* chore: gitignore root-level iomesh binary artifact",
          "is_bot": false,
          "headline": "chore: release v0.44.0 (#135)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T16:35:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2760f2701eff836b7405cb3b137123da78c040b2",
          "body": "* feat: always emit timeout_ms and interval_ms on mesh wait\n\nMesh wait text/JSON results now include configured WaitReady budget\n(timeout_ms) and poll interval (interval_ms) via MeshWaitEvidence so\nCI scrapers record preflight knobs without re-parsing flags.\n\n* fix: mesh wait exit path use ev.OK not undefined ok",
          "is_bot": false,
          "headline": "feat: mesh wait timeout_ms and interval_ms evidence (#134)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T16:33:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f6d247aa93c31dc531d08917f451afc30e1f91f",
          "body": "Mesh wait always-emits require_health in text/JSON.",
          "is_bot": false,
          "headline": "chore: release v0.43.0 (#133)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T16:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f07b3eb49e4df2c0ed57915b275a8d9122bc331",
          "body": "Always include require_health boolean in FormatMeshWaitResult and\nFormatMeshWaitResultJSON so CI scrapers record the Health gate without\nre-parsing flags. Wire mesh wait CLI; update tests and docs.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits require_health in text and JSON (#132)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T16:16:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f35d62b4e7bb581edbca740fe160343ef907a7c",
          "body": "Mesh wait elapsed_ms and optional --json.",
          "is_bot": false,
          "headline": "chore: release v0.42.0 (#131)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T15:01:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df08f92b5db076d2eb3cd9c7385bd6785084f1a3",
          "body": "Operator preflight WaitReady wall time for CI evidence on PASS/FAIL.",
          "is_bot": false,
          "headline": "feat: mesh wait always-emits elapsed_ms + optional --json (#130)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:59:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4c75b0f638833c0322197bb2cc7cd9e14290f1b",
          "body": "Mesh status --strict exits 1 when result=err.",
          "is_bot": false,
          "headline": "chore: release v0.41.0 (#129)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:48:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c5d83930673bb49c9fccf6b5695afd7fbc5950b",
          "body": "Default remains fail-open (exit 0 on probe failures). With --strict,\nexit 1 only when result is err; skipped (mesh disabled) and partial\nstay 0. Pure helper MeshStatusExitCode unit-tested.",
          "is_bot": false,
          "headline": "feat: mesh status --strict exit gate on aggregate result=err (#128)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:46:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea4de20382bc84b25e59c4f5fb0c48b36363f4ae",
          "body": "Mesh status aggregate result field.",
          "is_bot": false,
          "headline": "chore: release v0.40.0 (#127)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:35:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "802e00f73b6f60e8800e1339b558d43f71cbf387",
          "body": "JSON/text mesh status always emit result (ok|err|skipped|partial)\nfrom AggregateProbeResult(health, ready) for operator/CI gating.",
          "is_bot": false,
          "headline": "feat: mesh status always-emits aggregate result from health/ready (#126)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:33:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18ab833af1fe68f366e53e635ce5f0a8f290349c",
          "body": "Mesh status duration_ms wall-clock.",
          "is_bot": false,
          "headline": "chore: release v0.39.0 (#125)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:23:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4886fe5f7fd2f7f6c8d1c18a58f53a707086173c",
          "body": "Wall-clock for the Health+Ready probe path on MeshStatusSnapshot\n(duration_ms). Always emitted in JSON/text; 0 when mesh disabled or\nprobes skipped. Docs and tests updated.",
          "is_bot": false,
          "headline": "feat: mesh status always-emits duration_ms probe-path latency (#124)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T14:21:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "939a00a03b070e144b2a29d3588fdaef1d2be3a0",
          "body": "Dogfood kv_list_ms list-keys path latency.",
          "is_bot": false,
          "headline": "chore: release v0.38.0 (#123)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:49:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2dd8f7a5290e47d2f0564e7300e131987d82a101",
          "body": "Time only the KVListKeys call into top-level kv_list_ms (0 when probe\nunset / list not run). kv_ms remains full step latency (ensure + list).\nWire JSON/text report, docs, and tests.",
          "is_bot": false,
          "headline": "feat: dogfood always-emits kv_list_ms for KVListKeys latency (#122)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:47:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c29fc53242bd246857c5e563e5f9c36c1e7df9d",
          "body": "Dogfood kv_ensure_ms ensure-path latency.",
          "is_bot": false,
          "headline": "chore: release v0.37.0 (#121)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:37:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a582d1267c4929b5589d246ea0cf05b04ba32eb0",
          "body": "Always emit top-level kv_ensure_ms for KVCreateBucket ensure latency\n(ms). Distinct from kv_ms full-step latency; 0 when ensure off, kv\nprobe unset, or ensure not attempted.",
          "is_bot": false,
          "headline": "feat(dogfood): emit kv_ensure_ms ensure-path latency (#120)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:35:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f0c892bf31749336eefb79065902b6878381139",
          "body": "Mesh status health_ms/ready_ms probe latencies.",
          "is_bot": false,
          "headline": "chore: release v0.36.0 (#119)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:25:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d681e1e75ab7c92a40b20c55fa133697ec99259f",
          "body": "Time one-shot Health/Ready probes in `iomesh mesh status` and always\ninclude latencies in JSON/text (0 when mesh disabled or skipped) for\noperator/CI evidence. Extract pure MeshStatusSnapshot format helpers\nwith unit tests.",
          "is_bot": false,
          "headline": "feat(mesh): emit health_ms/ready_ms on mesh status (#118)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:23:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96d099c994067367148b9778c4472c71d8d1e14c",
          "body": "Dogfood soft consumer delete probe and --consumer-delete.",
          "is_bot": false,
          "headline": "chore: release v0.35.0 (#117)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:13:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a56252155dadba5b58edbbcff4513d88da179987",
          "body": "Add DogfoodOptions.ConsumerDelete / CLI --consumer-delete for best-effort\nDeleteConsumer after successful create (and optional fetch) in the consumer\nstep. Soft fail-open unless --strict. Always emit consumer_delete_probed and\nconsumer_delete_ok for CI evidence.",
          "is_bot": false,
          "headline": "feat(dogfood): soft optional consumer delete cleanup (#116)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T10:11:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47b95d4088449b05ec7ea5c274e0de9d74aea369",
          "body": "Mesh consumer DeleteConsumer API and CLI.",
          "is_bot": false,
          "headline": "chore: release v0.34.0 (#115)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T06:27:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98be4eed238b3deba60d06cfaa75e155f6800bf0",
          "body": "Wire parity with SDK DeleteConsumer: DELETE /v1/streams/{stream}/consumers/{name}\n(path-escaped; 204/2xx success), tests, and `iomesh mesh consumer delete --yes`.",
          "is_bot": false,
          "headline": "feat(mesh): add DeleteConsumer lean API and CLI delete (#114)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T06:26:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a36bc5e02155002f59d1b7d46c691c127b66404",
          "body": "Dogfood steps_pass/fail/skip top-level counts.",
          "is_bot": false,
          "headline": "chore: release v0.33.0 (#113)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T06:15:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e578b5aa9c793640537e31afb7d5343a60e2a2c",
          "body": "Always-emit step tallies on DogfoodReport for CI greps without\nscraping Summary or the steps array. Mesh-disabled early return\nsets steps_skip=1 for the single enabled SKIP step.",
          "is_bot": false,
          "headline": "feat(dogfood): expose top-level steps_pass/fail/skip counts (#112)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T06:13:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94f4b13e36f343c016270df77b70729a1ab8a107",
          "body": "Dogfood wait_ready_elapsed_ms step latency.",
          "is_bot": false,
          "headline": "chore: release v0.32.0 (#111)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T06:04:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d8c156c639323ea4cf40b36d480a64243dc956d",
          "body": "Add WaitReadyElapsedMS (wait_ready_elapsed_ms) for actual wait_ready\nstep wall time, distinct from wait_ready_ms configured budget. Always\nemitted (0 when step skipped/absent or mesh disabled).",
          "is_bot": false,
          "headline": "feat(dogfood): emit wait_ready_elapsed_ms step latency (#110)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T06:02:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dd231cf8af57a76fc15913c5e25e17e3c9d4b83",
          "body": "Dogfood consumer_ms and kv_ms step latencies.",
          "is_bot": false,
          "headline": "chore: release v0.31.0 (#108)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T05:47:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c8a089256edb6df65fface59161539dda0121ae",
          "body": "Always emit top-level consumer_ms / kv_ms (0 when skipped/absent),\nmatching emit_ms / llm_meter_ms pattern for CI-stable latency evidence.",
          "is_bot": false,
          "headline": "feat: dogfood consumer_ms and kv_ms step latencies (#107)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T05:45:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15970599f785ccc8c01ba1818ebce892b54f70fa",
          "body": "Dogfood llm_meter/pub/memory step latencies.",
          "is_bot": false,
          "headline": "chore: release v0.30.0 (#106)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T04:08:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "765b37f11f959c931fc55b92e5841abc05f71a04",
          "body": "Always emit top-level llm_meter_ms, pub_ms, memory_ingest_ms,\nmemory_recall_ms, and memory_retrieve_ms (0 when skipped/absent),\nmatching the emit_ms/policy_ms pattern for CI latency greps.",
          "is_bot": false,
          "headline": "feat(mesh): dogfood llm_meter/pub/memory step latencies (#105)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-20T04:06:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3f9b5ea644233fc508dfd95b49b7b040855dd6c",
          "body": "Dogfood emit_ms/policy_ms/duration_ms and disabled StatusLine version.",
          "is_bot": false,
          "headline": "chore: release v0.29.0 (#104)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:51:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79501e62db16fd75e9408e897aee80f1d3e5a8ff",
          "body": "…Line version (#103)\n\nExtend dogfood report with emit and policy step latencies plus wall-clock\nduration_ms. Surface ProductVersion on StatusLine when mesh is disabled so\nslash /mesh always shows version when set.",
          "is_bot": false,
          "headline": "feat(mesh): dogfood emit_ms/policy_ms/duration_ms and disabled Status…",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:49:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41f2dbb33c11cb6739298a92618e2b7d8ebdae7d",
          "body": "Minor release: dogfood step latencies and StatusLine version.",
          "is_bot": false,
          "headline": "chore: release v0.28.0 (#102)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:42:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c41c88ccc6272695dc6276e22b08b107929e67cb",
          "body": null,
          "is_bot": false,
          "headline": "feat(mesh): dogfood step latencies and StatusLine version",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:38:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d72920c0f047508796e80293a28df9ec105efaeb",
          "body": "Minor release: dogfood version and health/ready latency fields.",
          "is_bot": false,
          "headline": "chore: release v0.27.0 (#100)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:30:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0af031c63980d9da5720212e3c10dccac0cb5df",
          "body": "Always emit top-level version (from DogfoodOptions.Version / CLI binary),\nhealth_ms, and ready_ms for stage CI evidence without scraping step detail.",
          "is_bot": false,
          "headline": "feat(mesh): dogfood version and health/ready latency fields",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:28:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55a2b5a81c666883fafb1974090a97c48a591b60",
          "body": "Minor release: dogfood consumer identity and richer mesh status.",
          "is_bot": false,
          "headline": "chore: release v0.26.0 (#98)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:18:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b086c4a6f10237d2e3c0b1a307e4f7c6c57cfe56",
          "body": "* feat(mesh): dogfood consumer identity and richer mesh status\n\nEmit consumer_stream/name/filter when the soft consumer probe is configured,\nand surface version plus policy/catalog/context plane flags on mesh status.\n\n* style: gofmt dogfood.go",
          "is_bot": false,
          "headline": "feat(mesh): dogfood consumer identity and richer mesh status (#97)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T23:17:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9c66f7ce6b29049d24d4f4d2da1937c53847381",
          "body": "Minor release: soft dogfood consumer create and fetch probe.",
          "is_bot": false,
          "headline": "chore: release v0.25.0 (#96)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T22:38:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f3ba833e38825f8223ecfddf29664ddffe877b5",
          "body": null,
          "is_bot": false,
          "headline": "feat(mesh): soft dogfood consumer create and fetch probe",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T22:37:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "548341efa2cb3addcf0952d29a3c81499ba8a01b",
          "body": "Minor release: consumer ack and nack CLI.",
          "is_bot": false,
          "headline": "chore: release v0.24.0 (#94)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T22:30:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dadee4c25e007f28f1458bc90ece2dd175e2a526",
          "body": "Lean ConsumerAck/ConsumerNack (POST .../ack|nack, body seqs) with\noptional ack_floor decode, CLI under mesh consumer, and httptest coverage.",
          "is_bot": false,
          "headline": "feat(mesh): consumer ack and nack CLI (#93)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T22:29:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca2176c43c0cd3d92112142fb2e722e3f9111cee",
          "body": "Minor release: consumer create CLI and soft dogfood pub probe.",
          "is_bot": false,
          "headline": "chore: release v0.23.0 (#92)",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T22:24:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6ba6ea7213d5a8f12564d131d72305ad416c086",
          "body": null,
          "is_bot": false,
          "headline": "feat(mesh): consumer create CLI and soft dogfood pub probe",
          "author_name": "Jin",
          "author_login": "iomesh-jin",
          "committed_at": "2026-07-19T22:23:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 71,
      "commits_last_year": 190,
      "latest_release_at": "2026-07-23T05:35:28Z",
      "latest_release_tag": "v0.70.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 2,
      "days_since_latest_release": 2,
      "mean_days_between_releases": 0.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/iome-sh/iomesh-tui",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/iome-sh/iomesh-tui",
          "is_deprecated": false,
          "latest_version": "v0.70.0",
          "repository_url": "https://github.com/iome-sh/iomesh-tui",
          "versions_count": 71,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-23T05:33:38Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 2
        }
      ]
    },
    "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": [],
      "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": 174818,
      "source_files_sampled": 97,
      "oversized_source_files": 3,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.38.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5024"
            ],
            "fixed_version": "0.44.0",
            "advisory_count": 1,
            "oldest_advisory_days": 63
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.3.8",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5970"
            ],
            "fixed_version": "0.39.0",
            "advisory_count": 1,
            "oldest_advisory_days": 10
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "unknown": 2
        },
        "advisory_count": 2,
        "affected_count": 2,
        "assessed_count": 26,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/charmbracelet/bubbles",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.0"
        },
        {
          "name": "github.com/charmbracelet/bubbletea",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.3.10"
        },
        {
          "name": "github.com/charmbracelet/lipgloss",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.0"
        },
        {
          "name": "github.com/coder/websocket",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.8.15"
        },
        {
          "name": "github.com/pelletier/go-toml/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.4.3"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "github.com/charmbracelet/bubbles",
            "direct": true,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/bubbletea",
            "direct": true,
            "version": "v1.3.10",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/lipgloss",
            "direct": true,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/coder/websocket",
            "direct": true,
            "version": "v1.8.15",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pelletier/go-toml/v2",
            "direct": true,
            "version": "v2.4.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/atotto/clipboard",
            "direct": false,
            "version": "v0.1.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aymanbagabas/go-osc52/v2",
            "direct": false,
            "version": "v2.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/colorprofile",
            "direct": false,
            "version": "v0.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/ansi",
            "direct": false,
            "version": "v0.11.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/cellbuf",
            "direct": false,
            "version": "v0.0.15",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/term",
            "direct": false,
            "version": "v0.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/displaywidth",
            "direct": false,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/stringish",
            "direct": false,
            "version": "v0.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/uax29/v2",
            "direct": false,
            "version": "v2.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/erikgeiser/coninput",
            "direct": false,
            "version": "v0.0.0-20211004153227-1c3628e74d0f",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lucasb-eyer/go-colorful",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-isatty",
            "direct": false,
            "version": "v0.0.20",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-localereader",
            "direct": false,
            "version": "v0.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-runewidth",
            "direct": false,
            "version": "v0.0.19",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/ansi",
            "direct": false,
            "version": "v0.0.0-20230316100256-276c6243b2f6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/cancelreader",
            "direct": false,
            "version": "v0.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/termenv",
            "direct": false,
            "version": "v0.16.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rivo/uniseg",
            "direct": false,
            "version": "v0.4.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xo/terminfo",
            "direct": false,
            "version": "v0.0.0-20220910002029-abceb7e1c41e",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": false,
            "version": "v0.38.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.3.8",
            "ecosystem": "go"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 26,
        "direct_count": 5,
        "indirect_count": 21
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 189,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 1
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "iomesh-jin",
          "commits": 188,
          "avatar_url": "https://avatars.githubusercontent.com/u/296309561?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "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": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/29 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": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "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": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 8,
            "reason": "5 out of the last 5 releases have a total of 5 signed artifacts.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 8,
            "reason": "2 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "8c4702c3b5b397c1a47a14a64919227387a65c48",
        "ran_at": "2026-07-25T09:36:07Z",
        "aggregate_score": 5.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-25T04:10:30Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-25T04:09:06Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/iome-sh/iomesh-tui",
    "host": "github.com",
    "name": "iomesh-tui",
    "owner": "iome-sh"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 61,
      "inputs": {
        "security": 64,
        "vitality": 72,
        "community": 43,
        "governance": 50,
        "engineering": 77
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 72,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "commits_last_year": 190,
              "human_commit_share": 0.99,
              "days_since_last_push": 0,
              "active_weeks_last_year": 2
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "2/52 weeks with commits",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "190 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 190
                    }
                  }
                ],
                "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": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "releases_count": 71,
              "latest_release_tag": "v0.70.0",
              "releases_from_tags": false,
              "days_since_latest_release": 2,
              "mean_days_between_releases": 0.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "71 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 71
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "5 out of the last 5 releases have a total of 5 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": "at_risk",
        "name": "Community & Adoption",
        "value": 43,
        "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": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 50,
        "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": 71,
            "inputs": {
              "merged_prs": 189,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 1
            },
            "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": "189/190 decided PRs merged",
                "points": 38,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 189,
                      "decided": 190
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/29 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "followers": 0,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "iome-sh",
              "public_repos": 3,
              "account_age_days": 31
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of iome-sh",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "iome-sh"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "3 public repos, account ~0 yr old",
                "points": 4.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 3
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/iome-sh/iomesh-tui"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 2
            },
            "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 2 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "71 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 71
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 77,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "https://iome.sh",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://iome.sh",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 64,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 5.5
            },
            "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": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/29 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 dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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 detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "5 out of the last 5 releases have a total of 5 signed artifacts.",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "2 existing vulnerabilities detected",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 26 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 26
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 2,
              "affected_packages": 2,
              "assessed_packages": 26,
              "unassessed_packages": 0,
              "affected_by_severity": "unknown 2",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 26,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 64,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "99 of 99 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 99,
                      "sampled": 99
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0.01
            },
            "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "1 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 174818,
              "source_files_sampled": 97,
              "oversized_source_files": 3
            },
            "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": "3/97 source files over 60KB",
                "points": 53.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 97,
                      "oversized": 3
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "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": [],
  "report_type": "repository",
  "generated_at": "2026-07-25T09:36:23.929123Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/i/iome-sh/iomesh-tui.svg",
  "full_name": "iome-sh/iomesh-tui",
  "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.