Öffentliches Register
Software-GesundheitsberichtSchema 0.26.0 · Metriken 1.13.0 · 2026-07-22 19:56 UTC

rmcrackan / Libation

Libation: Liberate your Library

C#GPL-3.0★ 5.936 Sterne⑂ 303 Forksseit Okt. 2019Auf GitHub ansehen ↗

rmcrackan/Libation erreicht einen Gesundheitsindex von 69 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (94/100) ab, am schwächsten bei AI Readiness (50/100). Zuletzt vor 5 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

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

69
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

rmcrackanPersönliches Konto
196 Follower9 öffentliche Reposseit Okt. 2016

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.

Metriken nach Kategorie

Vitalität

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

94Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 5 Tagen
31.8/36Commit-Rhythmus — 46/52 Wochen mit Commits
18/18Commit-Volumen — 769 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 25 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year769
human_commit_share0,97
days_since_last_push5
active_weeks_last_year46
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 100 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 5 Tagen
27/27Release-Rhythmus — ein Release etwa alle 8,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count100
latest_release_tagv13.5.1
releases_from_tagsnein
days_since_latest_release5
mean_days_between_releases8,1

Community & Verbreitung

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

72Gut · 18 % des Gesamtindex
Wie die Bewertung erfolgt
60/60Stars — 5.936 Stars
20.7/25Forks — 303 Forks
10.2/15Watcher — 69 Watcher
Verwendete Eingangsdaten
forks303
stars5.936
watchers69
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (GPL-3.0)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein

Nachhaltigkeit & Governance

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

57Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
10.4/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 54 % der Commits
13.5/13.5Breite der Beitragenden — 30 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled30
top_contributor_share0,539
Wie die Bewertung erfolgt
44.9/46.8Issue-Lösungsquote — 96 % der Issues geschlossen
36.5/38.3PR-Annahme — 418/438 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/12 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs418
open_issues57
closed_issues1.372
issue_closed_ratio0,96
closed_unmerged_prs20
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
16.5/25Reichweite des Inhabers — 196 Follower von rmcrackan
19.3/25Kontohistorie — 9 öffentliche Repos, Kontoalter ca. 9 Jahre
Verwendete Eingangsdaten
followers196
owner_typeUser
is_verified
owner_loginrmcrackan
public_repos9
account_age_days3.569
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

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

Dokumentation

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

Sicherheit

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

56Mittel · 16 % des Gesamtindex

Sicherheitslage

45Gefährdet
Wie die Bewertung erfolgt
6.8/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 14 out of 14 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/12 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 25 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 — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): packaging. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages211
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories, Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. 211 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

50Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
32.4/40Lesbare Commit-Historie — 59 von 97 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,608
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — Source/AaxDecrypter/AaxDecrypter.csproj, Source/AppScaffolding/AppScaffolding.csproj, Source/ApplicationServices/ApplicationServices.csproj (Toolchain-Konvention, kein Task-Runner)
0/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — C# (statisch typisiert)
10/10Reproduzierbare Umgebung — Dockerfile, Nix, lockfile
2/10Belegte Agentenpraxis — 1 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
8/8Automatisierte Wartung — 3 der letzten 100 Commits sind automatisierte Abhängigkeits-Updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixja
has_testsnein
lockfilespackage-lock.json
has_dockerfileja
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0,01
toolchain_manifestsSource/AaxDecrypter/AaxDecrypter.csproj, Source/AppScaffolding/AppScaffolding.csproj, Source/ApplicationServices/ApplicationServices.csproj, Source/AudibleUtilities/AudibleUtilities.csproj, Source/DataLayer.Postgres/DataLayer.Postgres.csproj, Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj, Source/DataLayer/DataLayer.csproj, Source/DtoImporterService/DtoImporterService.csproj, Source/FileLiberator/FileLiberator.csproj, Source/FileManager/FileManager.csproj, Source/HangoverAvalonia/HangoverAvalonia.csproj, Source/HangoverBase/HangoverBase.csproj, Source/HangoverWinForms/HangoverWinForms.csproj, Source/LibationAvalonia/LibationAvalonia.csproj, Source/LibationCli/LibationCli.csproj, Source/LibationFileManager/LibationFileManager.csproj, Source/LibationSearchEngine/LibationSearchEngine.csproj, Source/LibationUiBase/LibationUiBase.csproj, Source/LibationWinForms/LibationWinForms.csproj, Source/LoadByOS/LinuxConfigApp/LinuxConfigApp.csproj, Source/LoadByOS/MacOSConfigApp/MacOSConfigApp.csproj, Source/LoadByOS/WindowsConfigApp/WindowsConfigApp.csproj, Source/_Demos/LoadByOS/CrossPlatformClientExe/CrossPlatformClientExe.csproj, Source/_Demos/LoadByOS/LinuxConfigApp/LinuxConfigApp.csproj, Source/_Demos/LoadByOS/WindowsConfigApp/WindowsConfigApp.csproj, Source/_Tests/AssertionHelper/AssertionHelper.csproj, Source/_Tests/AudibleUtilities.Tests/AudibleUtilities.Tests.csproj, Source/_Tests/FileLiberator.Tests/FileLiberator.Tests.csproj, Source/_Tests/FileManager.Tests/FileManager.Tests.csproj, Source/_Tests/LibationFileManager.Tests/LibationFileManager.Tests.csproj, Source/_Tests/LibationSearchEngine.Tests/LibationSearchEngine.Tests.csproj, Source/_Tests/LibationUiBase.Tests/LibationUiBase.Tests.csproj
dependency_bot_commit_share0,03
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — C# (statisch typisiert)
54.7/55Handhabbare Dateigrößen — 3/551 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageC#
largest_source_bytes566.907
source_files_sampled551
oversized_source_files3

Eckdaten

5.936GitHub-Sterne
30Mitwirkende
769Commits, letzte 12 Monate
5Tage seit letztem Push
100Releases
1Bus-Faktor
57offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

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

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 303 ⇿
0Sterne
303Forks
99Releases

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.

05010015020025030030052020-012023-042026-07
Major 2Minor 16Patch 78

Jeder Punkt umfasst 6 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-22 19:56 UTC

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests14 out of 14 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/12 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 25 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
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 39
RegistryPaketVersionsvorgabeManifest
NuGetAAXClean.Codecs3.0.2Source/AaxDecrypter/AaxDecrypter.csproj
NuGetOctokit14.0.0Source/AppScaffolding/AppScaffolding.csproj
NuGetSerilog.Sinks.Console6.1.1Source/AppScaffolding/AppScaffolding.csproj
NuGetSerilog.Sinks.File7.0.0Source/AppScaffolding/AppScaffolding.csproj
NuGetCsvHelper33.1.0Source/ApplicationServices/ApplicationServices.csproj
NuGetClosedXML0.105.0Source/ApplicationServices/ApplicationServices.csproj
NuGetAudibleApi10.2.0.1Source/AudibleUtilities/AudibleUtilities.csproj
NuGetGoogle.Protobuf3.34.1Source/AudibleUtilities/AudibleUtilities.csproj
NuGetMicrosoft.EntityFrameworkCore.Design10.0.7Source/DataLayer.Postgres/DataLayer.Postgres.csproj
NuGetMicrosoft.EntityFrameworkCore.Tools10.0.7Source/DataLayer.Postgres/DataLayer.Postgres.csproj
NuGetMicrosoft.EntityFrameworkCore.Design10.0.7Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj
NuGetMicrosoft.EntityFrameworkCore.Tools10.0.7Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj
NuGetDinah.Core10.0.0.1Source/DataLayer/DataLayer.csproj
NuGetDinah.EntityFrameworkCore10.0.0.1Source/DataLayer/DataLayer.csproj
NuGetNpgsql.EntityFrameworkCore.PostgreSQL10.0.1Source/DataLayer/DataLayer.csproj
NuGetMicrosoft.EntityFrameworkCore.Sqlite10.0.7Source/DataLayer/DataLayer.csproj
NuGetMicrosoft.EntityFrameworkCore.Design10.0.7Source/DataLayer/DataLayer.csproj
NuGetMicrosoft.EntityFrameworkCore.Tools10.0.7Source/DataLayer/DataLayer.csproj
NuGetDinah.Core10.0.0.1Source/FileManager/FileManager.csproj
NuGetPolly8.6.6Source/FileManager/FileManager.csproj
NuGetAvalonia.Desktop12.0.2Source/HangoverAvalonia/HangoverAvalonia.csproj
NuGetAvalonia.Diagnostics11.3.14Source/HangoverAvalonia/HangoverAvalonia.csproj
NuGetReactiveUI.Avalonia12.0.2Source/HangoverAvalonia/HangoverAvalonia.csproj
NuGetAvalonia.Themes.Fluent12.0.2Source/HangoverAvalonia/HangoverAvalonia.csproj
NuGetAvalonia.Controls.ColorPicker12.0.2Source/LibationAvalonia/LibationAvalonia.csproj
NuGetAvalonia.Controls.WebView12.0.0Source/LibationAvalonia/LibationAvalonia.csproj
NuGetAvalonia.Diagnostics11.3.14Source/LibationAvalonia/LibationAvalonia.csproj
NuGetAvalonia.Controls.DataGrid12.0.0Source/LibationAvalonia/LibationAvalonia.csproj
NuGetAvalonia.Desktop12.0.2Source/LibationAvalonia/LibationAvalonia.csproj
NuGetReactiveUI.Avalonia12.0.2Source/LibationAvalonia/LibationAvalonia.csproj
NuGetAvalonia.Themes.Fluent12.0.2Source/LibationAvalonia/LibationAvalonia.csproj
NuGetCommandLineParser2.9.1Source/LibationCli/LibationCli.csproj
NuGetAudibleApi10.2.0.1Source/LibationFileManager/LibationFileManager.csproj
NuGetMicrosoft.Extensions.Configuration.Json10.0.7Source/LibationFileManager/LibationFileManager.csproj
NuGetNameParserSharp1.5.0Source/LibationFileManager/LibationFileManager.csproj
NuGetSerilog.Exceptions8.4.0Source/LibationFileManager/LibationFileManager.csproj
NuGetLuceneNet303r23.0.3.11Source/LibationSearchEngine/LibationSearchEngine.csproj
NuGetDinah.Core.WindowsDesktop10.0.0.1Source/LibationWinForms/LibationWinForms.csproj
NuGetMicrosoft.Web.WebView21.0.3912.50Source/LibationWinForms/LibationWinForms.csproj
Alle Abhängigkeiten 211

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

