Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-24 17:52 UTC

zommiommy / mem_dbg-rs

A trait + derive to recursively compute / print the memory usage of a data structure.

RustApache-2.0★ 43 Sterne⑂ 7 Forksseit Aug. 2023Auf GitHub ansehen ↗

zommiommy/mem_dbg-rs erreicht einen Gesundheitsindex von 65 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (84/100) ab, am schwächsten bei Security (52/100). Zuletzt vor 1 Tag aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

65
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.

65
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

Tommaso FontanaPersönliches Konto
40 Follower98 öffentliche Reposseit Jan. 2017

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
crates.iomem_dbg0.4.456.50625vor 1 Tagallocationdebugmemory
crates.iomem_dbg-derive0.3.456.39914vor 1 Tagallocationdebugmemory

Metriken nach Kategorie

Vitalität

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

84Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 1 Tagen
13.8/36Commit-Rhythmus — 20/52 Wochen mit Commits
18/18Commit-Volumen — 287 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year287
human_commit_share1
days_since_last_push1
active_weeks_last_year20
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 20 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 1 Tagen
19.8/27Release-Rhythmus — ein Release etwa alle 58,7 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count20
latest_release_tag0.4.4
releases_from_tagsnein
days_since_latest_release1
mean_days_between_releases58,7
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

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

59Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
26.3/60Stars — 43 Stars
6.5/25Forks — 7 Forks
0/15Watcher — 2 Watcher
Verwendete Eingangsdaten
forks7
stars43
watchers2
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (Apache-2.0)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
67.4/80Downloads pro Monat — 112.905 Downloads/Monat über crates
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesmem_dbg, mem_dbg-derive
dependents
ecosystemscrates
total_downloads805.676
monthly_downloads112.905
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

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

66Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
10.7/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 52 % der Commits
12.2/13.5Breite der Beitragenden — 9 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 5 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor1
contributors_sampled9
top_contributor_share0,523
Wie die Bewertung erfolgt
37.4/46.8Issue-Lösungsquote — 80 % der Issues geschlossen
33.2/38.3PR-Annahme — 33/38 entschiedene PRs gemergt
3/15OpenSSF Scorecard: Code-Review — Found 4/16 approved changesets -- score normalized to 2
Verwendete Eingangsdaten
merged_prs33
open_issues4
closed_issues16
issue_closed_ratio0,8
closed_unmerged_prs5
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
11.6/25Reichweite des Inhabers — 40 Follower von zommiommy
25/25Kontohistorie — 98 öffentliche Repos, Kontoalter ca. 9 Jahre
Verwendete Eingangsdaten
followers40
owner_typeUser
is_verified
owner_loginzommiommy
public_repos98
account_age_days3.478
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 2 Paket(e) auf crates
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 1 Tagen
20/20Versionshistorie — 25 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesmem_dbg, mem_dbg-derive
ecosystemscrates
any_deprecatednein
min_days_since_publish1

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

61Mittel · 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 — 4 out of 4 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
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

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

52Mittel · 16 % des Gesamtindex

Sicherheitslage

45Gefährdet
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 — 4 out of 4 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
1.5/7.5Code-Review — Found 4/16 approved changesets -- score normalized to 2
2.5/2.5Contributors — project has 5 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — keine Daten
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4,5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
23.1/35Direkte Abhängigkeiten ohne bekannte Advisories — 3 betroffen: maligned 0.2.1 (moderate), get-size 0.1.4 (unknown), paste 1.0.15 (unknown)
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
32.7/40Keine offenen Advisories — 3 Paket(e) mit Advisory seit über 90 Tagen unbehandelt; ältestes vor 1.238 Tagen veröffentlicht
Verwendete Eingangsdaten
sourceosv
advisories4
affected_packages3
assessed_packages114
unassessed_packages0
affected_by_severitymoderate 1, unknown 2
direct_affected_packages3
Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von crates:mem_dbg@0.4.4 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 114 Paketen. 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.

54Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
36.8/40Lesbare Commit-Historie — 69 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,69
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — Cargo.toml, mem_dbg-derive/Cargo.toml, mem_dbg/Cargo.toml (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — Rust (statisch typisiert)
0/10Reproduzierbare Umgebung
10/10Belegte Agentenpraxis — 7 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfiles
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0,07
toolchain_manifestsCargo.toml, mem_dbg-derive/Cargo.toml, mem_dbg/Cargo.toml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Rust (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/57 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageRust
largest_source_bytes54.577
source_files_sampled57
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

43GitHub-Sterne
9Mitwirkende
287Commits, letzte 12 Monate
1Tage seit letztem Push
20Releases
1Bus-Faktor
4offene Issues
crates.ioPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 7 ⇿
0Sterne
7Forks
12Releases

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

1234567712024-052025-052026-05
Major 0Minor 2Patch 10

Jeder Punkt umfasst 2 Tage.

OpenSSF Scorecard 4.5 / 10
4.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-24 17:52 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests4 out of 4 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
2Code-ReviewFound 4/16 approved changesets -- score normalized to 2
10Contributorsproject has 5 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 12
RegistryPaketVersionsvorgabeManifest
crates.ioquote1mem_dbg-derive/Cargo.toml
crates.ioproc-macro21.0mem_dbg-derive/Cargo.toml
crates.iosyn2.0mem_dbg-derive/Cargo.toml
crates.iobitflags2.4.1mem_dbg/Cargo.toml
crates.iomem_dbg-derivemem_dbg/Cargo.toml
crates.iommap-rs0.7.0mem_dbg/Cargo.toml
crates.iohalf2.0.4mem_dbg/Cargo.toml
crates.iorand0.10.0mem_dbg/Cargo.toml
crates.iomaligned0.2.1mem_dbg/Cargo.toml
crates.iohashbrown0.16mem_dbg/Cargo.toml
crates.ioaliasable0.1.3mem_dbg/Cargo.toml
crates.iomaybe-dangling0.1.2mem_dbg/Cargo.toml
Alle Abhängigkeiten 20

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

RegistryPaketVersionBeziehung
crates.ioaliasabledirekt
crates.iobitflagsdirekt
crates.iohalfdirekt
crates.iohashbrowndirekt
crates.iomaligneddirekt
crates.iomaybe-danglingdirekt
crates.iommap-rsdirekt
crates.ioproc-macro2direkt
crates.ioquotedirekt
crates.ioranddirekt
crates.iosyndirekt
crates.ioanyhowindirekt
crates.iocapindirekt
crates.iocomfy-table7.2.1indirekt
crates.iocriterionindirekt
crates.iodeepsizeindirekt
crates.ioget-sizeindirekt
crates.ioinstaindirekt
crates.iopasteindirekt
crates.ioregexindirekt
Abhängigkeits-Advisories 3

Die Installation von crates:mem_dbg@0.4.4 zieht 114 Pakete nach sich, direkt und transitiv: 3 tragen bekannte Advisories, davon 3 direkte Abhängigkeiten.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
maligned0.2.1direktmittel2
get-size0.1.4direktunbekannt1
paste1.0.15direktunbekannt1

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": 968,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Rust": 377987
      },
      "pushed_at": "2026-07-23T14:23:27Z",
      "created_at": "2023-08-08T12:13:46Z",
      "owner_type": "User",
      "updated_at": "2026-07-23T14:23:05Z",
      "description": "A trait +  derive to recursively compute / print the memory usage of a data structure.  ",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Rust",
      "significant_languages": [
        "Rust"
      ]
    },
    "owner": {
      "blog": "zom.wtf",
      "name": "Tommaso Fontana",
      "type": "User",
      "login": "zommiommy",
      "company": null,
      "location": "Milan (Italy)",
      "followers": 40,
      "avatar_url": "https://avatars.githubusercontent.com/u/25117939?v=4",
      "created_at": "2017-01-14T11:04:34Z",
      "is_verified": null,
      "public_repos": 98,
      "account_age_days": 3478
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "0.4.4",
          "kind": "patch",
          "published_at": "2026-07-23T14:23:52Z"
        },
        {
          "tag": "0.4.3",
          "kind": "patch",
          "published_at": "2026-06-17T20:27:49Z"
        },
        {
          "tag": "0.4.2",
          "kind": "patch",
          "published_at": "2026-06-01T12:56:52Z"
        },
        {
          "tag": "0.4.1",
          "kind": "patch",
          "published_at": "2026-03-25T09:21:56Z"
        },
        {
          "tag": "0.4.0",
          "kind": "minor",
          "published_at": "2026-02-11T19:14:44Z"
        },
        {
          "tag": "0.3.4",
          "kind": "patch",
          "published_at": "2026-01-21T00:33:25Z"
        },
        {
          "tag": "0.3.3",
          "kind": "patch",
          "published_at": "2026-01-04T12:55:56Z"
        },
        {
          "tag": "0.3.2",
          "kind": "patch",
          "published_at": "2025-11-03T09:30:14Z"
        },
        {
          "tag": "0.3.1",
          "kind": "patch",
          "published_at": "2025-10-16T09:31:19Z"
        },
        {
          "tag": "0.3.0",
          "kind": "minor",
          "published_at": "2025-02-09T22:26:28Z"
        },
        {
          "tag": "0.2.5",
          "kind": "patch",
          "published_at": "2025-02-06T18:31:49Z"
        },
        {
          "tag": "0.2.4",
          "kind": "patch",
          "published_at": "2024-08-09T12:17:13Z"
        },
        {
          "tag": "0.2.3",
          "kind": "patch",
          "published_at": "2024-08-09T10:20:14Z"
        },
        {
          "tag": "0.2.2",
          "kind": "patch",
          "published_at": "2024-06-03T20:18:01Z"
        },
        {
          "tag": "0.2.1",
          "kind": "patch",
          "published_at": "2024-05-28T06:05:43Z"
        },
        {
          "tag": "0.2.0",
          "kind": "minor",
          "published_at": "2024-04-27T12:55:46Z"
        },
        {
          "tag": "0.1.8",
          "kind": "patch",
          "published_at": "2024-04-07T18:24:01Z"
        },
        {
          "tag": "0.1.7",
          "kind": "patch",
          "published_at": "2024-04-07T18:14:44Z"
        },
        {
          "tag": "0.1.6",
          "kind": "patch",
          "published_at": "2024-04-07T17:27:45Z"
        },
        {
          "tag": "0.1.4",
          "kind": "patch",
          "published_at": "2024-03-18T13:17:07Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2fc4d91e391ccd58c5e20d401f07709197042307",
          "body": null,
          "is_bot": false,
          "headline": "Updated change log",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-07-23T14:22:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a11e8a24f3c8aabd0308620b4fbe544fbe8b2e1",
          "body": "…re::io::cursor",
          "is_bot": false,
          "headline": "License is now MIT or Apache; fixed change from std::io::cursor to co…",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-07-23T14:22:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38436003093d9b1d4b9e2b9d0c24bcbc5f9d2bc5",
          "body": null,
          "is_bot": false,
          "headline": "Spacing/date",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T20:28:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3de8b588426aac9cebc3d7858bc1d3064aac71ef",
          "body": null,
          "is_bot": false,
          "headline": "Better error message",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T19:57:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d9d784a019ccd877c247629ca91496e313235bad",
          "body": "The per-field flat check emitted `const { …::FLAT_CHECK; }` with the `;`\ninside the block, making it a bare path statement that tripped the\n`path_statements` lint for every flat field (i.e. nearly every derived\ntype). Move the `;` outside the `const` block so the access is the\nblock's tail expression; the `must_use` warning for non-flat fields is\nunaffected.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix path_statements warning from flat-field check",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T19:55:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0325d3658f65353c75a44bcd0053176220007862",
          "body": "#[mem_size(flat)] on a type with a non-flat field now produces a\ncompile-time `unused_must_use` warning pointing at the offending field.\nA new #[must_use] marker `NonFlatField` is mapped from `Boolean` via a\n`FLAT_CHECK` const (False -> NonFlatField, True -> ()); the derive emits,\nper field, a disca\n[…]\nAlso deduplicate predicates in every generated where-clause, so a type\nused across several fields contributes its bound only once.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Warn on non-flat #[mem_size(flat)] fields; dedup derived where-clauses",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T17:57:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "43ac4db5d9d19d2f226ff49e7c78bd6199f70837",
          "body": "The 'mirror hashbrown table layout' fix regenerated only the x86_64\nsnapshots; the i686 (x86) and aarch64-linux variants, which are the only\nplatform snapshots actually exercised in CI (build-i686 and build-aarch64\nrun the snapshot tests; the x86_64 jobs skip them), were left stale.\n\nRegenerate them\n[…]\nn, run under qemu-i386\n    (default features, matching build-i686); also refreshes ref_dedup\n    snapshots that still carried the legacy insta 'assertion_line'\n    header and outdated tree connectors.",
          "is_bot": false,
          "headline": "test: regenerate i686 and aarch64-linux snapshots",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T16:26:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bcfd7f6ec253d6a4406285756a47393bf644064f",
          "body": null,
          "is_bot": false,
          "headline": "Predicate dedup",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T16:21:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7912d956d47a75b49f93bb3b1a3914b6716d9128",
          "body": null,
          "is_bot": false,
          "headline": "Regenerated insta",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T15:41:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d714d3acd694dbaea7522ca633a9017c2b097ee",
          "body": null,
          "is_bot": false,
          "headline": "Redistributed and gated audit tests",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T15:35:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88b71d343c9c4b8b94f6c27dcef7301afbba2468",
          "body": "The assertion ctrl_offset > bucket_bytes only held for GROUP_WIDTH == 16 (x86_64+SSE2), where [u8;3]*8 = 24 rounds up to 32. On aarch64 (GROUP_WIDTH 8) and the generic 4-byte group, 24 is already aligned so ctrl_offset == bucket_bytes and the test failed. Assert the round-up invariant instead (aligned, at-or-after the bucket data, minimal padding), which holds for every group width.",
          "is_bot": false,
          "headline": "test: make hash control-offset assertion platform-agnostic",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T15:23:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0019d863c971533c17c15d605bd895c954012754",
          "body": "Fix audited memory accounting and display issues",
          "is_bot": false,
          "headline": "Merge pull request #62 from zommiommy/fix/review-findings",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T15:05:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16ef2d8dbaf633849c7f53edf1b5b2a611a919d4",
          "body": null,
          "is_bot": false,
          "headline": "docs: correct maybe-dangling feature note",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87741a1384ab5e3d095f3d77285c266bbc138376",
          "body": null,
          "is_bot": false,
          "headline": "docs: state MemSize lower bound",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "158e54b34cfd001393e52efe32b0a2f685856c4c",
          "body": null,
          "is_bot": false,
          "headline": "fix: write stderr output completely",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebf11ac6091f37f22c873116df519d71f5f2c941",
          "body": null,
          "is_bot": false,
          "headline": "fix: keep followed pointer markers visible",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55b142cf063939700f229ea0871c8dfd9648c2ea",
          "body": null,
          "is_bot": false,
          "headline": "fix: render borrowed Cow references",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31c7a891ceea7cdb40977c19f1f6d4e5ff4a5ee6",
          "body": null,
          "is_bot": false,
          "headline": "fix: account guard targets as references",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e62a5c2047121b3c5ba5aeb8cbbc63e8abc80f8",
          "body": null,
          "is_bot": false,
          "headline": "fix: support alloc shared pointers",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f89199df00e08b2eb3098c10eef36c93b6a832a",
          "body": null,
          "is_bot": false,
          "headline": "fix: support empty enum derives",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03cf163598729a14ac181a9667a0fba95d12f502",
          "body": null,
          "is_bot": false,
          "headline": "fix: avoid derive enum binding collisions",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bd761d2d0689787edd9ee11c2d16ede6207c627",
          "body": null,
          "is_bot": false,
          "headline": "fix: preserve shared pointer allocations",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0766ddb6eb3a53a6795e72779f99d6f457b3189d",
          "body": null,
          "is_bot": false,
          "headline": "fix: mirror hashbrown table layout",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T14:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95c5158f540a459a190ec90c4f9a36574f65c3fa",
          "body": null,
          "is_bot": false,
          "headline": "fix: avoid blocking lock traversal",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T13:55:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db5d4f98a074ef5f297ad28913a169234ed2d4fd",
          "body": null,
          "is_bot": false,
          "headline": "fix: treat cell interiors as opaque",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-17T13:55:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5989b85cc2d4901435b45e09ae02de9bea6c9bc4",
          "body": null,
          "is_bot": false,
          "headline": "Documented limitation of thin pointers",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T10:44:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12972c56fa03bae58c00fd3f44df662a72a264af",
          "body": "Break followed-pointer cycles when computing mem_size",
          "is_bot": false,
          "headline": "Merge pull request #52 from zommiommy/followed-pointer-cycles",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T09:33:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba0e7f6f43aa4f5b0f0d2043cedaeeef657231d6",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into followed-pointer-cycles",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-17T09:32:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d2c6b9b5faddf1403481083a3e064f653feb26e",
          "body": "Render Option/Result payloads as labeled MemDbg children\n\n# Conflicts:\n#\tCHANGELOG.md",
          "is_bot": false,
          "headline": "Merge pull request #57 from zommiommy/option-result-memdbg",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-16T11:10:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "186a77bdc75cdbe4cac8f0cbf24d089533aecfc1",
          "body": "Break tuple field-offset ties by size in MemDbg",
          "is_bot": false,
          "headline": "Merge pull request #60 from zommiommy/tuple-zst-tiebreak",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-16T09:37:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a41fd57b398a7194acfac49f9cd934d0beee570",
          "body": "Make derive(MemDbg) expansion hygienic and allocation-free",
          "is_bot": false,
          "headline": "Merge pull request #56 from zommiommy/derive-hygiene",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-16T09:36:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0445a6630e0ffbb41399f2ea1ee8bf3d95b40fa",
          "body": "The PR accidentally committed a pending insta snapshot\n(test_all_types_mem_dbg_insta__default@aarch64-darwin.snap.new), which\nis a transient artifact from a failing snapshot run. Remove it and add\n*.snap.new to .gitignore so pending snapshots are never committed again.",
          "is_bot": false,
          "headline": "chore: drop committed insta .snap.new and gitignore the pattern",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-16T09:35:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "666700e16e5f292964b3bacb948ad03a556b104a",
          "body": "Implement network and time types via core, add their MemDbgImpl",
          "is_bot": false,
          "headline": "Merge pull request #59 from zommiommy/core-net-time",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-16T09:26:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "138855e7fdb8b2ca96653fe2e888bb3cec14e4af",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into tuple-zst-tiebreak",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-16T09:26:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71676ae56c6371b3166ca5a12d5b0303f5c5d68e",
          "body": "The network address types live in core::net (stable since 1.77, below\nthe crate MSRV) and Duration in core::time, so their MemSize impls are\nnow unconditional instead of std-gated; std re-exports the same types.\nInstant, SystemTime, and SystemTimeError remain std-only, as they are\nclock-backed.\n\nMor\n[…]\nmDbgImpl implementation, so a\nfield of one of these types made #[derive(MemDbg)] fail its bounds even\nunder std. They are now MemDbg leaf types.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Implement network and time types via core, add their MemDbgImpl",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-16T09:24:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "db5ee9be4bf4dd3105916bb91c12dc7b6af6ded6",
          "body": "Make Layout's MemDbgImpl available under no_std",
          "is_bot": false,
          "headline": "Merge pull request #58 from zommiommy/layout-no-std",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-13T21:10:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17ec4880b34d8853dc753d150fac26d422f684c3",
          "body": "The derive macro sorts (offset, size) since 0.4.1 so that ZSTs sharing\nan offset with a non-ZST field are not attributed spurious padding, but\nthe tuple MemDbgImpl was never updated and sorted by offset alone,\nleaving the attribution to the compiler's whims. Mirror the tie-break\n(plus the index as final tie-breaker, keeping the unstable sort\ndeterministic).\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Break tuple field-offset ties by size in MemDbg",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-11T16:01:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "37a955d661498cbeb72169d86406473769370017",
          "body": "The MemSize implementation for core::alloc::Layout is unconditional,\nbut MemDbgImpl was gated behind the std feature, so under no_std a\nLayout field made #[derive(MemDbg)] fail its bounds. Layout is a core\ntype; the implementation is now unconditional. Also fixes the stale\ncomment claiming Layout::align is unstable.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Make Layout's MemDbgImpl available under no_std",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-11T15:57:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2fa90d0abb870e797ee3acb8f6704860477bd72f",
          "body": "ControlFlow, Poll, Bound, and Reverse render their active payload as a\nlabeled child, but Option and Result - by far the most common sum\ntypes - had empty MemDbgImpl implementations and rendered nothing,\neven though MemSize counts the payload. They now render Some/Ok/Err\nchildren like the other sum \n[…]\nin regenerated with cargo insta; the other\narchitectures patched with a script validated byte-for-byte against\nthe insta-accepted darwin output.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Render Option/Result payloads as labeled MemDbg children",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-11T15:56:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8d3993b853e3973b1856f9ad54b85d719a9a14bf",
          "body": "The generated _mem_dbg_rec_on referenced Vec, vec!, String, Some, Ok,\nunreachable!, and prelude trait methods without qualification, so the\nderive failed to compile in no_std crates (and any module without the\nstandard prelude). The in-repo no_std tests did not catch this because\nintegration-test cr\n[…]\nndex as final tie-breaker so the unstable sort remains\ndeterministic. A no_implicit_prelude integration test guards against\nhygiene regressions.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Make derive(MemDbg) expansion hygienic and allocation-free",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-11T15:47:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "624315edc9a2b97ad519a18ff7337099d1be2c36",
          "body": null,
          "is_bot": false,
          "headline": "Break followed-pointer cycles when computing mem_size",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-06-03T07:27:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51b0efdeafc9861d1be35d3088b4e9ed871d190b",
          "body": null,
          "is_bot": false,
          "headline": "Cosmetic changes",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-02T18:19:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bacdc132a93f7653f3e98d603101f4b5290402c",
          "body": null,
          "is_bot": false,
          "headline": "Bumped version",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-02T16:36:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd11373469140885fbec36a6ec51f91cbebe8cd1",
          "body": "…thod; removed committed comparison file",
          "is_bot": false,
          "headline": "Fixed change log; fixed documentation of FlatType for new dispatch me…",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-02T16:33:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "784a1be0da561570c183cc755d07e57e279d6b8a",
          "body": "The optional-types snapshot test keyed its insta suffix on\n`std::env::consts::ARCH` and only shipped `@aarch64` snapshots, so it\nfailed on every other target (notably `x86_64`/`x86`) for lack of a\nbaseline. Mirror the suffix scheme used by `test_all_types_mem_dbg_insta`\n(`aarch64-linux`/`aarch64-darwin`/`<arch>`) and add the missing per-arch\nsnapshots: `x86_64`/`aarch64-{linux,darwin}` (64-bit, identical content)\nand `x86` (32-bit, generated under i686-unknown-linux-gnu).",
          "is_bot": false,
          "headline": "test: arch-specific snapshots for optional wrapper types",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5f711d338e77a9b832aa88e69c1df4cef2f65b5",
          "body": null,
          "is_bot": false,
          "headline": "Use criterion 0.8 for benchmarks",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99e500d1682cafb0ed80b5673104365ff5af06ac",
          "body": null,
          "is_bot": false,
          "headline": "Exclude benchmarks from the tarpaulin coverage run",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42c1d51c7c8381d225f82419d024feef9b583511",
          "body": null,
          "is_bot": false,
          "headline": "docs: record container size dispatch refactor in changelog",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f31adf5d936dce167c4efeae6e37ec3e22a22c6",
          "body": "`core::any::type_name` renders the atomic integer types as `Atomic<bool>`\non some toolchains and `AtomicBool` on others, which had left the\ncommitted snapshots split across both spellings (x86_64 and\naarch64-darwin on the generic form, x86 and aarch64-linux on the legacy\nform). Fold the generic spel\n[…]\ne\nsnapshot harness and converge every snapshot to it, so the all-types\nsnapshot test no longer depends on the toolchain's atomic rendering.\nOnly type-name strings change; reported sizes are identical.",
          "is_bot": false,
          "headline": "test: canonicalize atomic type names in all-types snapshots",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9fa412836b4ceb90b0146a1ea5ebb335524119fd",
          "body": "Add focused size assertions for the map flat-combination paths that the\nsingle-pass mem_size computation reshaped: HashMap<u32, String> (flat\nkey, heap value), HashMap<String, String> (heap key and value),\nBTreeMap<String, u8> (heap key, flat value), and BTreeMap<String,\nString> (heap key and value). These were previously exercised only by\nthe monolithic all-types snapshot and the tolerance-based correctness\ntest.",
          "is_bot": false,
          "headline": "test: cover flat/non-flat HashMap and BTreeMap key/value size paths",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8894a58cdc3f84e60961588dd3a4314bda24e2c3",
          "body": "Add HashMap<String,String> and BTreeMap<String,String> to the non_flat bench group so the (non-flat, non-flat) map path that changed is exercised.",
          "is_bot": false,
          "headline": "test: benchmark non-flat key/value maps",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7660c96f50af7c60940aeb45b18e870bf480eb2",
          "body": "Maps with non-flat keys and values iterated keys() then values() (two container traversals). Fold both sides into one self.iter() pass via a shared map_heap_extras helper, using the identity key_storage + value_storage == sum_entries(heap_extras) + len*(size_of::<K>()+size_of::<V>()). Output is byte-identical to the prior two-pass code, verified by regenerating and diffing all insta snapshots against main.",
          "is_bot": false,
          "headline": "perf: compute HashMap/BTreeMap mem_size in a single pass",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50ee73e99671fffc6a7c428f40b5394ff2ef9098",
          "body": null,
          "is_bot": false,
          "headline": "Replace MemSizeHelper dispatch with a FlatType value branch",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-06-02T15:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b873736c874af30f0e8be9363dc41ab9e865c8d",
          "body": null,
          "is_bot": false,
          "headline": "Pre-release review",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T12:41:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e202d9962b806a15b06619d3e64dff0066972bf2",
          "body": null,
          "is_bot": false,
          "headline": "aarch64-darwin instas",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T12:07:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7337e156f902cb83f48e009e35458f0bd4f5f11",
          "body": "When rebasing onto main's Rust 1.96 snapshot regeneration, git's rename\ndetection folded main's core::sync::atomic::Atomic<T> renaming (from the\nretired @aarch64 snapshots) into the migrated @aarch64-linux files. The\naarch64 CI runner (ubuntu-24.04-arm, current stable) still renders the\nAtomicBool/AtomicUsize aliases, so restore that naming to keep build-aarch64\ngreen. The local-only x86_64 reference keeps the 1.96 Atomic<T> form used on\nmain.",
          "is_bot": false,
          "headline": "test: keep aarch64-linux all-types snapshots on AtomicBool naming",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46c1b8f02e623661eea4ffe35f785b32e6a59349",
          "body": null,
          "is_bot": false,
          "headline": "test: refresh x86 capacity snapshots",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13ab69557b0089c702f0acc70325e0617cdbd6b4",
          "body": null,
          "is_bot": false,
          "headline": "test: refresh aarch64-linux capacity snapshots",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7f2f6f6877b35859bf86215871eec772c0a6eb6",
          "body": null,
          "is_bot": false,
          "headline": "test: normalize all-types snapshot type names",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6daf63fb0c17647d2b0823d79853ba7e26ed2515",
          "body": null,
          "is_bot": false,
          "headline": "test: cover LinkedList all-types snapshots",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47b874a8927fc7d0bd2afa6ee90cfa0e10b49210",
          "body": null,
          "is_bot": false,
          "headline": "docs: clarify LinkedList node mirror",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31b67458ccb65e2794a423c7edd468e90fd11e5e",
          "body": "Available under both no_std+alloc and std. Per-node accounting uses\na layout-equivalent mirror of std's private Node<T>, re-exported as\ntests can compute expected sizes against the same definition.\n\nA hand-rolled formula like 2 * size_of::<usize>() + size_of::<T>()\nmiscounts whenever align_of::<T>()\n[…]\n matches for any T. The same pattern is already used for\nRc<T> and Arc<T> (RcInner, ArcInner).\n\nLinkedList has no reserved spare capacity, so SizeFlags::CAPACITY\nreturns the same value as the default.",
          "is_bot": false,
          "headline": "Add MemSize/MemDbg implementations for LinkedList<T>",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-06-01T12:03:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4003556995207566e1cfbd591c705d84e92aabf6",
          "body": null,
          "is_bot": false,
          "headline": "Fixes for miri GitHub action",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T11:53:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31574b5789bcdc58585252ba738263aa9ef2a7fb",
          "body": null,
          "is_bot": false,
          "headline": "Bumped versions",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T11:30:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbd4f67cd43fb1fe9ce29e1a3c3b40be4856ef9c",
          "body": null,
          "is_bot": false,
          "headline": "GitHub action for MRSV 1.85",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T10:58:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7fb41648ce09f269dda6a52ec89b1347e99cbe62",
          "body": null,
          "is_bot": false,
          "headline": "Regenerated snapshot for x64_64 (Rust 1.96)",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T08:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3be1c09eee6eec9456e6f14ef67c230b00f4de09",
          "body": null,
          "is_bot": false,
          "headline": "Added tests for maybe_dangling and aliasable",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T08:17:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f9730fa01dd990d5fa82503bb5a0d4a32c5c495",
          "body": "…shot for 1.96 (atomic types are named through Atomic)",
          "is_bot": false,
          "headline": "Added crates maybe_dangling and aliasable; updated aarch64 insta snap…",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-06-01T07:51:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37bcdfb087351c603be37c38400a68fc235b7dbb",
          "body": null,
          "is_bot": false,
          "headline": "Fixed insta tests",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-05-15T14:08:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1718dd1a2c9b672b6a5bf2861263d27be7f5b06c",
          "body": null,
          "is_bot": false,
          "headline": "docs(changelog): cover unreleased changes",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T13:03:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae07232aac04163a92ecba509d2c40be2d5e4e8e",
          "body": "Runs on `ubuntu-24.04-arm` (free GitHub-hosted ARM64 runner for\npublic repos). Mirrors the `build-stable` matrix:\n\n- Build (default features)\n- Test default+full features (does NOT skip snapshots, so the\n  refreshed `@aarch64` snapshots are validated end-to-end on every\n  push)\n- Test no-default-fea\n[…]\ne-features matrix\n\nCatches arch-specific regressions like the 8-byte off-by-one in\n`test_hash_collections.rs` that was only visible on aarch64+NEON\n(hashbrown's `Group = uint8x8_t`, not `uint8x16_t`).",
          "is_bot": false,
          "headline": "ci: add aarch64-linux build/test job",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17a320089e4b2af5045ae5da55b830d2ec464af1",
          "body": "Regenerated by running the snapshot test under qemu-aarch64 user\nemulation:\n\n    docker run --platform linux/arm64 rust:latest \\\n        bash -c 'INSTA_UPDATE=always cargo test \\\n        --features std,derive,half,maligned,mmap-rs,rand \\\n        --test test_all_types_mem_dbg_insta'\n\nCaptures the sam\n[…]\nsizes shift under the tightened heuristic\n    (FILL = B + 1).\n\nThe previous `@aarch64` snapshots were stale (no maintainer with\naarch64 hardware had refreshed them). Now in sync with the other\narches.",
          "is_bot": false,
          "headline": "test: refresh @aarch64 snapshots for audit fixes",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "622b2956f129a330d201d8b4ef2334493ba6111e",
          "body": "Regenerated by running `cargo test --target i686-unknown-linux-gnu`\n(via the `rust:latest` Docker image with `gcc-multilib`, mirroring\nthe `build-i686` CI job) with `INSTA_UPDATE=always`. Captures the\nvisible deltas already applied to `@x86_64`:\n\n  - Range/Reverse/Bound/ControlFlow/Poll wrappers now\n[…]\n    labeled child fields.\n  - BTreeMap/BTreeSet sizes shift under the tightened heuristic\n    (FILL = B + 1).\n\nThe `@aarch64` snapshots remain stale and still need a refresh on an\nactual aarch64 host.",
          "is_bot": false,
          "headline": "test: refresh @x86 snapshots for audit fixes",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a1dc5ca0d602052d4ff032ca8523046663553fc7",
          "body": "The previous attempt to make these match `Vec`/`String`'s `len` /\n`capacity` flag gating (commit fc38630, since reverted) missed that\n`CAPACITY` is a semantic flag, not a syntactic one. It exists to expose\nallocator-chosen slack (geometric growth in `Vec`, load-factor policy in\n`HashMap`/`BTreeMap`); a buffered I/O type's allocation is taken\nverbatim from the constructor's argument, so there is no slack to\nexpose. Spell that out in the source so the next reader does not\nre-litigate the question.",
          "is_bot": false,
          "headline": "docs(impl_mem_size): document why BufReader/BufWriter ignore CAPACITY",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ada4ebc4eb4a17839b9407068c9ad270d2076046",
          "body": "… with labels\n\nThese wrappers all called `_mem_dbg_rec_on` directly on their inner\nfield. `_mem_dbg_rec_on` is the \"render the children of self\" hook -\nit does not print the field's own line, so the field label was lost.\nFor primitive Idx (e.g. `u32`), Range collapsed to a single line; for\nfields wi\n[…]\n`/`Poll`/`ControlFlow`: labels the active payload with the\n    variant name.\n\nSnapshots refreshed for x86_64; aarch64 and x86 snapshots will need a\nmatching INSTA_UPDATE=always run on those platforms.",
          "is_bot": false,
          "headline": "fix(impl_mem_dbg): render Range/Reverse/Bound/ControlFlow/Poll fields…",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2ec3119b581fa4eccf9f2d415e7ecfe558710676",
          "body": "`Mutex<T>::_mem_dbg_rec_on` returned `self.lock().unwrap_or_else(...)`,\nwhich is a `MutexGuard<T>` value, and called `_mem_dbg_rec_on` on it.\nMethod resolution picked `MutexGuard`'s own impl, which is gated on\n`DbgFlags::FOLLOW_REFS` and emits nothing under default flags. The\nresult: `Mutex<T>`'s ch\n[…]\nmitive ref),\nwhich has no MemDbgImpl override, so method resolution falls through\nto `T`'s impl.\n\nUse UFCS to dispatch directly on `<T as MemDbgImpl>` after locking,\nbypassing the guard impl entirely.",
          "is_bot": false,
          "headline": "fix(impl_mem_dbg): dispatch Mutex/RwLock children to T's impl directly",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "41a98fc18e13b5451657eb0b3672ff85c1440675",
          "body": "`OnceCell<T>::_mem_dbg_rec_on` called `self.get()._mem_dbg_rec_on(...)`,\nwhich dispatches on `Option<&T>` and hits the empty `Option` default.\nThe inner `T` was never traversed, so `mem_dbg` reported the OnceCell's\ninflated size with no breakdown - while `mem_size_rec` did recurse,\nproducing inconsistent output. Pattern-match on `self.get()` and forward\nto the inner `T`'s impl directly.",
          "is_bot": false,
          "headline": "fix(impl_mem_dbg): recurse into OnceCell payload under default flags",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2451753ea65826a74c207833522dc0f1d91d9da",
          "body": "Each tuple `_mem_dbg_rec_on` allocated a `Vec<(usize, usize)>` to\nsort fields by offset. The size is fixed at compile time per arity, so\nuse a stack array with one slot per field (no sentinel) and compute the\nlast field's padded size from `size_of::<Self>()` directly.\n\nDrops the per-call allocation entirely under `std`; under `no_std` the\n`vec` macro import is no longer needed.",
          "is_bot": false,
          "headline": "perf(impl_mem_dbg): build tuple field-offset table on the stack",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5af6510e011b198f8099a7e715ead472dd650507",
          "body": "The old `(len / B) * avg_node_size` formula dropped the root and any\nintermediate internal nodes whenever `len` was just above `CAPACITY`\n(11 with B=6), undercounting by ~50%. Walk the tree level-by-level\ninstead, summing `leaf_count` leaf nodes plus the geometric series of\ninternal-node counts abov\n[…]\nB real / 1.96 GB reported); the `B` choice\novershoots by ~22% at that scale.\n\nSnapshots refreshed for x86_64; aarch64 and x86 snapshots will need a\nmatching INSTA_UPDATE=always run on those platforms.",
          "is_bot": false,
          "headline": "perf(impl_mem_size): tighten BTreeMap/BTreeSet size heuristic",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fcdc8f3dff01093211e1d872921267a0057be245",
          "body": "* RefCell silently undercounts when a mutable borrow is active; the\n  MemDbg side surfaces `<mutably borrowed>` but the size side does not.\n  Document the asymmetry.\n* Cell and UnsafeCell briefly read the inner value through a raw\n  pointer; for non-flat `T`, a reentrant mutation via the same cell\n  can race against the read. Spell out that the result is unspecified\n  but never UB.",
          "is_bot": false,
          "headline": "docs(impl_mem_size): clarify Cell/UnsafeCell/RefCell mem_size caveats",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b39bc4ac8d74eb69b6019b48a5bde80a0855bb2a",
          "body": "`Mmap` and `MmapMut` own their mapped region (it's released on drop),\nso their bytes are part of the value's footprint, not a followable\nindirection. Counting them only under `FOLLOW_REFS` was a category\nerror: `Mmap` is not a reference, and there is no notion of unused\ncapacity for an mmap, so `CAPACITY` would be a no-op too. Always\ninclude `self.len()` and update the test accordingly.",
          "is_bot": false,
          "headline": "fix(impl_mem_size): always count owned mmap_rs bytes",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e1cbf7a60bcd33a03fde21e54abf83313c608c3",
          "body": "A hand-written MemDbgImpl that passes a padded_size smaller than\nsize_of_val(self) used to underflow the padding computation, panicking\nin debug builds. Saturate so the worst case is a missing [NB] suffix\nrather than an abort.",
          "is_bot": false,
          "headline": "fix(lib): saturate padded_size subtraction in mem_dbg trace",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:52:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e7b07e2e9911734208878bd19d7aaccb3a84948",
          "body": "…_correctness claim\n\nNo-op clean-up on the GROUP_WIDTH comments introduced in 58b42bd:\n\n- Replace em-dash with ASCII so the comments match the rest of the\n  codebase (`grep -rn '—' mem_dbg/src mem_dbg/tests` is empty).\n- Reword the impl-side cross-reference: byte-exact ground truth lives\n  in test_h\n[…]\nification of the GW choice.\n- Add trailing commas in impl_mem_size.rs's cfg arms so the impl and\n  test gates are character-identical mirrors.\n\nTests pass on x86_64 and aarch64 (qemu-user via Docker).",
          "is_bot": false,
          "headline": "style(hash-collections): ASCII comments, trailing commas, soften test…",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T12:02:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "58b42bd9545e5ac551f38fac7fef6f785f47e113",
          "body": "test_hash_collections predicted GW=16 on aarch64+NEON, but stdlib's\nvendored hashbrown does not enable the NEON SIMD probe and allocates\nwith 8-byte groups everywhere except SSE2 x86. Verified end-to-end by\ntest_correctness against the cap allocator. Also clarify the matching\ncomment in impl_mem_size.rs.",
          "is_bot": false,
          "headline": "fix(tests): align aarch64 GROUP_WIDTH expectation with stdlib hashbrown",
          "author_name": "Al Johri",
          "author_login": "AlJohri",
          "committed_at": "2026-05-15T12:00:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d0dc6ddd4502efef8bdea47a85720df228529a6",
          "body": "The previous smoke test only checked that `mem_dbg_depth_on` returned\nOk and threw the output away, so any regression that produced valid but\nsemantically-wrong output (missing type name, wrong total) would pass\nsilently. Assert that the rendered output contains both the type name\nand the computed total size at every tested depth.",
          "is_bot": false,
          "headline": "test: assert content in BinaryHeap mem_dbg test",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T09:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6229cf7aa16e49c34628b42f67345a7937efb08",
          "body": "Add `binary_heap: BinaryHeap<u32>` and\n`binary_heap_nested: BinaryHeap<Vec<i32>>` fields to AllTypesStruct and\nrefresh the per-arch snapshots (@aarch64 via qemu-user, @x86 via\ncross-compile to i686, @x86_64 natively) so the new impl is exercised\nacross every flag/depth combination.",
          "is_bot": false,
          "headline": "test(snapshots): cover BinaryHeap in AllTypesStruct matrix",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T09:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e141cf513ef70a230273f83272c17727eab9767",
          "body": "`alloc::collections::BinaryHeap` is stable, so gating BinaryHeap impls\nbehind `feature = \"std\"` (unlike Vec and VecDeque) needlessly denied\nthem to no_std+alloc users. Mirror the VecDeque dual-import pattern in\nboth impl_mem_size.rs and impl_mem_dbg.rs and drop the std cfg attrs.",
          "is_bot": false,
          "headline": "fix(impl): expose BinaryHeap impls under no_std+alloc",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-15T09:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6876e703d33d2fdabf8e7fc1842b17ba36489131",
          "body": null,
          "is_bot": false,
          "headline": "Add BinaryHeap trait impls",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-05-15T09:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e771af8134de1767781e41bd8ad938078619802",
          "body": null,
          "is_bot": false,
          "headline": "Reformatted",
          "author_name": "Sebastiano Vigna",
          "author_login": "vigna",
          "committed_at": "2026-05-07T16:10:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f5e2633b05103e0f1a2eb3bb9408f01a8d5b1392",
          "body": "…c and similar",
          "is_bot": false,
          "headline": "Implemented traits for Cow using the same implementation rules from R…",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-05-07T13:09:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b08f13e2a9ad6064503812054fab4e1cdfc94be7",
          "body": null,
          "is_bot": false,
          "headline": "Implemented traits for OnceLock",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-05-07T12:27:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3deee6a2c908bd3f5d0bdbc89378c249fe2f5a2",
          "body": "`test_weak_pointers`, `test_default_hasher`, `test_random_state`,\n`test_build_hasher_default`, `test_net_addresses`, `test_time_types`,\nand `test_system_time_error` reference `std`-only types whose\n`MemSize` impls live behind `#[cfg(feature = \"std\")]` in\n`impl_mem_size.rs`. Without the gate the test target fails to\ncompile under `cargo test --no-default-features` and\n`cargo test --no-default-features --features derive` (CI run\n25438693440 step \"Run no default features tests\").",
          "is_bot": false,
          "headline": "test: gate std-only flat primitive tests behind `feature = \"std\"`",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T13:42:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1e989d71dc0c63aee404939d618ca8fe67c35e7",
          "body": "The previous Pin<P> impl only overrode _mem_dbg_rec_on, leaving\n_mem_dbg_depth_on at its default. That default does not consult the\ndbg_refs HashSet, so the dedup tracking and @ / -> back-reference\nmarkers emitted by &T / Rc<T> / Arc<T> via impl_mem_dbg_for_deref!\nwere lost when those pointers were \n[…]\nem_size and mem_dbg, fix an unused_allocation warning, drop an\ninert #[mem_size(rec)] attribute, and tighten field-name assertions\nso they no longer match substrings inside fully-qualified type\nnames.",
          "is_bot": false,
          "headline": "fix(impl_mem_dbg): preserve dedup markers when wrapping in Pin<P>",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T13:31:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0bb2fb50bd022e1831df0c3317e26aef439e9c88",
          "body": "Add coverage that asserts the exact size formula for every type with a\nMemSize impl that did not already have a precise test, and upgrade the\nexisting 'assert!(size > 0)' / inequality tests to assert_eq! against\nthe impl's predicted formula.\n\nNew test files:\n- test_flat_primitives.rs - bool, char, f\n[…]\n::<Self>() + len (FOLLOW_REFS).\n- test_maligned_types.rs asserts each Aligned type and Aligned<A, T>\n  with both flat and heap payloads.\n- test_half_types.rs and test_rand.rs assert size_of::<Self>().",
          "is_bot": false,
          "headline": "test: precise size assertions for every MemSize impl",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T13:14:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "734863477e1335712676332dee0b97fa4f7267b4",
          "body": "test_arc_deduplication only asserted an inequality for the\nFOLLOW_RCS branch. Add test_arc_in_struct (Arc<u64>, flat payload)\nand test_arc_with_heap_payload (Arc<String>, exercises both the\nFOLLOW_RCS recursion through T and the CAPACITY flag) with exact\nsize formulas, mirroring test_box_in_struct.",
          "is_bot": false,
          "headline": "test: precise size assertions for Arc<T> in struct fields",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T12:50:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea5402f1d2d86d5b9a3a7102d4eebce3eb07de14",
          "body": "Delegate MemSize, FlatType, and MemDbgImpl for Pin<P> to the wrapped pointer type so pinned Box, references, Rc, and Arc keep their existing traversal policies. Add focused coverage and changelog entry.",
          "is_bot": false,
          "headline": "Add generic Pin trait impls",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-05-06T12:42:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d77b8fd064619099a0e41b96286c1dc1dd8a015a",
          "body": "Box::leak triggered miri's leak detector. The references in\ntest_niche_optimized_wrappers don't actually need 'static lifetime;\na stack binding works just as well.",
          "is_bot": false,
          "headline": "test: avoid Box::leak in niche test for miri compatibility",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T10:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d00a9814cbeca54f6ccaf8bbcfcf082f0fbfa0eb",
          "body": "Rename to test_* prefix, return anyhow::Result<()>, and replace\nunwrap()/expect() with the ? operator, as required by the LWA\nrust-dev-guidelines.",
          "is_bot": false,
          "headline": "test: align core wrapper tests with project guidelines",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T10:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd7f8dd543acb0a26dc03bca8982feb5bf47456f",
          "body": null,
          "is_bot": false,
          "headline": "test: cover niche-fill behaviour for core wrapper impls",
          "author_name": "Tommaso Fontana",
          "author_login": "zommiommy",
          "committed_at": "2026-05-06T10:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1d7d1a981f0f42c81e0042d174ed43888c8d1a3",
          "body": null,
          "is_bot": false,
          "headline": "Cover core wrapper impls",
          "author_name": "LucaCappelletti94",
          "author_login": "LucaCappelletti94",
          "committed_at": "2026-05-06T10:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 20,
      "commits_last_year": 287,
      "latest_release_at": "2026-07-23T14:23:52Z",
      "latest_release_tag": "0.4.4",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 20,
      "days_since_latest_release": 1,
      "mean_days_between_releases": 58.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "mem_dbg",
          "exists": true,
          "license": "Apache-2.0 OR MIT",
          "keywords": [
            "allocation",
            "debug",
            "memory",
            "development-tools::debugging"
          ],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/mem_dbg",
          "is_deprecated": false,
          "latest_version": "0.4.4",
          "repository_url": "https://github.com/zommiommy/mem_dbg-rs",
          "versions_count": 25,
          "total_downloads": 408001,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 56506,
          "first_published_at": "2023-11-30T11:29:12.379276Z",
          "latest_published_at": "2026-07-23T14:23:12.384542Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 1
        },
        {
          "name": "mem_dbg-derive",
          "exists": true,
          "license": "Apache-2.0 OR MIT",
          "keywords": [
            "allocation",
            "debug",
            "memory",
            "development-tools::procedural-macro-helpers"
          ],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/mem_dbg-derive",
          "is_deprecated": false,
          "latest_version": "0.3.4",
          "repository_url": "https://github.com/zommiommy/mem_dbg-rs",
          "versions_count": 14,
          "total_downloads": 397675,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 56399,
          "first_published_at": "2023-11-30T11:27:40.602371Z",
          "latest_published_at": "2026-07-23T14:23:08.491799Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 1
        }
      ]
    },
    "popularity": {
      "forks": 7,
      "stars": 43,
      "watchers": 2,
      "fork_history": {
        "days": [
          {
            "date": "2024-05-26",
            "count": 1
          },
          {
            "date": "2024-08-08",
            "count": 1
          },
          {
            "date": "2024-08-16",
            "count": 1
          },
          {
            "date": "2024-09-18",
            "count": 1
          },
          {
            "date": "2024-09-25",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2026-05-14",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 7,
        "total_forks": 7
      },
      "star_history": null,
      "open_issues_and_prs": 8
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "Cargo.toml",
        "mem_dbg-derive/Cargo.toml",
        "mem_dbg/Cargo.toml"
      ],
      "largest_source_bytes": 54577,
      "source_files_sampled": 57,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml",
        "mem_dbg-derive/Cargo.toml",
        "mem_dbg/Cargo.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "maligned",
            "direct": true,
            "version": "0.2.1",
            "severity": "moderate",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-wm8x-php5-hvq6",
              "RUSTSEC-2023-0017"
            ],
            "fixed_version": null,
            "advisory_count": 2,
            "oldest_advisory_days": 1238
          },
          {
            "name": "get-size",
            "direct": true,
            "version": "0.1.4",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2024-0425"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 677
          },
          {
            "name": "paste",
            "direct": true,
            "version": "1.0.15",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2024-0436"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 655
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "unknown": 2,
          "moderate": 1
        },
        "advisory_count": 4,
        "affected_count": 3,
        "assessed_count": 114,
        "malicious_count": 0,
        "assessed_package": "crates:mem_dbg@0.4.4",
        "unassessed_count": 0,
        "direct_affected_count": 3
      },
      "ecosystems": [
        "crates"
      ],
      "dependencies": [
        {
          "name": "quote",
          "manifest": "mem_dbg-derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1"
        },
        {
          "name": "proc-macro2",
          "manifest": "mem_dbg-derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "syn",
          "manifest": "mem_dbg-derive/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.0"
        },
        {
          "name": "bitflags",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.4.1"
        },
        {
          "name": "mem_dbg-derive",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "mmap-rs",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.7.0"
        },
        {
          "name": "half",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.0.4"
        },
        {
          "name": "rand",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.10.0"
        },
        {
          "name": "maligned",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.1"
        },
        {
          "name": "hashbrown",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.16"
        },
        {
          "name": "aliasable",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1.3"
        },
        {
          "name": "maybe-dangling",
          "manifest": "mem_dbg/Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.1.2"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "aliasable",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "half",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "maligned",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "maybe-dangling",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "mmap-rs",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": true,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "cap",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "comfy-table",
            "direct": false,
            "version": "7.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "criterion",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "deepsize",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "get-size",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "insta",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "paste",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 20,
        "direct_count": 11,
        "indirect_count": 9
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 4,
        "merged_prs": 33,
        "open_issues": 4,
        "closed_ratio": 0.8,
        "closed_issues": 16,
        "closed_unmerged_prs": 5
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "vigna",
          "commits": 276,
          "avatar_url": "https://avatars.githubusercontent.com/u/1464942?v=4"
        },
        {
          "type": "User",
          "login": "zommiommy",
          "commits": 126,
          "avatar_url": "https://avatars.githubusercontent.com/u/25117939?v=4"
        },
        {
          "type": "User",
          "login": "LucaCappelletti94",
          "commits": 115,
          "avatar_url": "https://avatars.githubusercontent.com/u/7738570?v=4"
        },
        {
          "type": "User",
          "login": "RagnarGrootKoerkamp",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/6233682?v=4"
        },
        {
          "type": "User",
          "login": "AngeloSav",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/90687232?v=4"
        },
        {
          "type": "User",
          "login": "dovreshef",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/5120549?v=4"
        },
        {
          "type": "User",
          "login": "AlJohri",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/2790092?v=4"
        },
        {
          "type": "User",
          "login": "zacchiro",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/216766?v=4"
        },
        {
          "type": "User",
          "login": "progval",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/406946?v=4"
        }
      ],
      "contributors_sampled": 9,
      "top_contributor_share": 0.523
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "links.yml",
        "rust.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "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": "4 out of 4 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": 2,
            "reason": "Found 4/16 approved changesets -- score normalized to 2",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 5 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "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": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2fc4d91e391ccd58c5e20d401f07709197042307",
        "ran_at": "2026-07-24T17:52:03Z",
        "aggregate_score": 4.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-23T14:28:56Z",
      "oldest_open_prs": [
        {
          "number": 42,
          "created_at": "2026-05-07T09:29:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 46,
          "created_at": "2026-05-14T18:37:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 48,
          "created_at": "2026-05-14T20:22:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 61,
          "created_at": "2026-06-16T11:57:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-06-17T15:05:30Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 11,
          "created_at": "2024-08-17T08:57:21Z",
          "last_comment_at": "2024-08-17T10:19:49Z",
          "last_comment_author": "zommiommy"
        },
        {
          "number": 26,
          "created_at": "2026-01-15T07:08:30Z",
          "last_comment_at": "2026-01-18T13:14:48Z",
          "last_comment_author": "LucaCappelletti94"
        },
        {
          "number": 30,
          "created_at": "2026-01-17T10:32:23Z",
          "last_comment_at": "2026-01-17T11:09:01Z",
          "last_comment_author": "vigna"
        },
        {
          "number": 33,
          "created_at": "2026-01-18T20:41:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/zommiommy/mem_dbg-rs",
    "host": "github.com",
    "name": "mem_dbg-rs",
    "owner": "zommiommy"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 65,
      "inputs": {
        "security": 52,
        "vitality": 84,
        "community": 59,
        "governance": 66,
        "engineering": 61
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 84,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 287,
              "human_commit_share": 1,
              "days_since_last_push": 1,
              "active_weeks_last_year": 20
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "20/52 weeks with commits",
                "points": 13.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 20
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "287 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 287
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 92,
            "inputs": {
              "releases_count": 20,
              "latest_release_tag": "0.4.4",
              "releases_from_tags": false,
              "days_since_latest_release": 1,
              "mean_days_between_releases": 58.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "20 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~58.7 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 58.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 1,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 1 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 59,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "forks": 7,
              "stars": 43,
              "watchers": 2,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "43 stars",
                "points": 26.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 43
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "7 forks",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "2 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 84,
            "inputs": {
              "packages": [
                "mem_dbg",
                "mem_dbg-derive"
              ],
              "dependents": null,
              "ecosystems": "crates",
              "total_downloads": 805676,
              "monthly_downloads": 112905
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "112,905 downloads/month across crates",
                "points": 67.4,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 112905,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 66,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 42,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 9,
              "top_contributor_share": 0.523
            },
            "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 52% of commits",
                "points": 10.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 52
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "9 contributors",
                "points": 12.2,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "merged_prs": 33,
              "open_issues": 4,
              "closed_issues": 16,
              "issue_closed_ratio": 0.8,
              "closed_unmerged_prs": 5
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "80% of issues closed",
                "points": 37.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 80
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "33/38 decided PRs merged",
                "points": 33.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 33,
                      "decided": 38
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 4/16 approved changesets -- score normalized to 2",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 58,
            "inputs": {
              "followers": 40,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "zommiommy",
              "public_repos": 98,
              "account_age_days": 3478
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "40 followers of zommiommy",
                "points": 11.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 40,
                      "login": "zommiommy"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "98 public repos, account ~9 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 98
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "mem_dbg",
                "mem_dbg-derive"
              ],
              "ecosystems": "crates",
              "any_deprecated": false,
              "min_days_since_publish": 1
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on crates",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 1 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "25 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 25
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 61,
        "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": "4 out of 4 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 52,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 45,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 4.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": "4 out of 4 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 4/16 approved changesets -- score normalized to 2",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Matched the crates:mem_dbg@0.4.4 runtime dependency closure — what installing the published package pulls in — 114 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "crates:mem_dbg@0.4.4",
                  "assessed": 114
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 81,
            "inputs": {
              "source": "osv",
              "advisories": 4,
              "affected_packages": 3,
              "assessed_packages": 114,
              "unassessed_packages": 0,
              "affected_by_severity": "moderate 1, unknown 2",
              "direct_affected_packages": 3
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "3 affected: maligned 0.2.1 (moderate), get-size 0.1.4 (unknown), paste 1.0.15 (unknown)",
                "points": 23.1,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 3,
                      "packages": "maligned 0.2.1 (moderate), get-size 0.1.4 (unknown), paste 1.0.15 (unknown)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "3 advisory-carrying package(s) unaddressed past 90 days; oldest published 1238 days ago",
                "points": 32.7,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 3,
                      "oldest": 1238
                    }
                  }
                ],
                "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": 114,
              "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
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 18
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 54,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 37,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.69,
              "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": "69 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 36.8,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 69,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.07,
              "toolchain_manifests": [
                "Cargo.toml",
                "mem_dbg-derive/Cargo.toml",
                "mem_dbg/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Cargo.toml, mem_dbg-derive/Cargo.toml, mem_dbg/Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Cargo.toml, mem_dbg-derive/Cargo.toml, mem_dbg/Cargo.toml"
                    }
                  }
                ],
                "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": "Rust (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "7 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 7,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Rust",
              "largest_source_bytes": 54577,
              "source_files_sampled": 57,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Rust (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/57 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 57,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-24T17:52:17.060670Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/z/zommiommy/mem_dbg-rs.svg",
  "full_name": "zommiommy/mem_dbg-rs",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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 Statistikencrates.io.