RegistryPaketVersionBeziehung
NuGetAAXClean.Codecs3.0.2direkt
NuGetAudibleApi10.2.0.1direkt
NuGetAvalonia.Controls.ColorPicker12.0.2direkt
NuGetAvalonia.Controls.DataGrid12.0.0direkt
NuGetAvalonia.Controls.WebView12.0.0direkt
NuGetAvalonia.Desktop12.0.2direkt
NuGetAvalonia.Diagnostics11.3.14direkt
NuGetAvalonia.Themes.Fluent12.0.2direkt
NuGetClosedXML0.105.0direkt
NuGetCommandLineParser2.9.1direkt
NuGetCsvHelper33.1.0direkt
NuGetDinah.Core10.0.0.1direkt
NuGetDinah.Core.WindowsDesktop10.0.0.1direkt
NuGetDinah.EntityFrameworkCore10.0.0.1direkt
NuGetGoogle.Protobuf3.34.1direkt
NuGetLuceneNet303r23.0.3.11direkt
NuGetMicrosoft.EntityFrameworkCore.Design10.0.7direkt
NuGetMicrosoft.EntityFrameworkCore.Sqlite10.0.7direkt
NuGetMicrosoft.EntityFrameworkCore.Tools10.0.7direkt
NuGetMicrosoft.Extensions.Configuration.Json10.0.7direkt
NuGetMicrosoft.Web.WebView21.0.3912.50direkt
NuGetNameParserSharp1.5.0direkt
NuGetNpgsql.EntityFrameworkCore.PostgreSQL10.0.1direkt
NuGetOctokit14.0.0direkt
NuGetPolly8.6.6direkt
NuGetReactiveUI.Avalonia12.0.2direkt
NuGetSerilog.Exceptions8.4.0direkt
NuGetSerilog.Sinks.Console6.1.1direkt
NuGetSerilog.Sinks.File7.0.0direkt
npm@algolia/abtesting1.12.0indirekt
npm@algolia/autocomplete-core1.17.7indirekt
npm@algolia/autocomplete-plugin-algolia-insights1.17.7indirekt
npm@algolia/autocomplete-preset-algolia1.17.7indirekt
npm@algolia/autocomplete-shared1.17.7indirekt
npm@algolia/client-abtesting5.46.0indirekt
npm@algolia/client-analytics5.46.0indirekt
npm@algolia/client-common5.46.0indirekt
npm@algolia/client-insights5.46.0indirekt
npm@algolia/client-personalization5.46.0indirekt
npm@algolia/client-query-suggestions5.46.0indirekt
npm@algolia/client-search5.46.0indirekt
npm@algolia/ingestion1.46.0indirekt
npm@algolia/monitoring1.46.0indirekt
npm@algolia/recommend5.46.0indirekt
npm@algolia/requester-browser-xhr5.46.0indirekt
npm@algolia/requester-fetch5.46.0indirekt
npm@algolia/requester-node-http5.46.0indirekt
npm@babel/helper-string-parser7.27.1indirekt
npm@babel/helper-validator-identifier7.28.5indirekt
npm@babel/parser7.28.5indirekt
npm@babel/types7.28.5indirekt
npm@docsearch/css3.8.2indirekt
npm@docsearch/js3.8.2indirekt
npm@docsearch/react3.8.2indirekt
npm@esbuild/aix-ppc640.28.1indirekt
npm@esbuild/android-arm0.28.1indirekt
npm@esbuild/android-arm640.28.1indirekt
npm@esbuild/android-x640.28.1indirekt
npm@esbuild/darwin-arm640.28.1indirekt
npm@esbuild/darwin-x640.28.1indirekt
npm@esbuild/freebsd-arm640.28.1indirekt
npm@esbuild/freebsd-x640.28.1indirekt
npm@esbuild/linux-arm0.28.1indirekt
npm@esbuild/linux-arm640.28.1indirekt
npm@esbuild/linux-ia320.28.1indirekt
npm@esbuild/linux-loong640.28.1indirekt
npm@esbuild/linux-mips64el0.28.1indirekt
npm@esbuild/linux-ppc640.28.1indirekt
npm@esbuild/linux-riscv640.28.1indirekt
npm@esbuild/linux-s390x0.28.1indirekt
npm@esbuild/linux-x640.28.1indirekt
npm@esbuild/netbsd-arm640.28.1indirekt
npm@esbuild/netbsd-x640.28.1indirekt
npm@esbuild/openbsd-arm640.28.1indirekt
npm@esbuild/openbsd-x640.28.1indirekt
npm@esbuild/openharmony-arm640.28.1indirekt
npm@esbuild/sunos-x640.28.1indirekt
npm@esbuild/win32-arm640.28.1indirekt
npm@esbuild/win32-ia320.28.1indirekt
npm@esbuild/win32-x640.28.1indirekt
npm@iconify-json/simple-icons1.2.63indirekt
npm@iconify/types2.0.0indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@rollup/rollup-android-arm-eabi4.59.0indirekt
npm@rollup/rollup-android-arm644.59.0indirekt
npm@rollup/rollup-darwin-arm644.59.0indirekt
npm@rollup/rollup-darwin-x644.59.0indirekt
npm@rollup/rollup-freebsd-arm644.59.0indirekt
npm@rollup/rollup-freebsd-x644.59.0indirekt
npm@rollup/rollup-linux-arm-gnueabihf4.59.0indirekt
npm@rollup/rollup-linux-arm-musleabihf4.59.0indirekt
npm@rollup/rollup-linux-arm64-gnu4.59.0indirekt
npm@rollup/rollup-linux-arm64-musl4.59.0indirekt
npm@rollup/rollup-linux-loong64-gnu4.59.0indirekt
npm@rollup/rollup-linux-loong64-musl4.59.0indirekt
npm@rollup/rollup-linux-ppc64-gnu4.59.0indirekt
npm@rollup/rollup-linux-ppc64-musl4.59.0indirekt
npm@rollup/rollup-linux-riscv64-gnu4.59.0indirekt
npm@rollup/rollup-linux-riscv64-musl4.59.0indirekt
npm@rollup/rollup-linux-s390x-gnu4.59.0indirekt
npm@rollup/rollup-linux-x64-gnu4.59.0indirekt
npm@rollup/rollup-linux-x64-musl4.59.0indirekt
npm@rollup/rollup-openbsd-x644.59.0indirekt
npm@rollup/rollup-openharmony-arm644.59.0indirekt
npm@rollup/rollup-win32-arm64-msvc4.59.0indirekt
npm@rollup/rollup-win32-ia32-msvc4.59.0indirekt
npm@rollup/rollup-win32-x64-gnu4.59.0indirekt
npm@rollup/rollup-win32-x64-msvc4.59.0indirekt
npm@shikijs/core2.5.0indirekt
npm@shikijs/engine-javascript2.5.0indirekt
npm@shikijs/engine-oniguruma2.5.0indirekt
npm@shikijs/langs2.5.0indirekt
npm@shikijs/themes2.5.0indirekt
npm@shikijs/transformers2.5.0indirekt
npm@shikijs/types2.5.0indirekt
npm@shikijs/vscode-textmate10.0.2indirekt
npm@types/estree1.0.8indirekt
npm@types/hast3.0.4indirekt
npm@types/linkify-it5.0.0indirekt
npm@types/markdown-it14.1.2indirekt
npm@types/mdast4.0.4indirekt
npm@types/mdurl2.0.0indirekt
npm@types/unist3.0.3indirekt
npm@types/web-bluetooth0.0.21indirekt
npm@ungap/structured-clone1.3.0indirekt
npm@vitejs/plugin-vue5.2.4indirekt
npm@vue/compiler-core3.5.25indirekt
npm@vue/compiler-dom3.5.25indirekt
npm@vue/compiler-sfc3.5.25indirekt
npm@vue/compiler-ssr3.5.25indirekt
npm@vue/devtools-api7.7.9indirekt
npm@vue/devtools-kit7.7.9indirekt
npm@vue/devtools-shared7.7.9indirekt
npm@vue/reactivity3.5.25indirekt
npm@vue/runtime-core3.5.25indirekt
npm@vue/runtime-dom3.5.25indirekt
npm@vue/server-renderer3.5.25indirekt
npm@vue/shared3.5.25indirekt
npm@vueuse/core12.8.2indirekt
npm@vueuse/integrations12.8.2indirekt
npm@vueuse/metadata12.8.2indirekt
npm@vueuse/shared12.8.2indirekt
npmalgoliasearch5.46.0indirekt
npmbirpc2.9.0indirekt
npmccount2.0.1indirekt
npmcharacter-entities-html42.1.0indirekt
npmcharacter-entities-legacy3.0.0indirekt
npmcomma-separated-tokens2.0.3indirekt
npmcopy-anything4.0.5indirekt
npmcsstype3.2.3indirekt
npmdequal2.0.3indirekt
npmdevlop1.1.0indirekt
npmemoji-regex-xs1.0.0indirekt
npmentities4.5.0indirekt
npmesbuild0.28.1indirekt
npmestree-walker2.0.2indirekt
npmfdir6.5.0indirekt
npmfocus-trap7.6.6indirekt
npmfsevents2.3.3indirekt
npmhast-util-to-html9.0.5indirekt
npmhast-util-whitespace3.0.0indirekt
npmhookable5.5.3indirekt
npmhtml-void-elements3.0.0indirekt
npmis-what5.5.0indirekt
npmmagic-string0.30.21indirekt
npmmark.js8.11.1indirekt
npmmdast-util-to-hast13.2.1indirekt
npmmicromark-util-character2.1.1indirekt
npmmicromark-util-encode2.0.1indirekt
npmmicromark-util-sanitize-uri2.0.1indirekt
npmmicromark-util-symbol2.0.1indirekt
npmmicromark-util-types2.0.2indirekt
npmminisearch7.2.0indirekt
npmmitt3.0.1indirekt
npmnanoid3.3.11indirekt
npmoniguruma-to-es3.1.1indirekt
npmperfect-debounce1.0.0indirekt
npmpicocolors1.1.1indirekt
npmpicomatch4.0.4indirekt
npmpostcss8.5.12indirekt
npmpreact10.28.2indirekt
npmproperty-information7.1.0indirekt
npmregex6.1.0indirekt
npmregex-recursion6.0.2indirekt
npmregex-utilities2.3.0indirekt
npmrfdc1.4.1indirekt
npmrollup4.59.0indirekt
npmsearch-insights2.17.3indirekt
npmshiki2.5.0indirekt
npmsource-map-js1.2.1indirekt
npmspace-separated-tokens2.0.2indirekt
npmspeakingurl14.0.1indirekt
npmstringify-entities4.0.4indirekt
npmsuperjson2.2.6indirekt
npmtabbable6.3.0indirekt
npmtinyglobby0.2.16indirekt
npmtrim-lines3.0.1indirekt
npmunist-util-is6.0.1indirekt
npmunist-util-position5.0.0indirekt
npmunist-util-stringify-position4.0.0indirekt
npmunist-util-visit5.0.0indirekt
npmunist-util-visit-parents6.0.2indirekt
npmvfile6.0.3indirekt
npmvfile-message4.0.3indirekt
npmvite6.4.3indirekt
npmvitepress1.6.4indirekt
npmvue3.5.25indirekt
npmzwitch2.0.4indirekt
NuGetMSTest4.2.2indirekt
NuGetMSTest.TestFramework4.2.2indirekt
NuGetSixLabors.ImageSharp3.1.12indirekt
Abhängigkeits-Advisories 0

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

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

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": 144684,
      "has_wiki": true,
      "homepage": "https://getlibation.com",
      "languages": {
        "C#": 2455901,
        "CSS": 921,
        "Nix": 893,
        "Vue": 9911,
        "Shell": 51744,
        "Dockerfile": 1107,
        "Inno Setup": 3030,
        "JavaScript": 13121,
        "PowerShell": 5411
      },
      "pushed_at": "2026-07-17T18:56:10Z",
      "created_at": "2019-10-04T20:02:35Z",
      "owner_type": "User",
      "updated_at": "2026-07-22T19:44:31Z",
      "description": "Libation: Liberate your Library",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "GPL-3.0",
      "default_branch": "master",
      "license_spdx_raw": "GPL-3.0",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "rmcrackan",
      "company": null,
      "location": null,
      "followers": 196,
      "avatar_url": "https://avatars.githubusercontent.com/u/22817130?v=4",
      "created_at": "2016-10-13T13:29:03Z",
      "is_verified": null,
      "public_repos": 9,
      "account_age_days": 3569
    },
    "license": {
      "state": "standard",
      "spdx_id": "GPL-3.0",
      "raw_spdx": "GPL-3.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v13.5.1",
          "kind": "patch",
          "published_at": "2026-07-17T19:22:52Z"
        },
        {
          "tag": "v13.5.0",
          "kind": "minor",
          "published_at": "2026-06-17T15:01:40Z"
        },
        {
          "tag": "v13.4.9",
          "kind": "patch",
          "published_at": "2026-06-12T19:04:45Z"
        },
        {
          "tag": "v13.4.8",
          "kind": "patch",
          "published_at": "2026-06-08T19:54:15Z"
        },
        {
          "tag": "v13.4.5",
          "kind": "patch",
          "published_at": "2026-06-05T14:53:53Z"
        },
        {
          "tag": "v13.4.4",
          "kind": "patch",
          "published_at": "2026-05-25T15:36:05Z"
        },
        {
          "tag": "v13.4.3",
          "kind": "patch",
          "published_at": "2026-05-21T14:47:36Z"
        },
        {
          "tag": "v13.4.2",
          "kind": "patch",
          "published_at": "2026-05-19T13:34:45Z"
        },
        {
          "tag": "v13.4.1",
          "kind": "patch",
          "published_at": "2026-05-05T17:54:37Z"
        },
        {
          "tag": "v13.4.0",
          "kind": "minor",
          "published_at": "2026-05-05T13:58:08Z"
        },
        {
          "tag": "v13.3.6",
          "kind": "patch",
          "published_at": "2026-05-01T18:09:20Z"
        },
        {
          "tag": "v13.3.5",
          "kind": "patch",
          "published_at": "2026-04-21T02:13:58Z"
        },
        {
          "tag": "v13.3.4",
          "kind": "patch",
          "published_at": "2026-04-16T16:40:50Z"
        },
        {
          "tag": "v13.3.3",
          "kind": "patch",
          "published_at": "2026-04-06T20:55:52Z"
        },
        {
          "tag": "v13.3.2",
          "kind": "patch",
          "published_at": "2026-03-18T15:39:26Z"
        },
        {
          "tag": "v13.3.0",
          "kind": "minor",
          "published_at": "2026-03-12T13:48:46Z"
        },
        {
          "tag": "v13.2.1",
          "kind": "patch",
          "published_at": "2026-03-05T18:05:34Z"
        },
        {
          "tag": "v13.1.10",
          "kind": "patch",
          "published_at": "2026-03-03T21:02:46Z"
        },
        {
          "tag": "v13.1.9",
          "kind": "patch",
          "published_at": "2026-03-01T15:54:31Z"
        },
        {
          "tag": "v13.1.8",
          "kind": "patch",
          "published_at": "2026-02-03T15:00:42Z"
        },
        {
          "tag": "v13.1.7",
          "kind": "patch",
          "published_at": "2026-02-01T16:41:53Z"
        },
        {
          "tag": "v13.1.6",
          "kind": "patch",
          "published_at": "2026-01-31T17:46:33Z"
        },
        {
          "tag": "v13.1.5",
          "kind": "patch",
          "published_at": "2026-01-28T13:08:48Z"
        },
        {
          "tag": "v13.1.4",
          "kind": "patch",
          "published_at": "2026-01-22T23:01:16Z"
        },
        {
          "tag": "v13.1.3",
          "kind": "patch",
          "published_at": "2026-01-14T01:16:30Z"
        },
        {
          "tag": "v13.1.2",
          "kind": "patch",
          "published_at": "2026-01-12T21:47:13Z"
        },
        {
          "tag": "v13.1.1",
          "kind": "patch",
          "published_at": "2026-01-06T12:40:03Z"
        },
        {
          "tag": "v13.1.0",
          "kind": "minor",
          "published_at": "2026-01-02T21:38:07Z"
        },
        {
          "tag": "v13.0.0",
          "kind": "major",
          "published_at": "2025-12-23T15:04:15Z"
        },
        {
          "tag": "v12.8.2",
          "kind": "patch",
          "published_at": "2025-12-11T21:51:06Z"
        },
        {
          "tag": "v12.8.1",
          "kind": "patch",
          "published_at": "2025-12-05T02:03:59Z"
        },
        {
          "tag": "v12.8.0",
          "kind": "minor",
          "published_at": "2025-12-02T20:40:00Z"
        },
        {
          "tag": "v12.7.5",
          "kind": "patch",
          "published_at": "2025-11-30T04:33:46Z"
        },
        {
          "tag": "v12.7.4",
          "kind": "patch",
          "published_at": "2025-11-26T04:29:10Z"
        },
        {
          "tag": "v12.7.3",
          "kind": "patch",
          "published_at": "2025-11-24T20:58:01Z"
        },
        {
          "tag": "v12.7.2",
          "kind": "patch",
          "published_at": "2025-11-24T14:57:53Z"
        },
        {
          "tag": "v12.7.1",
          "kind": "patch",
          "published_at": "2025-11-11T03:31:00Z"
        },
        {
          "tag": "v12.7.0",
          "kind": "minor",
          "published_at": "2025-11-06T14:53:10Z"
        },
        {
          "tag": "v12.6.0",
          "kind": "minor",
          "published_at": "2025-11-03T16:18:48Z"
        },
        {
          "tag": "v12.5.7",
          "kind": "patch",
          "published_at": "2025-11-01T17:40:53Z"
        },
        {
          "tag": "v12.5.6",
          "kind": "patch",
          "published_at": "2025-10-23T13:56:28Z"
        },
        {
          "tag": "v12.5.5",
          "kind": "patch",
          "published_at": "2025-10-21T01:25:40Z"
        },
        {
          "tag": "v12.5.4",
          "kind": "patch",
          "published_at": "2025-09-30T20:37:33Z"
        },
        {
          "tag": "v12.5.3",
          "kind": "patch",
          "published_at": "2025-08-20T12:53:10Z"
        },
        {
          "tag": "v12.5.2",
          "kind": "patch",
          "published_at": "2025-08-17T14:17:21Z"
        },
        {
          "tag": "v12.5.1",
          "kind": "patch",
          "published_at": "2025-08-15T17:22:21Z"
        },
        {
          "tag": "v12.5.0",
          "kind": "minor",
          "published_at": "2025-08-05T17:10:33Z"
        },
        {
          "tag": "v12.4.11",
          "kind": "patch",
          "published_at": "2025-07-29T12:13:58Z"
        },
        {
          "tag": "v12.4.10.2",
          "kind": "other",
          "published_at": "2025-07-27T17:49:07Z"
        },
        {
          "tag": "v12.4.10",
          "kind": "patch",
          "published_at": "2025-07-27T03:22:40Z"
        },
        {
          "tag": "v12.4.9",
          "kind": "patch",
          "published_at": "2025-07-22T14:41:18Z"
        },
        {
          "tag": "v12.4.8",
          "kind": "patch",
          "published_at": "2025-07-22T11:58:00Z"
        },
        {
          "tag": "v12.4.7",
          "kind": "patch",
          "published_at": "2025-07-18T11:40:28Z"
        },
        {
          "tag": "v12.4.6",
          "kind": "patch",
          "published_at": "2025-07-17T12:17:50Z"
        },
        {
          "tag": "v12.4.5",
          "kind": "patch",
          "published_at": "2025-06-25T11:11:46Z"
        },
        {
          "tag": "v12.4.4",
          "kind": "patch",
          "published_at": "2025-06-16T17:35:52Z"
        },
        {
          "tag": "v12.4.3",
          "kind": "patch",
          "published_at": "2025-05-10T21:02:46Z"
        },
        {
          "tag": "v12.4.2.2",
          "kind": "other",
          "published_at": "2025-05-10T03:18:48Z"
        },
        {
          "tag": "v12.4.2",
          "kind": "patch",
          "published_at": "2025-05-10T01:21:56Z"
        },
        {
          "tag": "v12.4.1",
          "kind": "patch",
          "published_at": "2025-05-07T23:42:41Z"
        },
        {
          "tag": "v12.4.0",
          "kind": "minor",
          "published_at": "2025-05-03T02:27:13Z"
        },
        {
          "tag": "v12.3.1",
          "kind": "patch",
          "published_at": "2025-04-28T23:03:23Z"
        },
        {
          "tag": "v12.3.0",
          "kind": "minor",
          "published_at": "2025-04-28T17:49:11Z"
        },
        {
          "tag": "v12.2.0",
          "kind": "minor",
          "published_at": "2025-03-22T10:52:02Z"
        },
        {
          "tag": "v12.1.0",
          "kind": "minor",
          "published_at": "2025-03-21T13:34:39Z"
        },
        {
          "tag": "v12.0.4",
          "kind": "patch",
          "published_at": "2025-03-19T03:12:16Z"
        },
        {
          "tag": "v12.0.3",
          "kind": "patch",
          "published_at": "2025-03-10T23:26:25Z"
        },
        {
          "tag": "v12.0.2",
          "kind": "patch",
          "published_at": "2025-03-03T01:45:06Z"
        },
        {
          "tag": "v12.0.1",
          "kind": "patch",
          "published_at": "2025-03-01T15:54:31Z"
        },
        {
          "tag": "v12.0.0",
          "kind": "major",
          "published_at": "2025-02-24T18:03:15Z"
        },
        {
          "tag": "v11.6.5",
          "kind": "patch",
          "published_at": "2025-02-18T01:18:31Z"
        },
        {
          "tag": "v11.6.4",
          "kind": "patch",
          "published_at": "2025-01-07T13:09:17Z"
        },
        {
          "tag": "v11.6.3",
          "kind": "patch",
          "published_at": "2024-12-06T18:21:50Z"
        },
        {
          "tag": "v11.6.2",
          "kind": "patch",
          "published_at": "2024-12-05T20:05:59Z"
        },
        {
          "tag": "v11.6.1",
          "kind": "patch",
          "published_at": "2024-12-02T13:25:58Z"
        },
        {
          "tag": "v11.5.5",
          "kind": "patch",
          "published_at": "2024-11-19T11:52:17Z"
        },
        {
          "tag": "v11.5.4",
          "kind": "patch",
          "published_at": "2024-11-15T04:05:29Z"
        },
        {
          "tag": "v11.5.2",
          "kind": "patch",
          "published_at": "2024-10-25T19:27:52Z"
        },
        {
          "tag": "v11.5.1",
          "kind": "patch",
          "published_at": "2024-10-16T17:13:00Z"
        },
        {
          "tag": "v11.5.0",
          "kind": "minor",
          "published_at": "2024-10-15T17:33:16Z"
        },
        {
          "tag": "v11.4.1",
          "kind": "patch",
          "published_at": "2024-09-18T13:24:35Z"
        },
        {
          "tag": "v11.4.0",
          "kind": "minor",
          "published_at": "2024-09-11T12:12:06Z"
        },
        {
          "tag": "v11.3.17",
          "kind": "patch",
          "published_at": "2024-09-09T18:30:34Z"
        },
        {
          "tag": "v11.3.16",
          "kind": "patch",
          "published_at": "2024-09-09T12:44:08Z"
        },
        {
          "tag": "v11.3.15",
          "kind": "patch",
          "published_at": "2024-09-05T13:25:28Z"
        },
        {
          "tag": "v11.3.14.2",
          "kind": "other",
          "published_at": "2024-06-26T12:09:26Z"
        },
        {
          "tag": "v11.3.13",
          "kind": "patch",
          "published_at": "2024-05-16T12:03:50Z"
        },
        {
          "tag": "v11.3.12",
          "kind": "patch",
          "published_at": "2024-05-15T11:07:55Z"
        },
        {
          "tag": "v11.3.11",
          "kind": "patch",
          "published_at": "2024-05-13T19:41:16Z"
        },
        {
          "tag": "v11.3.9",
          "kind": "patch",
          "published_at": "2024-05-07T02:12:05Z"
        },
        {
          "tag": "v11.3.8",
          "kind": "patch",
          "published_at": "2024-05-05T20:33:18Z"
        },
        {
          "tag": "v11.3.7",
          "kind": "patch",
          "published_at": "2024-04-04T12:31:34Z"
        },
        {
          "tag": "v11.3.6",
          "kind": "patch",
          "published_at": "2024-03-04T19:14:13Z"
        },
        {
          "tag": "v11.3.5",
          "kind": "patch",
          "published_at": "2024-02-29T19:54:33Z"
        },
        {
          "tag": "v11.3.4",
          "kind": "patch",
          "published_at": "2024-01-21T02:59:12Z"
        },
        {
          "tag": "v11.3.3",
          "kind": "patch",
          "published_at": "2024-01-19T14:42:43Z"
        },
        {
          "tag": "v11.3.2",
          "kind": "patch",
          "published_at": "2024-01-12T15:51:48Z"
        },
        {
          "tag": "v11.3.1",
          "kind": "patch",
          "published_at": "2024-01-04T15:22:55Z"
        },
        {
          "tag": "v11.3.0",
          "kind": "minor",
          "published_at": "2024-01-03T17:02:31Z"
        },
        {
          "tag": "v11.1.0",
          "kind": "minor",
          "published_at": "2023-10-19T02:52:47Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "07c2f2b2a1deb8c57601c2b131aba30c95be3097",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "Robert McRackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-17T18:53:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0c59f15e1076452e6668ac74fc00c6b223824b2",
          "body": "Mark macOS app bundle as APPL",
          "is_bot": false,
          "headline": "Merge pull request #1889 from rmcrackan/rmcrackan/homebrew-fix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-17T18:52:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "353a5b880042f7e306f5d1ec11d890a90b196cf3",
          "body": "…accept it. Thanks, @m-j-r !",
          "is_bot": false,
          "headline": "Mark macOS app bundle as APPL so Gatekeeper and Homebrew cask audits …",
          "author_name": "Robert McRackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-17T18:46:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "190818323d4d81b0ebc7131f85520c3e40409312",
          "body": "…ions/setup-dotnet-6\n\nBump actions/setup-dotnet from 5 to 6",
          "is_bot": false,
          "headline": "Merge pull request #1888 from rmcrackan/dependabot/github_actions/act…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-16T14:31:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f180430a3ff7361b0090abb2a2947d193569775b",
          "body": "Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 5 to 6.\n- [Release notes](https://github.com/actions/setup-dotnet/releases)\n- [Commits](https://github.com/actions/setup-dotnet/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-dotnet\n  dependency-version: '6'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/setup-dotnet from 5 to 6",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-16T14:12:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dec86bdee19a4b9a6e29461e1a4951e2b2963825",
          "body": "…ions/setup-node-7\n\nBump actions/setup-node from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #1887 from rmcrackan/dependabot/github_actions/act…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-14T14:25:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e4acd8046f16f84c280089149b795d67b21c434",
          "body": "Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.\n- [Release notes](https://github.com/actions/setup-node/releases)\n- [Commits](https://github.com/actions/setup-node/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-node\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/setup-node from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-14T14:12:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80c6c6b9d44658d0bff0bf27ccd6cbeb829635ab",
          "body": "Pause auto-scan on auth failure instead of spamming login dialogs",
          "is_bot": false,
          "headline": "Merge pull request #1886 from rmcrackan/rmcrackan/pause-autoscan",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-07T13:45:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cdaa09afff9d643a25db678d0c3d6d8e1d97907",
          "body": null,
          "is_bot": false,
          "headline": "Pause auto-scan on auth failure instead of spamming login dialogs",
          "author_name": "Robert McRackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-07-07T13:40:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ecc7e49a21de2c42303fdb92cec75809b12ffc23",
          "body": "…ions/checkout-7\n\nBump actions/checkout from 6 to 7",
          "is_bot": false,
          "headline": "Merge pull request #1883 from rmcrackan/dependabot/github_actions/act…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-21T12:55:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb419550155e00b648099593d2e286c95e5b1fe6",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v6...v7)\n\n---\nupdated-dependenc\n[…]\n:\n- dependency-name: actions/checkout\n  dependency-version: '7'\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump actions/checkout from 6 to 7",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-19T14:12:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a8e340450096967dc4e6165946f386860cf181ee",
          "body": "#1881 - Fix Linux in-app upgrades",
          "is_bot": false,
          "headline": "Merge pull request #1882 from rmcrackan/rmcrackan/1881-linux-upgrade",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T19:51:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ff15a07aaf943b3d054b2fa103de11e6b7d2d3b",
          "body": "…ckages instead of .deb when dnf is the native package manager.",
          "is_bot": false,
          "headline": "#1881 - Fix Linux in-app upgrades on RHEL/Fedora by selecting .rpm pa…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T19:36:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "674abd17074d615bfc7d42108ff57f647381099d",
          "body": "#1878 : Detect incomplete in-app upgrades, roll back install files, and show clear recovery messages",
          "is_bot": false,
          "headline": "Merge pull request #1880 from rmcrackan/rmcrackan/1878-upgrader",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T14:45:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d30086e53a1205688e004281858c22a7174c2e4a",
          "body": null,
          "is_bot": false,
          "headline": "bugfix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T14:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "82d4001f0a649848ce05e66c236572504558298c",
          "body": "…nd show clear recovery messages",
          "is_bot": false,
          "headline": "#1878 : Detect incomplete in-app upgrades, roll back install files, a…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T14:18:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ed4874c7603f10637b17b3a466ac5ced83a9d61",
          "body": "#1876 - update troubleshooting doc",
          "is_bot": false,
          "headline": "Merge pull request #1879 from rmcrackan/rmcrackan/1876-troubleshooting",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T13:07:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8898174507fed61c12caedd3bce1c53b8e42f0cb",
          "body": null,
          "is_bot": false,
          "headline": "updtae troubleshooting doc",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-17T13:06:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b4923112e8fdad17ea533978ad0b97fab6b07d8",
          "body": "#1873 , #1876 - Handle Windows Application Control blocking after in-app upgrades",
          "is_bot": false,
          "headline": "Merge pull request #1877 from rmcrackan/rmcrackan/win-app-ctrl",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-16T21:30:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d955cb760583ccf2aefbb112c864c026d952d5f8",
          "body": "…app upgrades",
          "is_bot": false,
          "headline": "#1873 , #1876 - Handle Windows Application Control blocking after in-…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-16T21:25:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23f36e2ef1d099a8ec0040dcd35598d2e95c7cd2",
          "body": "fix vite vulnerability",
          "is_bot": false,
          "headline": "Merge pull request #1875 from rmcrackan/rmcrackan/vite-security",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-16T15:28:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46dc400b14858642bb104298c04024833339668b",
          "body": null,
          "is_bot": false,
          "headline": "fix vite vulnerability",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-16T15:28:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f2e83232730bbf0f32cdf65697695474bcec03b",
          "body": "#1872 : Suggest Widevine when ADRM licenserequest fails with Sable acr:null",
          "is_bot": false,
          "headline": "Merge pull request #1874 from rmcrackan/rmcrackan/1872-widevine",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-16T15:20:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4bd7796f708f188a9a1e81334f78d12eac74d3a0",
          "body": "…r:null",
          "is_bot": false,
          "headline": "#1872 : Suggest Widevine when ADRM licenserequest fails with Sable ac…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-16T15:12:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6d83787289894a7c4e0b48d496bfffbfbd183f1",
          "body": "Fix esbuild GHSA-gv7w-rqvm-qjhr",
          "is_bot": false,
          "headline": "Merge pull request #1871 from rmcrackan/rmcrackan/security",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-14T19:25:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "348056691f5a69559c5bee930ced13ec7245f699",
          "body": "…ve esbuild to the patched release and add a VitePress esbuild compatibility setting so docs builds keep working with 0.28.x.",
          "is_bot": false,
          "headline": "Fix esbuild GHSA-gv7w-rqvm-qjhr by pinning 0.28.1 : Override transiti…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-14T19:24:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bd14bd5af4386e042e458ab44f5cd2bfb219f33",
          "body": "incr ver",
          "is_bot": false,
          "headline": "Merge pull request #1870 from rmcrackan/rmcrackan/incr-ver",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-12T15:54:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a85179f50abf30f58f0582e0b20ad8888fe61307",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-12T15:54:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "158ee3d5ba0f535eca8d11252e5c343b5b38cba7",
          "body": "#1867 - Fix duplicate-ASIN crashes. New Hangover recovery",
          "is_bot": false,
          "headline": "Merge pull request #1869 from rmcrackan/rmcrackan/1867-duplicate-asin",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-12T15:52:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b654a8b5515c3b4f17887f3bce4208451672e839",
          "body": null,
          "is_bot": false,
          "headline": "#1867 - Fix duplicate-ASIN crashes. New Hangover recovery",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-12T15:48:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc28398e1c027a641a7289c28c794b4d8e382bc5",
          "body": "#1865 - Add in-dialog \"Apply to all\" and \"Remember in Settings\"",
          "is_bot": false,
          "headline": "Merge pull request #1868 from rmcrackan/rmcrackan/1865-bad-book-setting",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-12T14:10:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d1b78f7e4a434c7a03c2ad6f3ef9068d363b335",
          "body": "…ad-book errors. Also a testing section when run in debug (ie: from visual studio)",
          "is_bot": false,
          "headline": "#1865 - Add in-dialog \"Apply to all\" and \"Remember in Settings\" for b…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-12T13:53:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a50712256c8fd8a37b97a3fedd9b7d9fabac577d",
          "body": "Rmcrackan/1862 security",
          "is_bot": false,
          "headline": "Merge pull request #1864 from rmcrackan/rmcrackan/1862-security",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-10T18:31:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4345971e81bfe39990876d47ee0fb33f68c09c8e",
          "body": null,
          "is_bot": false,
          "headline": "escape string to avoid accidental json injection",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-10T18:29:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ad458fe5bce39d50e486984d8ce4d882918df3d",
          "body": null,
          "is_bot": false,
          "headline": "CSPRNG-safe",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-10T16:12:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1547e6bec383cff72b18407fe42b1d0dea28b4e3",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "Robert",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T19:41:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81175e5427e5f7cabf28744ffdeb7db2635707df",
          "body": "Reliability: `hdiutil create` can fail on GitHub’s macOS runners with `Resource busy` even when the app build is fine. The retry wrapper gives it several attempts, waits between tries, and cleans up partial DMGs so transient runner issues are less likely to break the release.\n\nCorrectness: The scrip\n[…]\n made artifact upload fail with a misleading error. `set -euo pipefail` and explicit failure exits make a DMG creation failure stop the job immediately instead of pretending the bundle step succeeded.",
          "is_bot": false,
          "headline": "The edit targets two problems in the macOS bundle script.",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T18:42:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "14551c745f6007429638bb362042b08cecc4f958",
          "body": "Only elevate upgrader when necessary",
          "is_bot": false,
          "headline": "Merge pull request #1861 from rmcrackan/rmcrackan/elevate-upgrader",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T18:31:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3cfe3a8f08aa18c80a2e36306ba3a8c9eb1e5ce",
          "body": null,
          "is_bot": false,
          "headline": "Only elevate upgrader when necessary",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T18:30:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51fbe73ea1bf6a740c8fecc5ae4a3fad544cf563",
          "body": null,
          "is_bot": false,
          "headline": "make vitepress happy",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T18:23:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41fa7b71428557c3b1a7c531e777ea7e683c2490",
          "body": "Finish windows installers, phase 1",
          "is_bot": false,
          "headline": "Merge pull request #1860 from rmcrackan/rmcrackan/win-installer-phase-1",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T18:19:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7ce96e91dae768178549c0389251bcf571457ad",
          "body": null,
          "is_bot": false,
          "headline": "Finish windows installers, phase 1",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T18:03:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a25fd35f291636c3f73157ee17dd8fb23d39454d",
          "body": null,
          "is_bot": false,
          "headline": "Fix release upload path for merge-multiple artifact download",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T17:19:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20a99c6e2032124711c1fd06070790475340c53c",
          "body": null,
          "is_bot": false,
          "headline": "Exclude Docker cache blobs from release artifact download",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T15:59:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f39cfaccc76723108aff8b8dd466245c89719a88",
          "body": null,
          "is_bot": false,
          "headline": "Fix release artifact pattern for Libation-Classic assets",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T15:21:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6db78e4268455d3a73c63233e489e8194d7fe0ac",
          "body": "Fix arm64 Windows zip artifact name in CI matrix",
          "is_bot": false,
          "headline": "Merge pull request #1859 from rmcrackan/rmcrackan/windows-installer-fix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T15:03:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74e9cf24a8bc7ec4c0894da94ad8adf538771773",
          "body": null,
          "is_bot": false,
          "headline": "Fix arm64 Windows zip artifact name in CI matrix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T15:01:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ce88072c588c8eb32b6d701156d0521798bbc71",
          "body": "yaml bug fix",
          "is_bot": false,
          "headline": "Merge pull request #1858 from rmcrackan/rmcrackan/windows-installer-fix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:53:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9058c7368c0c50c8f7cff9cc3adeb8e7cbfd86fd",
          "body": null,
          "is_bot": false,
          "headline": "yaml bug fix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:53:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37d551775634025f0fb06fad7ca9b408ae887722",
          "body": "Add Windows installers to release build",
          "is_bot": false,
          "headline": "Merge pull request #1857 from rmcrackan/rmcrackan/windows-installer",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:45:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a338636352be4224f326679346e3292996fc101",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'master' into rmcrackan/windows-installer",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:44:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d03955a2cac42460ee10707994457e257714533b",
          "body": null,
          "is_bot": false,
          "headline": "Add Windows installers to release build",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:43:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2c5ae3c2e5a5c9e8188c1ee388e8361be061272",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "Robert",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:27:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb7e0857c61fe71662918cdef795f0c8e80f58bb",
          "body": "update backwards compat releaseindex in prep for future changes",
          "is_bot": false,
          "headline": "Merge pull request #1856 from rmcrackan/rmcrackan/releaseindex",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:15:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60965902caf367bfa2cff044b896eaba17ac3ce4",
          "body": null,
          "is_bot": false,
          "headline": "update backwards compat releaseindex in prep for future changes",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-08T14:15:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef62ee15e234cbda6732ceb82fc1a055d0ee4e81",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'master' of https://github.com/rmcrackan/Libation",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-07T16:56:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c285522a0c2e595273be9615dcb3c69124052790",
          "body": null,
          "is_bot": false,
          "headline": "Add contributor from PR #1854",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-07T16:56:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fb3eb152f0311969e885e26c32b4325c62564c8",
          "body": "…ock-deadlock\n\nSkip EF migration lock when no migrations are pending (fixes SQLite scan-hang #1729)",
          "is_bot": false,
          "headline": "Merge pull request #1854 from matalvernaz/fix/1729-sqlite-migration-l…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-07T16:55:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63325b9cadf79df9a53ec4cab00ab7a167853c96",
          "body": "DbContexts.GetContext() runs ApplyMigrations on every context creation,\ncalling Database.Migrate(). Migrate() acquires the EF migration lock\nbefore checking whether anything is pending. For SQLite that lock is a\npersisted row in __EFMigrationsLock with no timeout (SQLite has no\nconnection-scoped loc\n[…]\nns(), which only\nreads __EFMigrationsHistory and never acquires the lock. The steady-state\npath (schema already current) no longer touches the lock at all; first\nrun and real migrations are unchanged.",
          "is_bot": false,
          "headline": "Skip EF migration lock when no migrations are pending (#1729)",
          "author_name": "Matthew Alvernaz",
          "author_login": "matalvernaz",
          "committed_at": "2026-06-07T05:23:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "37a60ca654d5107caa5458096c6cde664bf23a28",
          "body": "increm ver",
          "is_bot": false,
          "headline": "Merge pull request #1853 from rmcrackan/rmcrackan-patch-1",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-05T14:42:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6623300883c47589f3c97588ce526eb633941c93",
          "body": null,
          "is_bot": false,
          "headline": "Update AppScaffolding.csproj",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-05T14:42:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "329df0882ad4ab803139323c540ac35deef0e36a",
          "body": "#1851 - threading bug",
          "is_bot": false,
          "headline": "Merge pull request #1852 from rmcrackan/rmcrackan/1851-threading",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-04T14:23:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da000694d744cfc59a8298c73dbe5370c4006846",
          "body": null,
          "is_bot": false,
          "headline": "upgrade dependency",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-04T14:17:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1a7a837f38398a21284256129c86b17cb6d8e79",
          "body": null,
          "is_bot": false,
          "headline": "CI bug. try upgrading",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-04T14:13:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "869917e0ce16ebfa0038f07deb42fa4466ad12a3",
          "body": null,
          "is_bot": false,
          "headline": "#1851 - threading bug",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-04T13:59:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d532e40fe9b023c16ed2851f62a2d7845bc1145f",
          "body": "Clean up docs",
          "is_bot": false,
          "headline": "Merge pull request #1850 from rmcrackan/rmcrackan/doc-cleanup",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-03T15:05:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ef5e95801ef5e2eaaef8d178a22e30685186680",
          "body": null,
          "is_bot": false,
          "headline": "Clean up docs",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-03T15:04:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c1c3c33ea8aa982cf41e2e6d7132e76a10dfce3e",
          "body": "better atmos docs",
          "is_bot": false,
          "headline": "Merge pull request #1849 from rmcrackan/rmcrackan/docs-better-atmos",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T20:45:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b31e7cb8197b546259c0ba4cef069f4dfe42a030",
          "body": null,
          "is_bot": false,
          "headline": "better atmos docs",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T20:44:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "314a46d59d372ab16eaf601f783c65a5d63e72e7",
          "body": "new page for spacial audio info",
          "is_bot": false,
          "headline": "Merge pull request #1848 from rmcrackan/rmcrackan/docs-spacial-audio",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T20:39:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "721f09a62bb579d0fbb4a2a1a74a205c0639aded",
          "body": null,
          "is_bot": false,
          "headline": "new page for spacial audio info",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T20:38:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "545b3057d41d29bf0f4415bb0381e3776e6050f7",
          "body": "#1845 - improve error message for common VPN blocking errors",
          "is_bot": false,
          "headline": "Merge pull request #1847 from rmcrackan/rmcrackan/1845-better-non-json",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T16:58:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c2ae2c8b0684adf55c27d2a060d68cfe0087107",
          "body": "… troubleshooting docs",
          "is_bot": false,
          "headline": "#1845 - improve error message for common VPN blocking errors. improve…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T16:53:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f456c68176681dfef7572ab90686bdc157a77028",
          "body": "#1844 - add lock to avoid race/NRE",
          "is_bot": false,
          "headline": "Merge pull request #1846 from rmcrackan/rmcrackan/1844-nre",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T14:59:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6c17053f7387ac52b252fd24d6cf5b5dd6fa04e",
          "body": null,
          "is_bot": false,
          "headline": "#1844 - add lock to avoid race/NRE",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-06-02T14:54:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c22b821bf5cbd47797f9a692bb8f969899e8e1e",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-25T15:16:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8902ddc56597ea8af899886815f1a0dd50482b0e",
          "body": "#1836 - Fix misleading \"Not enough disk space\" warnings",
          "is_bot": false,
          "headline": "Merge pull request #1838 from rmcrackan/rmcrackan/1836-disk-space",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-25T15:15:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ed98cbfffc86a221ed9f00d75d4a6c9d248226e",
          "body": "…alance machine speed vs long running process -- and test 'unreasonable' response time",
          "is_bot": false,
          "headline": "unit test fix: this is always going be a weird test. it's trying to b…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-25T14:58:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cf5d0b3fa9b8206b77a093aba15df84543fc14c",
          "body": null,
          "is_bot": false,
          "headline": "unit test bug fix: culture info",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-25T14:46:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bd1ea7ca462538b7398ebf9b399b1b0acfbdeaa",
          "body": null,
          "is_bot": false,
          "headline": "fix unit tests for windows-only logic",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-25T14:41:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8c5f0da686e20136cebc2802842be00dd0ef6e7",
          "body": "…d In progress are on different drives",
          "is_bot": false,
          "headline": "#1836 - Fix misleading \"Not enough disk space\" warnings when Books an…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-25T14:25:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3f272a48e6ef686b77a2bde2ae462544e76e30d",
          "body": null,
          "is_bot": false,
          "headline": "#1835 - add log file guidance to FAQ",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-22T19:00:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ee59738ebf96e7c74bf40a8bd5fe203b4072af2",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "Robert",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-21T14:36:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f57839c104ba335b9a41347acad9c329fdf0aa1e",
          "body": "Download works but queue goes red with Download PDF",
          "is_bot": false,
          "headline": "Merge pull request #1834 from rmcrackan/rmcrackan/1833-pdf-bug-fix",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-21T14:33:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d63fabd73d6b0dbae8370b420c36b063c51f9f63",
          "body": null,
          "is_bot": false,
          "headline": "Download works but queue goes red with Download PDF",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-21T14:33:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54a97cc3c4e6f2b4ee739e6773bf3b19306a7a26",
          "body": "Pin vite 6.4.2 for docs site (Dependabot GHSA-4w7w-66w2-5vf9)",
          "is_bot": false,
          "headline": "Merge pull request #1830 from rmcrackan/fix/docs-vite-security-override",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-19T13:44:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e3daa40dc38adbdfdc36e46a116a4fdc79bc479",
          "body": "VitePress 1.6.4 requires vite ^5.4.14, which has no backport for\nGHSA-4w7w-66w2-5vf9. An npm override keeps VitePress 1.x while\nusing a patched vite. Deploy workflow now watches package files.\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "Pin vite 6.4.2 for docs site to resolve Dependabot alert.",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-19T13:40:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8f3f069d5414f069e0feab144926b457d30783d8",
          "body": "incr ver",
          "is_bot": false,
          "headline": "Merge pull request #1829 from rmcrackan/rmcrakan/13-4-2",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-19T12:57:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88e3bbab89a45df945827c6ef82b87b07a157b57",
          "body": "…ingle\n\n#1827 - CLI option to liberate single book",
          "is_bot": false,
          "headline": "Merge pull request #1828 from rmcrackan/rmcrackan/1827-cli-liberate-s…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-19T12:56:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca52ed4b7af8b264652e3f3c6d8b6f059b31f175",
          "body": null,
          "is_bot": false,
          "headline": "incr ver",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-19T12:55:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb4a5298ae9243fca8818edb61f9b9816393fdd3",
          "body": null,
          "is_bot": false,
          "headline": "#1827 - CLI option to liberate single book",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-19T12:51:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9512e62debe9dd53f427ea8d28d9b176903c0e3a",
          "body": "#1819 - Better NTFS invalid character note",
          "is_bot": false,
          "headline": "Merge pull request #1824 from rmcrackan/rmcrackan/1819-ntfs-note",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T20:47:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91174ed8ddeab35385568474460e129884963825",
          "body": "#1823 - Address full disk better",
          "is_bot": false,
          "headline": "Merge pull request #1826 from rmcrackan/rmcrackan/1823-full-disk",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T14:09:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9490966bba85a25e0051fb177fc4fb21c331243",
          "body": "…chain, so disk full on PDF stops the queue instead of counting as success.\n\n* Detection: Quota / NAS “out of space” messages are treated like disk full, not generic retries.",
          "is_bot": false,
          "headline": "* Multi-step backup: PDF and later steps now run in the same awaited …",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T14:00:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1114b410ebd552640268de4f157a25e7a7926b7",
          "body": null,
          "is_bot": false,
          "headline": "sync/async bug fixes",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T13:53:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49e9b0c9ceddcbc4064eb2ee31d92fe3a2c33900",
          "body": null,
          "is_bot": false,
          "headline": "oops, wrong branch. revert",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T13:42:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b0d1afc48f166ff62cb304bb6b2a3aed39a11c4",
          "body": null,
          "is_bot": false,
          "headline": "Fix build failures on non-windows",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T13:39:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77f518f8d3e850f91c74ce8f9442df839ec2e9e5",
          "body": "…e, fail safely when space cannot be queried, and do not take down the UI or spam the user when the disk is full.",
          "is_bot": false,
          "headline": "#1823 - Address full disk better. Fail clearly and early when possibl…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T13:20:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f1d4a383b01be40908265b79b07234a5b88d5fa",
          "body": "…grade\n\n#1822 - Fix the startup crash after auto-upgrade",
          "is_bot": false,
          "headline": "Merge pull request #1825 from rmcrackan/rmcrackan/1822-crash-after-up…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T13:02:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74b18c170a5ebade716b78daba70d581f1f64037",
          "body": "…ry only after InteropFactory assembly resolution is ready, checking that Microsoft.EntityFrameworkCore.Sqlite.dll is present in the install folder, and showing a clear reinstall message instead of a generic \"Unexpected error\" when that still fails.",
          "is_bot": false,
          "headline": "#1822 - Fix the startup crash after auto-upgrade by loading the libra…",
          "author_name": "rmcrackan",
          "author_login": "rmcrackan",
          "committed_at": "2026-05-18T12:54:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 769,
      "latest_release_at": "2026-07-17T19:22:52Z",
      "latest_release_tag": "v13.5.1",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 46,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 8.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 303,
      "stars": 5936,
      "watchers": 69,
      "fork_history": {
        "days": [
          {
            "date": "2020-01-19",
            "count": 1
          },
          {
            "date": "2020-12-02",
            "count": 1
          },
          {
            "date": "2021-01-23",
            "count": 1
          },
          {
            "date": "2021-03-08",
            "count": 1
          },
          {
            "date": "2021-04-04",
            "count": 1
          },
          {
            "date": "2021-05-11",
            "count": 1
          },
          {
            "date": "2021-05-20",
            "count": 1
          },
          {
            "date": "2021-06-16",
            "count": 1
          },
          {
            "date": "2021-07-03",
            "count": 2
          },
          {
            "date": "2021-07-19",
            "count": 1
          },
          {
            "date": "2021-08-01",
            "count": 1
          },
          {
            "date": "2021-08-21",
            "count": 1
          },
          {
            "date": "2021-08-25",
            "count": 1
          },
          {
            "date": "2021-09-25",
            "count": 1
          },
          {
            "date": "2021-10-14",
            "count": 1
          },
          {
            "date": "2021-10-28",
            "count": 1
          },
          {
            "date": "2021-11-04",
            "count": 1
          },
          {
            "date": "2021-11-05",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2021-11-26",
            "count": 1
          },
          {
            "date": "2022-01-01",
            "count": 1
          },
          {
            "date": "2022-01-09",
            "count": 1
          },
          {
            "date": "2022-01-11",
            "count": 1
          },
          {
            "date": "2022-01-30",
            "count": 1
          },
          {
            "date": "2022-02-05",
            "count": 1
          },
          {
            "date": "2022-02-16",
            "count": 1
          },
          {
            "date": "2022-02-23",
            "count": 1
          },
          {
            "date": "2022-03-14",
            "count": 1
          },
          {
            "date": "2022-04-06",
            "count": 1
          },
          {
            "date": "2022-05-12",
            "count": 1
          },
          {
            "date": "2022-05-14",
            "count": 1
          },
          {
            "date": "2022-05-28",
            "count": 1
          },
          {
            "date": "2022-06-14",
            "count": 1
          },
          {
            "date": "2022-06-23",
            "count": 1
          },
          {
            "date": "2022-08-09",
            "count": 1
          },
          {
            "date": "2022-09-02",
            "count": 1
          },
          {
            "date": "2022-11-23",
            "count": 1
          },
          {
            "date": "2022-12-15",
            "count": 1
          },
          {
            "date": "2022-12-20",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 1
          },
          {
            "date": "2023-01-08",
            "count": 1
          },
          {
            "date": "2023-02-04",
            "count": 1
          },
          {
            "date": "2023-02-07",
            "count": 1
          },
          {
            "date": "2023-02-09",
            "count": 1
          },
          {
            "date": "2023-02-13",
            "count": 1
          },
          {
            "date": "2023-02-14",
            "count": 1
          },
          {
            "date": "2023-02-16",
            "count": 1
          },
          {
            "date": "2023-03-09",
            "count": 1
          },
          {
            "date": "2023-03-18",
            "count": 1
          },
          {
            "date": "2023-03-28",
            "count": 1
          },
          {
            "date": "2023-04-01",
            "count": 1
          },
          {
            "date": "2023-04-13",
            "count": 1
          },
          {
            "date": "2023-04-15",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-04-22",
            "count": 2
          },
          {
            "date": "2023-04-30",
            "count": 1
          },
          {
            "date": "2023-05-02",
            "count": 1
          },
          {
            "date": "2023-05-18",
            "count": 1
          },
          {
            "date": "2023-05-22",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-06-09",
            "count": 1
          },
          {
            "date": "2023-06-13",
            "count": 1
          },
          {
            "date": "2023-06-14",
            "count": 1
          },
          {
            "date": "2023-06-26",
            "count": 1
          },
          {
            "date": "2023-07-08",
            "count": 1
          },
          {
            "date": "2023-07-31",
            "count": 1
          },
          {
            "date": "2023-08-04",
            "count": 1
          },
          {
            "date": "2023-08-06",
            "count": 1
          },
          {
            "date": "2023-08-07",
            "count": 1
          },
          {
            "date": "2023-08-14",
            "count": 1
          },
          {
            "date": "2023-08-30",
            "count": 1
          },
          {
            "date": "2023-09-05",
            "count": 1
          },
          {
            "date": "2023-09-15",
            "count": 1
          },
          {
            "date": "2023-10-09",
            "count": 1
          },
          {
            "date": "2023-10-31",
            "count": 1
          },
          {
            "date": "2023-11-10",
            "count": 1
          },
          {
            "date": "2023-11-20",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-12-07",
            "count": 1
          },
          {
            "date": "2023-12-08",
            "count": 1
          },
          {
            "date": "2023-12-12",
            "count": 1
          },
          {
            "date": "2023-12-28",
            "count": 1
          },
          {
            "date": "2023-12-30",
            "count": 1
          },
          {
            "date": "2024-01-03",
            "count": 1
          },
          {
            "date": "2024-01-04",
            "count": 1
          },
          {
            "date": "2024-01-08",
            "count": 1
          },
          {
            "date": "2024-01-09",
            "count": 1
          },
          {
            "date": "2024-01-16",
            "count": 1
          },
          {
            "date": "2024-01-18",
            "count": 2
          },
          {
            "date": "2024-01-19",
            "count": 1
          },
          {
            "date": "2024-01-21",
            "count": 1
          },
          {
            "date": "2024-02-05",
            "count": 1
          },
          {
            "date": "2024-02-09",
            "count": 1
          },
          {
            "date": "2024-02-10",
            "count": 1
          },
          {
            "date": "2024-02-13",
            "count": 1
          },
          {
            "date": "2024-02-20",
            "count": 1
          },
          {
            "date": "2024-02-22",
            "count": 1
          },
          {
            "date": "2024-02-25",
            "count": 1
          },
          {
            "date": "2024-03-06",
            "count": 1
          },
          {
            "date": "2024-03-08",
            "count": 1
          },
          {
            "date": "2024-03-20",
            "count": 1
          },
          {
            "date": "2024-03-22",
            "count": 1
          },
          {
            "date": "2024-04-01",
            "count": 1
          },
          {
            "date": "2024-04-13",
            "count": 1
          },
          {
            "date": "2024-04-17",
            "count": 1
          },
          {
            "date": "2024-04-26",
            "count": 1
          },
          {
            "date": "2024-04-30",
            "count": 1
          },
          {
            "date": "2024-05-08",
            "count": 2
          },
          {
            "date": "2024-05-11",
            "count": 1
          },
          {
            "date": "2024-05-19",
            "count": 1
          },
          {
            "date": "2024-05-20",
            "count": 1
          },
          {
            "date": "2024-06-02",
            "count": 1
          },
          {
            "date": "2024-06-12",
            "count": 1
          },
          {
            "date": "2024-06-20",
            "count": 1
          },
          {
            "date": "2024-06-25",
            "count": 1
          },
          {
            "date": "2024-06-27",
            "count": 1
          },
          {
            "date": "2024-07-12",
            "count": 1
          },
          {
            "date": "2024-07-24",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-08-09",
            "count": 1
          },
          {
            "date": "2024-08-20",
            "count": 1
          },
          {
            "date": "2024-08-24",
            "count": 1
          },
          {
            "date": "2024-09-01",
            "count": 1
          },
          {
            "date": "2024-09-16",
            "count": 1
          },
          {
            "date": "2024-09-18",
            "count": 1
          },
          {
            "date": "2024-09-23",
            "count": 1
          },
          {
            "date": "2024-10-08",
            "count": 1
          },
          {
            "date": "2024-10-09",
            "count": 1
          },
          {
            "date": "2024-10-10",
            "count": 2
          },
          {
            "date": "2024-10-15",
            "count": 1
          },
          {
            "date": "2024-10-19",
            "count": 1
          },
          {
            "date": "2024-10-23",
            "count": 1
          },
          {
            "date": "2024-10-24",
            "count": 1
          },
          {
            "date": "2024-10-25",
            "count": 1
          },
          {
            "date": "2024-10-27",
            "count": 2
          },
          {
            "date": "2024-11-08",
            "count": 1
          },
          {
            "date": "2024-11-09",
            "count": 1
          },
          {
            "date": "2024-11-14",
            "count": 1
          },
          {
            "date": "2024-11-20",
            "count": 1
          },
          {
            "date": "2024-12-01",
            "count": 1
          },
          {
            "date": "2024-12-03",
            "count": 1
          },
          {
            "date": "2024-12-09",
            "count": 1
          },
          {
            "date": "2024-12-14",
            "count": 1
          },
          {
            "date": "2024-12-17",
            "count": 1
          },
          {
            "date": "2024-12-22",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2024-12-30",
            "count": 1
          },
          {
            "date": "2025-01-11",
            "count": 1
          },
          {
            "date": "2025-01-13",
            "count": 1
          },
          {
            "date": "2025-01-19",
            "count": 1
          },
          {
            "date": "2025-01-23",
            "count": 1
          },
          {
            "date": "2025-01-25",
            "count": 1
          },
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 1
          },
          {
            "date": "2025-02-08",
            "count": 1
          },
          {
            "date": "2025-02-10",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-02-23",
            "count": 1
          },
          {
            "date": "2025-02-26",
            "count": 1
          },
          {
            "date": "2025-02-27",
            "count": 1
          },
          {
            "date": "2025-03-01",
            "count": 1
          },
          {
            "date": "2025-03-05",
            "count": 1
          },
          {
            "date": "2025-03-07",
            "count": 1
          },
          {
            "date": "2025-03-10",
            "count": 1
          },
          {
            "date": "2025-03-12",
            "count": 1
          },
          {
            "date": "2025-03-31",
            "count": 1
          },
          {
            "date": "2025-04-14",
            "count": 1
          },
          {
            "date": "2025-04-19",
            "count": 1
          },
          {
            "date": "2025-04-22",
            "count": 1
          },
          {
            "date": "2025-04-27",
            "count": 1
          },
          {
            "date": "2025-04-29",
            "count": 1
          },
          {
            "date": "2025-05-05",
            "count": 2
          },
          {
            "date": "2025-05-06",
            "count": 1
          },
          {
            "date": "2025-05-08",
            "count": 2
          },
          {
            "date": "2025-05-12",
            "count": 3
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-05-26",
            "count": 1
          },
          {
            "date": "2025-06-02",
            "count": 1
          },
          {
            "date": "2025-06-03",
            "count": 2
          },
          {
            "date": "2025-06-05",
            "count": 1
          },
          {
            "date": "2025-06-11",
            "count": 1
          },
          {
            "date": "2025-06-16",
            "count": 1
          },
          {
            "date": "2025-06-18",
            "count": 1
          },
          {
            "date": "2025-06-21",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-06-30",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-17",
            "count": 1
          },
          {
            "date": "2025-07-21",
            "count": 2
          },
          {
            "date": "2025-07-25",
            "count": 1
          },
          {
            "date": "2025-07-27",
            "count": 1
          },
          {
            "date": "2025-07-28",
            "count": 2
          },
          {
            "date": "2025-07-29",
            "count": 1
          },
          {
            "date": "2025-08-06",
            "count": 1
          },
          {
            "date": "2025-08-07",
            "count": 1
          },
          {
            "date": "2025-08-08",
            "count": 1
          },
          {
            "date": "2025-08-10",
            "count": 1
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-15",
            "count": 1
          },
          {
            "date": "2025-08-25",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 1
          },
          {
            "date": "2025-08-28",
            "count": 1
          },
          {
            "date": "2025-08-30",
            "count": 1
          },
          {
            "date": "2025-09-01",
            "count": 1
          },
          {
            "date": "2025-09-02",
            "count": 1
          },
          {
            "date": "2025-09-03",
            "count": 1
          },
          {
            "date": "2025-09-19",
            "count": 1
          },
          {
            "date": "2025-09-30",
            "count": 2
          },
          {
            "date": "2025-10-04",
            "count": 1
          },
          {
            "date": "2025-10-07",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-11",
            "count": 1
          },
          {
            "date": "2025-10-17",
            "count": 1
          },
          {
            "date": "2025-10-20",
            "count": 1
          },
          {
            "date": "2025-10-22",
            "count": 1
          },
          {
            "date": "2025-10-27",
            "count": 1
          },
          {
            "date": "2025-11-05",
            "count": 1
          },
          {
            "date": "2025-11-07",
            "count": 1
          },
          {
            "date": "2025-11-08",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-11-15",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          },
          {
            "date": "2025-11-21",
            "count": 2
          },
          {
            "date": "2025-12-01",
            "count": 1
          },
          {
            "date": "2025-12-08",
            "count": 1
          },
          {
            "date": "2025-12-10",
            "count": 2
          },
          {
            "date": "2025-12-13",
            "count": 1
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 1
          },
          {
            "date": "2025-12-20",
            "count": 2
          },
          {
            "date": "2025-12-21",
            "count": 1
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-01-03",
            "count": 1
          },
          {
            "date": "2026-01-16",
            "count": 1
          },
          {
            "date": "2026-01-27",
            "count": 1
          },
          {
            "date": "2026-01-30",
            "count": 1
          },
          {
            "date": "2026-01-31",
            "count": 2
          },
          {
            "date": "2026-02-01",
            "count": 2
          },
          {
            "date": "2026-02-11",
            "count": 1
          },
          {
            "date": "2026-02-14",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 1
          },
          {
            "date": "2026-02-27",
            "count": 1
          },
          {
            "date": "2026-03-07",
            "count": 2
          },
          {
            "date": "2026-03-10",
            "count": 1
          },
          {
            "date": "2026-03-15",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-04-10",
            "count": 1
          },
          {
            "date": "2026-04-14",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 2
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-05-13",
            "count": 2
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 2
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-28",
            "count": 2
          },
          {
            "date": "2026-05-29",
            "count": 2
          },
          {
            "date": "2026-06-07",
            "count": 2
          },
          {
            "date": "2026-06-14",
            "count": 1
          },
          {
            "date": "2026-06-15",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 2
          },
          {
            "date": "2026-06-25",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          },
          {
            "date": "2026-07-17",
            "count": 2
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 300,
        "total_forks": 303
      },
      "star_history": null,
      "open_issues_and_prs": 60
    },
    "ai_readiness": {
      "has_nix": true,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "Source/AaxDecrypter/AaxDecrypter.csproj",
        "Source/AppScaffolding/AppScaffolding.csproj",
        "Source/ApplicationServices/ApplicationServices.csproj",
        "Source/AudibleUtilities/AudibleUtilities.csproj",
        "Source/DataLayer.Postgres/DataLayer.Postgres.csproj",
        "Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj",
        "Source/DataLayer/DataLayer.csproj",
        "Source/DtoImporterService/DtoImporterService.csproj",
        "Source/FileLiberator/FileLiberator.csproj",
        "Source/FileManager/FileManager.csproj",
        "Source/HangoverAvalonia/HangoverAvalonia.csproj",
        "Source/HangoverBase/HangoverBase.csproj",
        "Source/HangoverWinForms/HangoverWinForms.csproj",
        "Source/LibationAvalonia/LibationAvalonia.csproj",
        "Source/LibationCli/LibationCli.csproj",
        "Source/LibationFileManager/LibationFileManager.csproj",
        "Source/LibationSearchEngine/LibationSearchEngine.csproj",
        "Source/LibationUiBase/LibationUiBase.csproj",
        "Source/LibationWinForms/LibationWinForms.csproj",
        "Source/LoadByOS/LinuxConfigApp/LinuxConfigApp.csproj",
        "Source/LoadByOS/MacOSConfigApp/MacOSConfigApp.csproj",
        "Source/LoadByOS/WindowsConfigApp/WindowsConfigApp.csproj",
        "Source/_Demos/LoadByOS/CrossPlatformClientExe/CrossPlatformClientExe.csproj",
        "Source/_Demos/LoadByOS/LinuxConfigApp/LinuxConfigApp.csproj",
        "Source/_Demos/LoadByOS/WindowsConfigApp/WindowsConfigApp.csproj",
        "Source/_Tests/AssertionHelper/AssertionHelper.csproj",
        "Source/_Tests/AudibleUtilities.Tests/AudibleUtilities.Tests.csproj",
        "Source/_Tests/FileLiberator.Tests/FileLiberator.Tests.csproj",
        "Source/_Tests/FileManager.Tests/FileManager.Tests.csproj",
        "Source/_Tests/LibationFileManager.Tests/LibationFileManager.Tests.csproj",
        "Source/_Tests/LibationSearchEngine.Tests/LibationSearchEngine.Tests.csproj",
        "Source/_Tests/LibationUiBase.Tests/LibationUiBase.Tests.csproj"
      ],
      "largest_source_bytes": 566907,
      "source_files_sampled": 551,
      "oversized_source_files": 3,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 211,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "AAXClean.Codecs",
          "manifest": "Source/AaxDecrypter/AaxDecrypter.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.2"
        },
        {
          "name": "Octokit",
          "manifest": "Source/AppScaffolding/AppScaffolding.csproj",
          "ecosystem": "nuget",
          "version_constraint": "14.0.0"
        },
        {
          "name": "Serilog.Sinks.Console",
          "manifest": "Source/AppScaffolding/AppScaffolding.csproj",
          "ecosystem": "nuget",
          "version_constraint": "6.1.1"
        },
        {
          "name": "Serilog.Sinks.File",
          "manifest": "Source/AppScaffolding/AppScaffolding.csproj",
          "ecosystem": "nuget",
          "version_constraint": "7.0.0"
        },
        {
          "name": "CsvHelper",
          "manifest": "Source/ApplicationServices/ApplicationServices.csproj",
          "ecosystem": "nuget",
          "version_constraint": "33.1.0"
        },
        {
          "name": "ClosedXML",
          "manifest": "Source/ApplicationServices/ApplicationServices.csproj",
          "ecosystem": "nuget",
          "version_constraint": "0.105.0"
        },
        {
          "name": "AudibleApi",
          "manifest": "Source/AudibleUtilities/AudibleUtilities.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.2.0.1"
        },
        {
          "name": "Google.Protobuf",
          "manifest": "Source/AudibleUtilities/AudibleUtilities.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.34.1"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Design",
          "manifest": "Source/DataLayer.Postgres/DataLayer.Postgres.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Tools",
          "manifest": "Source/DataLayer.Postgres/DataLayer.Postgres.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Design",
          "manifest": "Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Tools",
          "manifest": "Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Dinah.Core",
          "manifest": "Source/DataLayer/DataLayer.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.0.1"
        },
        {
          "name": "Dinah.EntityFrameworkCore",
          "manifest": "Source/DataLayer/DataLayer.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.0.1"
        },
        {
          "name": "Npgsql.EntityFrameworkCore.PostgreSQL",
          "manifest": "Source/DataLayer/DataLayer.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.1"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Sqlite",
          "manifest": "Source/DataLayer/DataLayer.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Design",
          "manifest": "Source/DataLayer/DataLayer.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Microsoft.EntityFrameworkCore.Tools",
          "manifest": "Source/DataLayer/DataLayer.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "Dinah.Core",
          "manifest": "Source/FileManager/FileManager.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.0.1"
        },
        {
          "name": "Polly",
          "manifest": "Source/FileManager/FileManager.csproj",
          "ecosystem": "nuget",
          "version_constraint": "8.6.6"
        },
        {
          "name": "Avalonia.Desktop",
          "manifest": "Source/HangoverAvalonia/HangoverAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "Avalonia.Diagnostics",
          "manifest": "Source/HangoverAvalonia/HangoverAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "11.3.14"
        },
        {
          "name": "ReactiveUI.Avalonia",
          "manifest": "Source/HangoverAvalonia/HangoverAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "Avalonia.Themes.Fluent",
          "manifest": "Source/HangoverAvalonia/HangoverAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "Avalonia.Controls.ColorPicker",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "Avalonia.Controls.WebView",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.0"
        },
        {
          "name": "Avalonia.Diagnostics",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "11.3.14"
        },
        {
          "name": "Avalonia.Controls.DataGrid",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.0"
        },
        {
          "name": "Avalonia.Desktop",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "ReactiveUI.Avalonia",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "Avalonia.Themes.Fluent",
          "manifest": "Source/LibationAvalonia/LibationAvalonia.csproj",
          "ecosystem": "nuget",
          "version_constraint": "12.0.2"
        },
        {
          "name": "CommandLineParser",
          "manifest": "Source/LibationCli/LibationCli.csproj",
          "ecosystem": "nuget",
          "version_constraint": "2.9.1"
        },
        {
          "name": "AudibleApi",
          "manifest": "Source/LibationFileManager/LibationFileManager.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.2.0.1"
        },
        {
          "name": "Microsoft.Extensions.Configuration.Json",
          "manifest": "Source/LibationFileManager/LibationFileManager.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.7"
        },
        {
          "name": "NameParserSharp",
          "manifest": "Source/LibationFileManager/LibationFileManager.csproj",
          "ecosystem": "nuget",
          "version_constraint": "1.5.0"
        },
        {
          "name": "Serilog.Exceptions",
          "manifest": "Source/LibationFileManager/LibationFileManager.csproj",
          "ecosystem": "nuget",
          "version_constraint": "8.4.0"
        },
        {
          "name": "LuceneNet303r2",
          "manifest": "Source/LibationSearchEngine/LibationSearchEngine.csproj",
          "ecosystem": "nuget",
          "version_constraint": "3.0.3.11"
        },
        {
          "name": "Dinah.Core.WindowsDesktop",
          "manifest": "Source/LibationWinForms/LibationWinForms.csproj",
          "ecosystem": "nuget",
          "version_constraint": "10.0.0.1"
        },
        {
          "name": "Microsoft.Web.WebView2",
          "manifest": "Source/LibationWinForms/LibationWinForms.csproj",
          "ecosystem": "nuget",
          "version_constraint": "1.0.3912.50"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "AAXClean.Codecs",
            "direct": true,
            "version": "3.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "AudibleApi",
            "direct": true,
            "version": "10.2.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Controls.ColorPicker",
            "direct": true,
            "version": "12.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Controls.DataGrid",
            "direct": true,
            "version": "12.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Controls.WebView",
            "direct": true,
            "version": "12.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Desktop",
            "direct": true,
            "version": "12.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Diagnostics",
            "direct": true,
            "version": "11.3.14",
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Themes.Fluent",
            "direct": true,
            "version": "12.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "ClosedXML",
            "direct": true,
            "version": "0.105.0",
            "ecosystem": "nuget"
          },
          {
            "name": "CommandLineParser",
            "direct": true,
            "version": "2.9.1",
            "ecosystem": "nuget"
          },
          {
            "name": "CsvHelper",
            "direct": true,
            "version": "33.1.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Dinah.Core",
            "direct": true,
            "version": "10.0.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Dinah.Core.WindowsDesktop",
            "direct": true,
            "version": "10.0.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Dinah.EntityFrameworkCore",
            "direct": true,
            "version": "10.0.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Google.Protobuf",
            "direct": true,
            "version": "3.34.1",
            "ecosystem": "nuget"
          },
          {
            "name": "LuceneNet303r2",
            "direct": true,
            "version": "3.0.3.11",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Design",
            "direct": true,
            "version": "10.0.7",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Sqlite",
            "direct": true,
            "version": "10.0.7",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Tools",
            "direct": true,
            "version": "10.0.7",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration.Json",
            "direct": true,
            "version": "10.0.7",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Web.WebView2",
            "direct": true,
            "version": "1.0.3912.50",
            "ecosystem": "nuget"
          },
          {
            "name": "NameParserSharp",
            "direct": true,
            "version": "1.5.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Npgsql.EntityFrameworkCore.PostgreSQL",
            "direct": true,
            "version": "10.0.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Octokit",
            "direct": true,
            "version": "14.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Polly",
            "direct": true,
            "version": "8.6.6",
            "ecosystem": "nuget"
          },
          {
            "name": "ReactiveUI.Avalonia",
            "direct": true,
            "version": "12.0.2",
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Exceptions",
            "direct": true,
            "version": "8.4.0",
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.Console",
            "direct": true,
            "version": "6.1.1",
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.File",
            "direct": true,
            "version": "7.0.0",
            "ecosystem": "nuget"
          },
          {
            "name": "@algolia/abtesting",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-core",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-plugin-algolia-insights",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-preset-algolia",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-shared",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-abtesting",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-analytics",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-common",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-insights",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-personalization",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-query-suggestions",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-search",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/ingestion",
            "direct": false,
            "version": "1.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/monitoring",
            "direct": false,
            "version": "1.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/recommend",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-browser-xhr",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-fetch",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-node-http",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/css",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/js",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/react",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/simple-icons",
            "direct": false,
            "version": "1.2.63",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/types",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/transformers",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hast",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/markdown-it",
            "direct": false,
            "version": "14.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdast",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/web-bluetooth",
            "direct": false,
            "version": "0.0.21",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": false,
            "version": "5.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/core",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/integrations",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/metadata",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/shared",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "algoliasearch",
            "direct": false,
            "version": "5.46.0",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "ccount",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-html4",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "comma-separated-tokens",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "copy-anything",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex-xs",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "focus-trap",
            "direct": false,
            "version": "7.6.6",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-html",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-whitespace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "html-void-elements",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-what",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "mark.js",
            "direct": false,
            "version": "8.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "minisearch",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "mitt",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.12",
            "ecosystem": "npm"
          },
          {
            "name": "preact",
            "direct": false,
            "version": "10.28.2",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex-recursion",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex-utilities",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "search-insights",
            "direct": false,
            "version": "2.17.3",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "space-separated-tokens",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "speakingurl",
            "direct": false,
            "version": "14.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "stringify-entities",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "superjson",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "tabbable",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "npm"
          },
          {
            "name": "trim-lines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-position",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-stringify-position",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vfile",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "6.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": false,
            "version": "3.5.25",
            "ecosystem": "npm"
          },
          {
            "name": "zwitch",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "MSTest",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "nuget"
          },
          {
            "name": "MSTest.TestFramework",
            "direct": false,
            "version": "4.2.2",
            "ecosystem": "nuget"
          },
          {
            "name": "SixLabors.ImageSharp",
            "direct": false,
            "version": "3.1.12",
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 211,
        "direct_count": 29,
        "indirect_count": 182
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 3,
        "merged_prs": 418,
        "open_issues": 57,
        "closed_ratio": 0.96,
        "closed_issues": 1372,
        "closed_unmerged_prs": 20
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "Mbucari",
          "commits": 1482,
          "avatar_url": "https://avatars.githubusercontent.com/u/37587114?v=4"
        },
        {
          "type": "User",
          "login": "rmcrackan",
          "commits": 1126,
          "avatar_url": "https://avatars.githubusercontent.com/u/22817130?v=4"
        },
        {
          "type": "User",
          "login": "Jo-Be-Co",
          "commits": 66,
          "avatar_url": "https://avatars.githubusercontent.com/u/22118442?v=4"
        },
        {
          "type": "User",
          "login": "pixil98",
          "commits": 28,
          "avatar_url": "https://avatars.githubusercontent.com/u/46978190?v=4"
        },
        {
          "type": "User",
          "login": "delebash",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/2220160?v=4"
        },
        {
          "type": "User",
          "login": "seanke",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/34672648?v=4"
        },
        {
          "type": "User",
          "login": "jwillikers",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/19399197?v=4"
        },
        {
          "type": "User",
          "login": "shuvashish76",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/48226312?v=4"
        },
        {
          "type": "User",
          "login": "twsouthwick",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/583206?v=4"
        },
        {
          "type": "User",
          "login": "cherez",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/792372?v=4"
        }
      ],
      "contributors_sampled": 30,
      "top_contributor_share": 0.539
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": false,
      "ci_workflows": [
        "build-linux.yml",
        "build-mac.yml",
        "build-windows.yml",
        "build.yml",
        "deploy.yml",
        "docker.yml",
        "exempt-creators-backfill.yml",
        "exempt-creators.yml",
        "release.yml",
        "stale.yml",
        "sync-labels.yml",
        "validate-appstream-metainfo.yaml",
        "validate-desktop-file.yaml",
        "validate.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "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": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/12 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 25 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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "07c2f2b2a1deb8c57601c2b131aba30c95be3097",
        "ran_at": "2026-07-22T19:56:03Z",
        "aggregate_score": 4.5,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T14:12:46Z",
      "oldest_open_prs": [
        {
          "number": 1808,
          "created_at": "2026-05-14T03:17:29Z",
          "last_comment_at": "2026-06-14T17:28:59Z",
          "last_comment_author": "wtanksleyjr"
        },
        {
          "number": 1810,
          "created_at": "2026-05-14T03:34:10Z",
          "last_comment_at": "2026-05-16T11:09:11Z",
          "last_comment_author": "Jo-Be-Co"
        },
        {
          "number": 1885,
          "created_at": "2026-06-21T14:04:35Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-17T18:52:15Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 342,
          "created_at": "2022-08-04T08:23:01Z",
          "last_comment_at": "2022-08-16T11:55:34Z",
          "last_comment_author": "rmcrackan"
        },
        {
          "number": 771,
          "created_at": "2023-09-29T13:37:48Z",
          "last_comment_at": "2026-05-26T13:09:38Z",
          "last_comment_author": "Jo-Be-Co"
        },
        {
          "number": 810,
          "created_at": "2023-12-18T14:50:32Z",
          "last_comment_at": "2026-05-26T18:48:57Z",
          "last_comment_author": "chidniu"
        },
        {
          "number": 1008,
          "created_at": "2024-10-16T04:01:33Z",
          "last_comment_at": "2024-10-16T19:38:15Z",
          "last_comment_author": "rmcrackan"
        },
        {
          "number": 1009,
          "created_at": "2024-10-16T12:30:24Z",
          "last_comment_at": "2024-12-08T12:24:44Z",
          "last_comment_author": "MrLogic85"
        },
        {
          "number": 1013,
          "created_at": "2024-10-22T10:57:28Z",
          "last_comment_at": "2025-03-26T00:19:54Z",
          "last_comment_author": "Mbucari"
        },
        {
          "number": 1030,
          "created_at": "2024-11-02T10:46:29Z",
          "last_comment_at": "2024-11-02T16:55:08Z",
          "last_comment_author": "rmcrackan"
        },
        {
          "number": 1034,
          "created_at": "2024-11-06T01:38:28Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1046,
          "created_at": "2024-11-17T14:22:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1068,
          "created_at": "2024-12-05T22:35:29Z",
          "last_comment_at": "2026-01-13T12:31:00Z",
          "last_comment_author": "scottrobertson"
        },
        {
          "number": 1070,
          "created_at": "2024-12-06T13:01:03Z",
          "last_comment_at": "2025-03-16T15:30:54Z",
          "last_comment_author": "rmcrackan"
        },
        {
          "number": 1073,
          "created_at": "2024-12-07T17:29:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1074,
          "created_at": "2024-12-07T18:13:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1078,
          "created_at": "2024-12-11T07:38:08Z",
          "last_comment_at": "2025-01-05T00:34:43Z",
          "last_comment_author": "DaeDroug"
        },
        {
          "number": 1082,
          "created_at": "2024-12-17T02:00:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1092,
          "created_at": "2024-12-22T04:19:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1166,
          "created_at": "2025-03-01T21:43:35Z",
          "last_comment_at": "2025-03-06T12:37:27Z",
          "last_comment_author": "rmcrackan"
        },
        {
          "number": 1221,
          "created_at": "2025-04-20T18:40:42Z",
          "last_comment_at": "2025-04-21T17:17:51Z",
          "last_comment_author": "rmcrackan"
        },
        {
          "number": 1222,
          "created_at": "2025-04-24T04:21:46Z",
          "last_comment_at": "2025-08-29T21:21:51Z",
          "last_comment_author": "shanespringer"
        },
        {
          "number": 1257,
          "created_at": "2025-05-15T16:26:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/rmcrackan/Libation",
    "host": "github.com",
    "name": "Libation",
    "owner": "rmcrackan"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 69,
      "inputs": {
        "security": 56,
        "vitality": 94,
        "community": 72,
        "governance": 57,
        "engineering": 66
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 94,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "commits_last_year": 769,
              "human_commit_share": 0.97,
              "days_since_last_push": 5,
              "active_weeks_last_year": 46
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "46/52 weeks with commits",
                "points": 31.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 46
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "769 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 769
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 25 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v13.5.1",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 8.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~8.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 8.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "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": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "good",
        "name": "Community & Adoption",
        "value": 72,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 91,
            "inputs": {
              "forks": 303,
              "stars": 5936,
              "watchers": 69,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "5,936 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 5936
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "303 forks",
                "points": 20.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 303
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "69 watchers",
                "points": 10.2,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 69
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (GPL-3.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "GPL-3.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 57,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 36,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 30,
              "top_contributor_share": 0.539
            },
            "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 54% of commits",
                "points": 10.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 54
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "30 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 30
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "merged_prs": 418,
              "open_issues": 57,
              "closed_issues": 1372,
              "issue_closed_ratio": 0.96,
              "closed_unmerged_prs": 20
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "96% of issues closed",
                "points": 44.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 96
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "418/438 decided PRs merged",
                "points": 36.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 418,
                      "decided": 438
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/12 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": 57,
            "inputs": {
              "followers": 196,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "rmcrackan",
              "public_repos": 9,
              "account_age_days": 3569
            },
            "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": "196 followers of rmcrackan",
                "points": 16.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 196,
                      "login": "rmcrackan"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "9 public repos, account ~9 yr old",
                "points": 19.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 9
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 66,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_ci": true,
              "has_tests": false,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "14 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 0,
                "status": "missed",
                "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": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": "https://getlibation.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://getlibation.com",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 56,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 45,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.5
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "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": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/12 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 25 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": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 211 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 211
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 211,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 211,
              "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": 5
            },
            "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": 50,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.608,
              "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": "59 of 97 human commits state their intent (structured subject or explanatory body)",
                "points": 32.4,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 59,
                      "sampled": 97
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "has_nix": true,
              "has_tests": false,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.01,
              "toolchain_manifests": [
                "Source/AaxDecrypter/AaxDecrypter.csproj",
                "Source/AppScaffolding/AppScaffolding.csproj",
                "Source/ApplicationServices/ApplicationServices.csproj",
                "Source/AudibleUtilities/AudibleUtilities.csproj",
                "Source/DataLayer.Postgres/DataLayer.Postgres.csproj",
                "Source/DataLayer.Sqlite/DataLayer.Sqlite.csproj",
                "Source/DataLayer/DataLayer.csproj",
                "Source/DtoImporterService/DtoImporterService.csproj",
                "Source/FileLiberator/FileLiberator.csproj",
                "Source/FileManager/FileManager.csproj",
                "Source/HangoverAvalonia/HangoverAvalonia.csproj",
                "Source/HangoverBase/HangoverBase.csproj",
                "Source/HangoverWinForms/HangoverWinForms.csproj",
                "Source/LibationAvalonia/LibationAvalonia.csproj",
                "Source/LibationCli/LibationCli.csproj",
                "Source/LibationFileManager/LibationFileManager.csproj",
                "Source/LibationSearchEngine/LibationSearchEngine.csproj",
                "Source/LibationUiBase/LibationUiBase.csproj",
                "Source/LibationWinForms/LibationWinForms.csproj",
                "Source/LoadByOS/LinuxConfigApp/LinuxConfigApp.csproj",
                "Source/LoadByOS/MacOSConfigApp/MacOSConfigApp.csproj",
                "Source/LoadByOS/WindowsConfigApp/WindowsConfigApp.csproj",
                "Source/_Demos/LoadByOS/CrossPlatformClientExe/CrossPlatformClientExe.csproj",
                "Source/_Demos/LoadByOS/LinuxConfigApp/LinuxConfigApp.csproj",
                "Source/_Demos/LoadByOS/WindowsConfigApp/WindowsConfigApp.csproj",
                "Source/_Tests/AssertionHelper/AssertionHelper.csproj",
                "Source/_Tests/AudibleUtilities.Tests/AudibleUtilities.Tests.csproj",
                "Source/_Tests/FileLiberator.Tests/FileLiberator.Tests.csproj",
                "Source/_Tests/FileManager.Tests/FileManager.Tests.csproj",
                "Source/_Tests/LibationFileManager.Tests/LibationFileManager.Tests.csproj",
                "Source/_Tests/LibationSearchEngine.Tests/LibationSearchEngine.Tests.csproj",
                "Source/_Tests/LibationUiBase.Tests/LibationUiBase.Tests.csproj"
              ],
              "dependency_bot_commit_share": 0.03
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Source/AaxDecrypter/AaxDecrypter.csproj, Source/AppScaffolding/AppScaffolding.csproj, Source/ApplicationServices/ApplicationServices.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Source/AaxDecrypter/AaxDecrypter.csproj, Source/AppScaffolding/AppScaffolding.csproj, Source/ApplicationServices/ApplicationServices.csproj"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 0,
                "status": "missed",
                "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": "C# (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, Nix, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, Nix, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "1 of the last 100 commits agent-authored or agent-credited",
                "points": 2,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "3 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 3,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "C#",
              "largest_source_bytes": 566907,
              "source_files_sampled": 551,
              "oversized_source_files": 3
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C# (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "3/551 source files over 60KB",
                "points": 54.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 551,
                      "oversized": 3
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T19:56:33.643674Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rmcrackan/Libation.svg",
  "full_name": "rmcrackan/Libation",
  "license_state": "standard",
  "license_spdx": "GPL-3.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.26.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.