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

Fheyalabs / ARES-core

Go · Swift · C++Apache-2.0★ 0 Sterne⑂ 0 Forksseit Mai 2026Auf GitHub ansehen ↗

Fheyalabs/ARES-core erreicht einen Gesundheitsindex von 52 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Vitality (77/100) ab, am schwächsten bei Security (27/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

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

52
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

FheyalabsOrganisation
0 Follower1 öffentliches Reposeit März 2026

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
Gogithub.com/Fheyalabs/ares-corev0.9.15-27vor 0 Tagen

Metriken nach Kategorie

Vitalität

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

77Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
7.6/36Commit-Rhythmus — 11/52 Wochen mit Commits
18/18Commit-Volumen — 256 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Verwendete Eingangsdaten
commits_last_year256
human_commit_share1
days_since_last_push0
active_weeks_last_year11

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 12 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 27 Tagen
27/27Release-Rhythmus — ein Release etwa alle 4,1 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count12
latest_release_tagv0.9.8
releases_from_tagsnein
days_since_latest_release27
mean_days_between_releases4,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

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

43Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
0/60Stars — 0 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (Apache-2.0)
18/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductja
has_pull_request_templateja

Nachhaltigkeit & Governance

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

49Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
38.2/38.3PR-Annahme — 16/16 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs16
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
0/25Reichweite des Inhabers — 0 Follower von Fheyalabs
2.8/25Kontohistorie — 1 öffentliche Repos, Kontoalter ca. 0 Jahre
Verwendete Eingangsdaten
followers0
owner_typeOrganization
is_verified
owner_loginFheyalabs
public_repos1
account_age_days119

Paketpflege

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

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

58Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 3 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
0/10Repository-Beschreibung
0/10Topics
0/10Wiki
Verwendete Eingangsdaten
topics
has_wikinein
homepage
has_readmeja
has_docs_dirja
has_descriptionnein

Sicherheit

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

27Kritisch · 16 % des Gesamtindex

Sicherheitslage

27Kritisch
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
0/2.5CI-Tests — keine Daten
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — keine Daten
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 18 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate2,7
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

AI Readiness

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

59Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 100 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — clients/kotlin/ares-client-fhe/build.gradle.kts, clients/kotlin/ares-client/build.gradle.kts, clients/kotlin/ares-smoke/build.gradle.kts (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — Go (statisch typisiert)
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 59 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0,59
toolchain_manifestsclients/kotlin/ares-client-fhe/build.gradle.kts, clients/kotlin/ares-client/build.gradle.kts, clients/kotlin/ares-smoke/build.gradle.kts, clients/kotlin/build.gradle.kts, go.mod
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Go (statisch typisiert)
54.7/55Handhabbare Dateigrößen — 2/351 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageGo
largest_source_bytes156.261
source_files_sampled351
oversized_source_files2
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

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

Warnungen zur Datenerhebung

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

Weitere Details

OpenSSF Scorecard 2.7 / 10
2.7Gesamtwert

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 21:07 UTC

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
k. A.CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
10Security-Policysecurity policy file detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities18 existing vulnerabilities detected
Direkte Abhängigkeiten 2
RegistryPaketVersionsvorgabeManifest
Gogithub.com/gorilla/websocketv1.5.3go.mod
Gogolang.org/x/cryptov0.31.0go.mod
Alle Abhängigkeiten nicht erhoben

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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 7780,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "C": 23464,
        "Go": 889816,
        "C++": 163640,
        "CMake": 1627,
        "Shell": 8914,
        "Swift": 177182,
        "Kotlin": 101085,
        "Python": 117753
      },
      "pushed_at": "2026-07-22T01:48:02Z",
      "created_at": "2026-05-12T11:21:00Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-18T06:19:58Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go",
        "Swift",
        "C++"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "Organization",
      "login": "Fheyalabs",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/271052521?v=4",
      "created_at": "2026-03-25T19:15:16Z",
      "is_verified": null,
      "public_repos": 1,
      "account_age_days": 119
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.9.8",
          "kind": "patch",
          "published_at": "2026-06-25T15:21:59Z"
        },
        {
          "tag": "v0.9.7",
          "kind": "patch",
          "published_at": "2026-06-25T00:47:19Z"
        },
        {
          "tag": "v0.9.6",
          "kind": "patch",
          "published_at": "2026-06-24T21:02:47Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-06-14T15:42:10Z"
        },
        {
          "tag": "v0.7.5",
          "kind": "patch",
          "published_at": "2026-06-03T00:50:42Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-05-31T11:07:59Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-05-30T23:00:22Z"
        },
        {
          "tag": "v0.4.1",
          "kind": "patch",
          "published_at": "2026-05-28T17:09:01Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-05-28T14:22:17Z"
        },
        {
          "tag": "v0.3.2",
          "kind": "patch",
          "published_at": "2026-05-19T11:41:20Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2026-05-19T06:37:55Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-05-19T05:48:46Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "6290743865d53da7b8d28b5e10087fadae9869eb",
          "body": null,
          "is_bot": false,
          "headline": "feat(transport): add websocket replay cursor",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-07-18T06:18:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "665facd97c1205e36be5a0210dd8a0dc77b4cb6f",
          "body": null,
          "is_bot": false,
          "headline": "fix(transport): preserve raw inbound payloads",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-07-18T05:44:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf51c9b1d02478a2a83416e63ed947672079c135",
          "body": null,
          "is_bot": false,
          "headline": "feat(swift): expose encrypted BFV distance inputs",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-18T00:35:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65f23ac9fc2cf6032d224156a1582518a1a465b1",
          "body": null,
          "is_bot": false,
          "headline": "feat(bfv): add ciphertext-only blind fallback",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T23:48:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb119e692367cf16fb1b0dfa04e5db5db71e1b35",
          "body": null,
          "is_bot": false,
          "headline": "docs: add encrypted input ranking example",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T22:00:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "241422057ab1a6a697fc78429b8729ff07369eb6",
          "body": null,
          "is_bot": false,
          "headline": "release: prepare ares-core v0.9.13",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T21:54:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7111402436271edd24bdf322868c88a92a658ea3",
          "body": null,
          "is_bot": false,
          "headline": "fix(phase): route keygen round-one messages",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T21:43:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5596735a3f36028ba1199edeeb5fb154a809c05a",
          "body": null,
          "is_bot": false,
          "headline": "feat(ckks): accept encrypted distances",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T21:43:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f1e32863b6e8505e3a7fc97fe0e30ab95e73791",
          "body": null,
          "is_bot": false,
          "headline": "feat(clients): encrypt chunked payloads",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T21:43:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45e1b327002ea2fdb458888238160fffcdba0d05",
          "body": null,
          "is_bot": false,
          "headline": "feat(ckks): fan out encrypted payload union",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T21:43:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb136cd3cb83bb11671a827dedbbf0fded82170b",
          "body": null,
          "is_bot": false,
          "headline": "feat(cgo): support encrypted payload fusion",
          "author_name": "Hardik",
          "author_login": "grussdorian",
          "committed_at": "2026-07-17T21:43:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ffc4ac5d6619271ba79c32d794eb565e6141bec",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): expose OpenFHE global context release",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-07-04T12:02:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01ce9a2c36821bb1409cdad58f89a9c5b7c5b552",
          "body": null,
          "is_bot": false,
          "headline": "fix(crypto): clear OpenFHE eval keys on context close",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-07-04T11:51:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "180e363f82bcc096d5a8f39852c37a06b2b404ea",
          "body": null,
          "is_bot": false,
          "headline": "docs: release ares-core v0.9.10",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-07-04T10:51:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5dcb3d6bf2dd9912228bac833b75de7bfc4d69b4",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): eval product sum with per-index refs",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-07-04T09:45:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0fd87fa2d52183f526540cd5ef27567c4217b9d",
          "body": "…en fix\n\nAdd ChunkedUnionScoreCKKSWithEvalSumRefs, the per-index (b-only / CRS-seeded)\ncounterpart of ChunkedUnionScoreCKKSWithConcurrency. The threshold eval-sum fold\nkeys arrive as per-index a/b vector refs (the wire-reduced keygen) instead of one\nmonolithic serialized key map; this reconstructs t\n[…]\nTestBOnlyUnionDeepCircuitRecovers\ncovers the full secure b-only union path; TestSingularPerIndexEvalSumSharedA pins\nthe shared-a invariant after an eval-mult round1 (the regression for the fix above).",
          "is_bot": false,
          "headline": "feat(crypto): per-index b-only eval-sum union scoring + shared-a keyg…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-29T23:36:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3ff0726855034fa78eaded380d8f222d7affb5fa",
          "body": "…oothstep\n\nAn unset SelectorSchedule was defaulted to the 4-pass selector-sharpen\nschedule \"smoothstep5,smoothstep5,smoothstep5,smoothstep7\" in two places:\nthe Go fuse boundary (defaultStringGo in FullFusePayloadCKKS[WithContext]\nand ChunkedFusePayloadCKKS[WithContext]) and the native split_schedule\n[…]\n ring 32768 / depth 16, dim 128, n=6 / 5 candidates,\nreal EmbeddingGemma: union 6/6, >=2-recovered 6/6, redundancy_wrong 0/6,\n~106 s/cohort (vs ~136 s/cohort on the old ring-65536 / depth-23 circuit).",
          "is_bot": false,
          "headline": "fix(crypto): empty selector schedule is no-op, not a hidden 4-pass sm…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-25T15:21:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bf8ddd474a15333cd2fee118ebe9d5482cbb730d",
          "body": "The retune was first tagged v0.9.6.1, which is a 4-part string and not a\nvalid Go-module version (the proxy only resolves vMAJOR.MINOR.PATCH).\nRelabel the changelog entry to 0.9.7 so the tag, release, and changelog\nagree and the module stays go-gettable.",
          "is_bot": false,
          "headline": "docs(changelog): label the family-diverse union retune as 0.9.7",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-25T00:46:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc6608fe5d8fac2161ae26226ee54a0a34673b56",
          "body": "The default union CKKSRing32KUnionV1 shipped three logistic/selector\nlanes: ss5 (selector), logi_g4_b3_d13, logi_g3_b6_d13. A 100-cohort\nfull-Fheya-score sweep that scored seven candidate lanes on the same\ncohorts (then computed every lane-subset's union post-hoc) shows the\nrecovery ceiling is set b\n[…]\nCKKSRing32KUnionV1 pick up\nthe better lanes automatically.\n\nValidation: wiki summaries/ares-core-v0-9-5-ckks-bfv-validation.md\n(2026-06-25 section); run artifacts testbench/v28/runs/ckks_100_lanes7.*.",
          "is_bot": false,
          "headline": "feat(profiles): diversify default CKKS union by comparator family",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-25T00:43:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fb15cdc882e84d69b09cf46ab98f2c2bf6f81ff0",
          "body": "ChunkedUnionScoreCKKS ran the union comparator lanes sequentially against\none shared CKKS context. This adds ChunkedUnionScoreCKKSWithConcurrency to\nrun those lanes concurrently; ChunkedUnionScoreCKKS now delegates to it with\nconcurrency 1 so existing callers are unchanged.\n\nThe shared context made \n[…]\necision 0/200, all_closed_fallback_to_bfv\n5/200 (the 5 tightest near-ties, margins <= 0.0017), peak RSS 6.4 GiB.\n\nTests: TestClampUnionConcurrency, TestUnionComparatorRequestCanUsePreinsertedEvalKeys.",
          "is_bot": false,
          "headline": "feat(crypto): concurrent comparator fanout with preinserted eval keys",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-24T20:56:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0a9cba55d9f77460c1a403c616caf9e510b09db9",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): add BFV fallback and chunked CKKS union",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-23T21:50:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "794b8eae5660eeedeeba1dd8a21c61f698ba4287",
          "body": null,
          "is_bot": false,
          "headline": "perf(openfhe): stream per-index eval-sum keys into scoring",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-18T18:50:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c73ed6a4b231c18c8d886b5f31f393aaf56229da",
          "body": "generatePerIndexEvalSumKey and generatePerIndexEvalSumShare now return\nRotKey handles directly instead of serialized Data. This eliminates\nthe serialize->deserialize roundtrip in the Mac client keygen loop.",
          "is_bot": false,
          "headline": "perf(swift): add handle-returning per-index eval-sum keygen methods",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-18T16:28:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd6a8abbdfa32ef88645f89783e128e8f4d4e235",
          "body": "The a-vectors are byte-identical across parties (proven by\nbonly_keygen_prototype), but combineEvalSumPerIndexLazy was resolving\nand deserializing them fresh for each party × each index: 102\nredundant 45 MB downloads + 102 redundant C++ deserializations for a\n6-party × 17-index combine.\n\nAdd a two-l\n[…]\nim=128 ring=2^16:\n- 85 fewer artifact downloads (~3.8 GB)\n- 85 fewer C++ deserializations (~3.8 GB of DCRTPoly work)\n- Combine latency ~6× faster\n\nNo wire change, no client change, no protocol change.",
          "is_bot": false,
          "headline": "perf(crypto): cache A-vectors in combineEvalSumPerIndexLazy",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-18T16:16:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "996353a06bd7563dd3dd4eb341355d608d013163",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): support b-only per-index eval-sum refs",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-18T10:58:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7520f926c1370a656d38a2c59874f8c3f5ebd0b0",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): lazily combine per-index eval-sum refs",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-17T22:16:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c568d0797de645c0d7a4f4c46bc2255a8169e1c",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): combine eval-sum shares per index",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-17T21:50:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dbdf968b9fd8a3a539225eda8854c1e9d89cef2c",
          "body": "- C++ GeneratePerIndexEvalSumKey / GetMinimalRotationIndices\n- Swift CryptoContext wrappers for per-index (never-merged) keygen\n- MacClient emits eval_sum_round1_keys array instead of merged blob\n- Server orchestrator accepts both legacy and per-index format\n\nRing=2^16 still tight on Mac due to base64 accumulation in JSON.\nServer+homelab CI handles ring=2^16; Mac client validated at ring=2^15.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift): per-index rotation keygen — wire format change",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-17T13:34:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "afef86e22c9aaccc2d50257cc22247479f0f9746",
          "body": "…scoring\n\nARESFullFusePayloadCKKS now takes an optional CryptoContextHandle as first\nparameter. When non-NULL, the provided context is reused instead of creating\na new one (~4 GB savings at ring 2^16). When NULL, behavior is unchanged.\n\nAlso: FullFusePayloadCKKSWithContext Go wrapper, concatCandidat\n[…]\nCiphertexts\nhelper.\n\nThis is the last piece for ring=2^16 e2e testing on 16 GB Mac — one context\nshared across keygen, eval-key generation, and scoring.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(crypto): add FullFusePayloadCKKSWithContext — reuse context for …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T21:01:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0701d0d558beaaae6af71b1bc4e262987991a53f",
          "body": "…shared context\n\nFinalize now only frees the CKKS context if ownsCtx=true.\nNewEvalSumIncrementalFold sets ownsCtx=true (owns its context).\nNewEvalSumIncrementalFoldWithContext sets ownsCtx=false (caller owns).\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(crypto): EvalSumIncrementalFold ownsCtx flag — don't double-free …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T20:40:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c06f4a0dcdc60fe684bd7f87ec62eb91c40f75f1",
          "body": "Adds StreamedEvalSumKeyGenLead and StreamedEvalSumKeyShare in C++,\nplus Go wrappers via shared context. These generate rotation keys one\nindex at a time, merging into an accumulator, so peak C++ RAM is\nbounded to a single rotation key (~90 MB at ring 2^16) rather than\nthe full map (~1.5 GB for 17 minimal indices).\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(crypto): streamed rotation-key gen — one index at a time",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T20:30:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6ae55226ec4051dfa535812cbc005c196975e49f",
          "body": "…otocol\n\nAdds CryptoContext type + NewCryptoContext/Close, plus WithContext\nvariants of EvalKeyRound1Lead, EvalKeyRound1Participant,\nEvalKeyRound2Participant, CombineEvalMultSwitchShares,\nNewEvalSumIncrementalFold, and CombineEvalKeyRound2.\n\nCallers create one context (~3 GB at ring 2^16) and reuse it across\nall eval-key operations, instead of paying per-call context allocation.\nThis is load-bearing for ring=2^16 on 16 GB machines.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(crypto): add shared-context WithContext variants for eval-key pr…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T20:26:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "433e77cb721fdcad580f8488d2d0b2012c0c0c90",
          "body": "Lets callers combine eval-mult shares independently when eval-sum\nshares have been folded incrementally via EvalSumIncrementalFold.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(crypto): add standalone CombineEvalMultSwitchShares",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T20:21:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "21d884a757b838f4ef66249e9dcff3dd5355a874",
          "body": "Adds NewEvalSumIncrementalFold / Fold / Finalize so callers can fold\neval-sum shares one at a time, nil-ing each share's []byte immediately.\nPeak Go-side RAM stays at accumulator + one share instead of all N.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(crypto): expose step-by-step incremental eval-sum fold API",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T20:20:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "951cfa14af1665511bed4cb333dc02bf51ad4756",
          "body": "Round 1 combine deserialized every eval-sum (rotation) share at once before\nfolding, so at ring 2^16 it held all N rotation-key maps resident together (the\nmulti-GB peak). It now folds via combineEvalSumIncremental: seed with the lead\nbase, then deserialize/fold/free one participant share at a time,\n[…]\n. Output is byte-identical (the incremental round-trip\ntest plus the distributed/threshold keygen tests confirm it), so every consumer\nof CombineEvalKeyRound1 gets the lower-RAM combine transparently.",
          "is_bot": false,
          "headline": "refactor(crypto): CombineEvalKeyRound1 folds eval-sum incrementally",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T18:27:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe40062eeb936b3cfbbc98e6c57dc5ee9469fe99",
          "body": "…ime)\n\nCombineEvalSumKeys folds rotation-key shares one at a time but requires every\nshare deserialized and resident at once, so combining N shares at ring 2^16\nholds N full rotation-key maps simultaneously (multi-GB peak). EvalSumCombineStart\nplus EvalSumCombineFold expose the fold incrementally: s\n[…]\ns as\nserialized bytes. A round-trip test confirms the incremental joint key is\nbyte-identical to the all-at-once CombineEvalSumKeys for the same share order\n(lead base first, then participant shares).",
          "is_bot": false,
          "headline": "feat(crypto): incremental eval-sum key combine (fold one share at a t…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T18:27:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a465dba34519d322052298ef8c9d0f2cb0308388",
          "body": "The Task 1 pure-Go files (minimalRotationIndices derivation + test) were\ncreated without build tags per the implementation plan, but this breaks\nuntagged go build when cgo is enabled by default: Go's toolchain sees\nopenfhe_wrapper.cpp in the same directory with no file importing \"C\"\n(all such files \n[…]\nvation math is still\nunit-testable with -tags openfhe, consistent with every other Go file in\nthis package. Non-OpenFHE consumers can use CGO_ENABLED=0.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(crypto): add openfhe build tag to minimal rotation key files",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T18:25:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b91be9cbaf18b731aaa1fc3505b1bd8e94fc7aea",
          "body": null,
          "is_bot": false,
          "headline": "feat(crypto): streamed rotation-keygen helpers honor minimal mode",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T18:13:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f025ad8a424665ac1cdf4a078865d6d56ad8734",
          "body": "…scorer",
          "is_bot": false,
          "headline": "feat(crypto): minimal-mode dot fold (rotate-and-add) in full payload …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T18:09:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "196f3d3516396c5e967abca2ea9102293219791d",
          "body": "…d index set)\n\nAdd a per-context flag that, when set, replaces the full-batch EvalSumKeyGen +\nbroadcast EvalAtIndexKeyGen with a compact at-index set derived from two\ncaller-supplied dimensions: positive power-of-two shifts < profile_dim (dot-product\nfold) and negative power-of-two shifts < payload_\n[…]\nerifies that a 2-party minimal eval-sum\n  share (profile_dim=128, payload_slots=640) is < 0.75x the full-batch share for\n  the same ring — confirming the key-count reduction is reflected in wire size.",
          "is_bot": false,
          "headline": "feat(crypto): opt-in minimal rotation keygen (EvalAtIndex over derive…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T18:03:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1844f47519ad5f619c023246ed7c496ba18fbede",
          "body": "…erized keygen",
          "is_bot": false,
          "headline": "feat(crypto): minimal rotation-index derivation for dimension-paramet…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-15T17:26:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d7ee791dee9c619319256c3c93606c9a393362f",
          "body": "Highlights since v0.7.5:\n\n- Single-key (non-threshold) CKKS reverse auction MVP: SingleKeyEncrypt and\n  SingleKeyAuctionServerEnc, n=5 composite-key assembly at ring 2^14/depth 4,\n  a server/rider split that binds the driver identity, and singleKeyGen() plus\n  decryptSingle() in the Swift and Kotlin\n[…]\nduct.\n- CI: the hosted openfhe lane runs with -short so it stops being SIGTERM-killed\n  on the keygen benchmarks (red since that suite landed); it is green again.\n\nSee CHANGELOG.md for the full entry.",
          "is_bot": false,
          "headline": "docs(release): v0.8.0 — single-key reverse auction + b-only keygen wire",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-14T15:41:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "94e95c75d99b550d21d03372aa72f8a2d302e691",
          "body": "…chmarks\n\nThe hosted-runner openfhe job has failed on every push since 1dd2ba8 (the\nthreshold-CKKS keygen amortization suite). That commit added five\nmemory-bound benchmarks guarded by testing.Short(), plus a separate\nkeygen-bench.yml lane to run them on a high-RAM self-hosted runner, but the\nregula\n[…]\n every correctness test running. Locally the full\n`go test -tags openfhe -short ./...` suite is green in ~32s. The\nkeygen-bench lane invokes the benchmarks by name without -short, so it is\nunaffected.",
          "is_bot": false,
          "headline": "ci(openfhe): run the regular suite with -short to skip the keygen ben…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-14T15:34:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9e8ba11f9ae634d2cd8eb2e9facafe4f5bd0929c",
          "body": "…helper\n\nPython talks to OpenFHE through the Go contract-helper over IPC rather than\na native binding, so the b-only rotation-key optimization is exposed as two\nhelper ops instead of a direct C call. A participant uploads only its\nb-vectors; the shared a-vectors (byte-identical across parties under \n[…]\nepted it silently. The test fixture now sets\nARES_FHE_ALLOW_INSECURE for the helper subprocess; the wrapper stays\nsecure-by-default (HEStd_128_classic) for production, which uses real ring\ndimensions.",
          "is_bot": false,
          "headline": "feat(python): wire b-only rotation-key split/reconstruct through the …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-14T15:19:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d8a2a2836cce04b88683dcb6de63aa646929ce7",
          "body": "…ift and Kotlin\n\nThe native wrapper (symlinked into both clients) gained the b-only\nrotation-key functions; expose them in the Swift and Kotlin FHE bindings\nso a participant can serialize only its b-vectors, send or seed the\nshared a once, and have the combiner rebuild the full share from the\nshared\n[…]\nacross parties,\nb-only is smaller, the rebuilt (a,b) match the originals). Kotlin: the\nthree JNI bindings plus NativeFHE external declarations. The native JNI\nlibrary builds and the Swift test passes.",
          "is_bot": false,
          "headline": "feat(clients): wire b-only rotation-key serialize/reconstruct into Sw…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-14T11:05:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ee9b125c280416247fc4dd8bd3915c3f468154d8",
          "body": "The multiparty rotation-key 'a'-vectors are byte-identical across parties\n(derived from shared public randomness), so each party only needs to\ntransmit its 'b'-vectors; the combiner rebuilds the full share from the\nshared 'a' plus the party 'b'. This halves the per-party rotation-key\nupload with no \n[…]\nhecks the 'a' vectors are shared across parties,\nthe b-only payload is smaller than the full share, and the rebuilt\nshare's (a,b) match the originals byte for byte (50 percent saved at the\ntest ring).",
          "is_bot": false,
          "headline": "feat(crypto): b-only rotation-key wire (serialize a/b + reconstruct)",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-14T10:42:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "369ca58ecae624e51df3e32d3be7aabc98072f0d",
          "body": null,
          "is_bot": false,
          "headline": "fix(swift-fhe): correct extension braces in Decrypt.swift",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-08T17:10:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71b20d4ad90f13b1e329581d0e4a15c75be235df",
          "body": null,
          "is_bot": false,
          "headline": "chore: add rideshareswift .build to gitignore",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-08T17:07:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fad3548d1666e8927b2f350ee80e2338685b69e5",
          "body": "Adds AresClientFHE (with COpenFHEBridge) to the products array so external\npackages like rideshareswift can depend on it.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift): expose AresClientFHE as library product",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-08T17:07:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ca6576df463984999bf2271489cf88cdb0ade90e",
          "body": "…ty CKKS\n\n- jni_openfhe.cpp: 2 new JNI bridge functions (singleKeyEvalMultKeyGen, decryptSingle)\n- NativeFHE.kt: 2 new external declarations\n- CryptoContext.kt: singleKeyGen() + decryptSingle() methods\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin-fhe): add singleKeyGen() + decryptSingle() for single-par…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-08T17:02:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f9a009ae9f65a914836af231655dd1ed4cdd8fd6",
          "body": "…y CKKS\n\n- Keygen.swift: singleKeyGen() calls keyGenFirst() + SingleKeyEvalMultKeyGen\n- Decrypt.swift: decryptSingle() wraps C function DecryptSingle for direct\n  single-key decryption (no threshold fusion)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-fhe): add singleKeyGen() + decryptSingle() for single-part…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-08T17:00:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3e800ab1434da37add343e1ce912d54cc318f1bb",
          "body": "…-price auction\n\nAdd two pure-Go bridge functions so bidders can encrypt their own price locally\nbefore submission; the server receives pre-encrypted bid ciphertexts and never\nsees plaintext prices. SingleKeyEncrypt wraps a single scalar into a 4-slot\nCKKS ciphertext. SingleKeyAuctionServerEnc is a \n[…]\nld tag) verifies\nfor n in {3,4,5} that enc-path winner == plaintext-path winner == true economic\nargmin; passes at ring 2^15/depth-5 in ~3.7 s.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cgo): add SingleKeyEncrypt + SingleKeyAuctionServerEnc for blind…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-04T23:09:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "296b44d1c4ad4db9ddf837ceb5807fd3ce9dd489",
          "body": "- singlekey_argmin_test.go, tiebreak_test.go: superseded by the new\n  singlekey_auction_test.go (server/rider split + bidirectional signing)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(cgo): consolidate single-key auction tests, remove superseded files",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-04T22:40:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "53b86073033e1396ed2925dec956ab5f7abd61da",
          "body": "…binding\n\nBREAKING: SingleKeyAuctionFull replaced by two functions:\n\n- SingleKeyAuctionServer(params, pk, bids...) → encrypted masks [][]byte\n  Server-side: takes rider's PUBLIC key only, never sees sk.\n  Returns serialized encrypted mask ciphertexts — server CANNOT decrypt.\n\n- SingleKeyAuctionDecry\n[…]\nhost winners are detected and rejected.\n\nVerified n=2..9 at ring 2^15/depth 5 (128-bit secure):\n  n=9: winner=0 masks[0]=0.010 sep=0.002 sig=OK\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(cgo): SingleKeyAuction server/rider split + driver identity …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-04T22:02:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4884e3f60720e387e5542bac80da44f15504e577",
          "body": "Two optimisations to fit n=5 (rider+4 cabs) at ring 2^14/depth 4:\n\n1. Merged negate/scale into single EvalMultConst (1 level instead of 2)\n   in SingleKeyAuctionFull key assembly. The combined coefficient\n   -scale*K/span is applied in one level-conscious multiply.\n\n2. Balanced product tree in EvalA\n[…]\n12.00\n\nBinding via lineage commitment (plaintext lookup of winner's bid).\nShared secret = SHA256(nonce[winner] || sessionID) for OTP/phrase/QR.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cgo): n=5 full composite key assembly at ring 2^14/depth 4",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-04T21:12:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4731563cb860c3d094ee898a33e480499bf1221d",
          "body": "New C ABI primitives (openfhe_wrapper.{h,cpp}):\n- SchemeSwitchingArgmin: CKKS→FHEW exact argmin via EvalMinSchemeSwitching\n  (wired but deferred — needs depth >= 12 internally)\n- SingleKeyEvalMultKeyGen: generate eval-mult key for single-party context\n- DecryptSingle: direct single-key Decrypt (no t\n[…]\n — incompatible with ring 2^14\n- All mask values show correct argmax ordering; winner mask always strictly\n  largest even at epsilon=0.001 gaps\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cgo): single-key CKKS reverse auction — full MVP flow",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-04T21:01:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b2751448d1d11a09a1383238a139fd8a228e699f",
          "body": "The self-hosted runner has no C++ build toolchain (cmake not found) and per-run\nsource builds are the wrong model for a persistent box. Detect the provisioned\nOpenFHE install (lib + headers) and point cgo at it; fail with guidance if absent.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(keygen-bench): use the runner's existing OpenFHE instead of building",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-04T00:11:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1dd2ba83d3500eb214ef99fc6487853adf7d8a72",
          "body": "…ded keygen\n\nMeasurement suite (openfhe-gated, benchmarks skipped under -short) backing\nthe session-key amortization analysis, plus the bridge primitives it exercises:\n\n- keygen stage profile (CPK / eval-key round-1 / combine / decrypt) + sizes\n- resident vs byte-path combine (8-23x: the cost is (de\n[…]\n.yml — a manual\n(workflow_dispatch) lane for the heavy depth-30/2^17 rows on a high-RAM\nself-hosted runner; regular CI stays on hosted runners.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "bench(crypto): threshold-CKKS keygen amortization suite + memory-boun…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-03T23:43:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "aeca812095f79b43308cea0dfa732ae674bb8c5c",
          "body": "Adds the Swift (SwiftPM) and Kotlin/Android (Gradle) client libraries —\nprotocol-crypto (onion/lineage/wire/signing), threshold-CKKS FHE over\nthe canonical openfhe_wrapper bridge, WebSocket transport, and\nclient-side ARES-BC — proven by local cross-language e2e. CKKS contexts\nare now secure-by-default; Kotlin builds pin the Gradle daemon to JDK 17.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(release): v0.7.5 — Swift + Kotlin ARES client libraries",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-03T00:49:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "68c3b335bd1d28bf198a0a8d6aef77080cdf5347",
          "body": "The bundled Kotlin compiler (KGP 2.0.21) crashes parsing the Java\nversion when run on a host JDK that postdates it (e.g. JDK 26:\nIllegalArgumentException: 26.0.1). jvmToolchain(17) only sets the\ncompile target/jdkHome; the Kotlin compile daemon still inherited the\nGradle daemon's JVM. Pin the Gradle\n[…]\nRU).\n\nFresh clean build verified: ares-client recompiles + all ares-client-fhe\ntests run (0 skipped, 0 failures) without the JDK-version crash.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "build(kotlin): pin Gradle daemon to JDK 17 for reproducible fresh builds",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-03T00:47:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "caf9c9f6bc799d736c7b0338458a10aef5587b2b",
          "body": "The canonical OpenFHE bridge created CKKS contexts with HEStd_NotSet,\nsilently disabling 128-bit security enforcement. Default to\nHEStd_128_classic so an under-provisioned ring (too small for the\nrequested multiplicative depth) is rejected at context creation.\n\nTests and local dev that deliberately \n[…]\np; FHE tests reparented\n- Kotlin: ares-client-fhe test task sets the env\n- e2e: lib.sh + boundcheck.sh export the opt-out (reduced local rings)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(crypto): CKKS contexts secure-by-default (HEStd_128_classic)",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-03T00:32:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b50de08383a202238018f3170b51fc38ac2308bd",
          "body": "Task 1 — challenge hook fix: broadcast all check CTs+commitments to each\nparty (boundcheck.Exit fuses N-of-N per-ciphertext quorum).\n\nTask 2 — Swift boundcheck flow: two-phase concurrent-submit-then-serial-FHE\nto avoid deadlock; partial-decrypt the real enc_check from the challenge\n(not the raw enc_\n[…]\nTTLED, all participate.passed==true\n- violation → server flags inflated party, session aborts\n- tamper    → client implicit check passed==false\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(bc-e2e): cross-language ARES-BC e2e (Swift+Kotlin) — 3 modes green",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T18:53:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "db8c889ee42297e7d806d39f99a2e4a36e328120",
          "body": "…tments\n\nThe merged hook unicast each party only its own enc_check, but\nboundcheck.Exit fuses an N-of-N quorum per ciphertext — every party\nmust partial-decrypt every check CT. With per-party-only challenges,\nall senders get flagged as withholding.\n\nNow broadcasts the full {\"checks\":{...},\"commitments\":{...}} map\nto each participant so each can produce the complete partial map.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(bounded_admission): challenge hook broadcasts all check CTs+commi…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T16:05:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2bfa8cb71bfe232e1057d2abb78711dff18c6517",
          "body": "…pant (implicit pass/fail)\n\nBoundCheckParticipant in ares-client-fhe: implicit commitment verify\n(SHA256(enc_check||SHA256(enc_x)||session_id), matches the Go boundcheck phase\n+ the Swift twin) + partial-decrypt; app sees only BoundCheckResult{passed}.\n3 tests (commitment-matches-Go native-free + pass-on-correct + fail-on-tamper).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/androidB-B3c-kotlin-bc: Kotlin client-side ARES-BC partici…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:57:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e965820a7182ac119cd6905460913df128b826e1",
          "body": "…E-interop e2e\n\nares-smoke gains the auction subcommand (AuctionFlow mirrors Swift): local\nN-party keygen + eval-mult-key rounds + encrypt + partial-decrypt via the\nJNI FHE module, pre-shared keys seeded over admin attrs. clients/kotlin/e2e/\nauction.sh delegates to the shared harness (ARES_CLIENT_CM\n[…]\nath), local Go sealed_bid_auction server at shallow depth 12/2048.\nProves Kotlin-serialized CKKS interop with the Go helper -> AUCTION_SETTLED.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/androidB-B2-kotlin-auction: Kotlin auction flow + local FH…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:57:08Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cf3b27ecd56a4b37eba39459322cf6deba655f73",
          "body": "…rness\n\n- AuctionFlow.kt: N-party threshold keygen, eval-mult-key 2-round protocol,\n  scalar-bid encrypt, pre-computed partial decrypts, pre-shared key seeding,\n  concurrent per-bidder WS flow matching the Swift L3 auction e2e exactly.\n- Wire 'auction' subcommand in Main.kt.\n- e2e/auction.sh: builds\n[…]\negates to shared\n  clients/swift/e2e/auction.sh via ARES_CLIENT_CMD with -Xmx2g.\n- ares-smoke/build.gradle.kts: add ares-client-fhe dependency.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin-smoke): auction flow (mirrors Swift AuctionFlow) + e2e ha…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:53:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ab6f3278762b0a613a2e4afc2027b8ed3fa1d4e",
          "body": "… commitment verify)\n\n- BoundCheckParticipant.kt: implicit commitment verify + partial-decrypt.\n  commitment = SHA256(enc_check || SHA256(enc_x) || session_id) matches Go\n  byte-exact from pkg/ares/phase/boundcheck/phase.go and the Swift participant.\n- BoundCheckResult: pass/fail verdict + partial d\n[…]\ndCheckParticipantTest: commitment-matches-Go (pure SHA-256, no FHE),\n  pass-on-correct, fail-on-tampered-enc-check (tiny 1024/depth-4 context).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin-fhe): client-side ARES-BC participant (implicit pass/fail…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:51:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eb51797abd096b3e8ab0f77ec5ff7d62c7af6e74",
          "body": "… (implicit pass/fail)\n\nBoundCheckParticipant in AresClientFHE: implicit commitment verify\n(SHA256(enc_check||SHA256(enc_x)||session_id), matches the Go boundcheck phase)\n+ partial-decrypt, app sees only BoundCheckResult{passed}. 3 tests; Swift suite 37/37.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/androidB-C-swift-bc: Swift client-side ARES-BC participant…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:39:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b15c7481f037241673c064c8ffd70f490b2e251e",
          "body": "…rver + per-session-handle affordance\n\nAdditive boundcheck affordance (per-session ContextHandle/fuse from SessionContext\nfor shared-runner session-services; construction-time still wins) + a runnable\nexamples/bounded_admission session-service (Invite->Keygen->SubmitInput->boundcheck->Settle)\nwith a PostDispatchHook unicasting enc_check+commitment. go build/test/vet green.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/androidB-B-boundcheck-server: ARES-BC bounded_admission se…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:39:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9f9a4665cfdbe6e09646a647505b40a2826d57c2",
          "body": "…al openfhe_wrapper\n\nares-client-fhe module + host-native JNI .dylib (jni_openfhe.cpp + CMake +\nbuild-native.sh) doing real threshold CKKS; AutoCloseable+Cleaner handles;\nfull surface mirroring Swift AresClientFHE; threshold round-trip + 17.0625\nsmoke port + eval-key rounds + serialization tests (local, system OpenFHE 1.5.1).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/androidB-A-kotlin-fhe: Kotlin FHE via JNI over the canonic…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:39:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f78aa266f1ade0c623eb0265f35f0835478542a5",
          "body": "… add -A; gitignore build/\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(kotlin-fhe): drop stray clients/python/build artifacts from git…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:38:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7cae0a99c4f3f1612836de283b79104f90fa9504",
          "body": "…mismatch test removed\n\n- CMakeLists.txt: manual JDK detection replacing find_package(JNI) to support JDK 21+ flat layouts\n- build-native.sh: auto-detect JAVA_HOME\n- Fixed symlink depth for openfhe_wrapper (3 levels up)\n- Removed ctxMismatchDeserializeThrows: OpenFHE 1.5.1 does not validate ring-dim at deserialization time\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(kotlin-fhe): JNI CMake manual JDK detection, symlinks fixed, ctx-…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:31:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "77f3953e066b376c5b90802de07e266b83acc75b",
          "body": "…commitment verify)\n\n- BoundCheckParticipant.swift: implicit commitment verify + partial-decrypt.\n  commitment = SHA256(enc_check || SHA256(enc_x) || session_id) matches Go\n  byte-exact from pkg/ares/phase/boundcheck/phase.go.\n- BoundCheckResult: pass/fail verdict + partial decrypt blob.\n- BoundCheckParticipantTests: pass-on-correct, fail-on-tampered-enc-check,\n  commitment-matches-Go-algorithm.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-fhe): client-side ARES-BC participant (implicit pass/fail …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:22:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3bec3d4b8c1512a3a7f6a40d4f7117dc6ba54ae3",
          "body": "… affordance\n\nB0: Additive per-session handle/fuse fallback in boundcheck.Phase.\n- CtxBoundCheckHandle / CtxBoundCheckFuse context keys (server-set via trigger).\n- Enter/Exit resolve handle/fuse from context when construction-time is nil.\n- Construction-time wins; existing NewPhaseWithCrypto callers\n[…]\nefaultContractParams + fhecalib.\n- crypto_stub.go: no-op stub for tests.\n\nB3: README documenting state arc, message types, commitment contract.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(bounded-admission): ARES-BC example with per-session handle/fuse…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:20:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b3d73e00649d6917a45ca19ac0a061335e146ba9",
          "body": "…he_wrapper\n\n- JNI bridge (jni_openfhe.cpp) covering every C ABI function\n- CMakeLists.txt, build-native.sh build infrastructure\n- NativeFHE.kt external declarations\n- AutoCloseable+Cleaner handle types (FheHandle, PublicKey, SecretKeyShare,\n  Ciphertext, EvalMultKey, RotKey)\n- CryptoContext: keygen\n[…]\nrounds + EvalMult,\n  serialization round-trips + ctx-mismatch rejection\n- assumeTrue(NativeFHE.loaded) so tests skip gracefully when lib absent\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin-fhe): complete Kotlin FHE/JNI module over canonical openf…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T15:16:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "11dc7e1ba35c009178d35c5d94e931b13132fab7",
          "body": "…1 crypto + L3 transport, voting interop)\n\nKotlin/JVM mirror of the Swift client's L1 (SC-2 onion, SC-10 lineage DAGNode,\nv2 WSMessage frame, device signing) + L3 transport (OkHttp Session/AdminClient/\nOrchestrator/GossipParticipant) + an ares-smoke CLI. No FHE/JNI (the voting arc\nis pure crypto). B\n[…]\nly additive (clients/kotlin only);\npackage ares.client (fheya-free). FHE (L2/JNI) + auction + client-side ARES-BC\n= Android-B + Swift backport.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/kotlin-client-androidA: Kotlin/Android client Android-A (L…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T11:30:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5806b4ec10e48851664c088848c6dba9db413549",
          "body": "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(kotlin): Android-A README + final gate",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T11:27:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "169cfac418a77130111d7d7d2184420ca2fcdcc1",
          "body": "…nion+lineage interop green)\n\nAdds the ares-smoke CLI module and VotingFlow for Android-A:\n- clients/kotlin/ares-smoke/build.gradle.kts: fat-jar target with signed-JAR\n  exclusions (META-INF/*.SF/DSA/RSA/EC) so BouncyCastle merges cleanly\n- clients/kotlin/ares-smoke/src/.../Main.kt: CLI dispatcher (\n[…]\ndelegates to shared harness\n\nvoting e2e exit code: 0 (all 3 voters peel, slot.submit lineage verifies,\nsession reaches terminal CLOSED state)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin): ares-smoke CLI + voting onion-shuffle + lineage flow (o…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T11:23:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d8da3651206a9dfe054d6612784636b029390b0c",
          "body": "…+ GossipParticipant\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin): L3 transport — OkHttp Session/AdminClient/Orchestrator …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T11:14:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5a5df56d1b30a3f3614c6fbdf53a9d89bfaa1929",
          "body": "…auth token\n\nAdds WireFrame (outbound v1/v2 frame encoder with inlined payload and\nsnake_case DAGNode), Signing (sorted-keys canonical JSON, Ed25519 device\nsign, HMAC-SHA256 auth-token), and pinned-vector tests (13/13 pass).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin): v2 WSMessage frame + canonical JSON + device signing + …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T11:07:36Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a2d172edb770185d8b06a890aa2811c83294eaf5",
          "body": "…GCM)\n\nImplements Onion.build/peelBatch mirroring the Swift reference:\nephemeral X25519 → HKDF-SHA256(info=\"ares_onion_v1\") → AES-256-GCM;\nwire = ephPub(32)||nonce(12)||ct||tag(16); selfMemo identity by byte-match.\n4 OnionTest cases pass including N=4 party positional round-trip.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin): SC-2 N-layer onion ECIES (BC X25519/HKDF + JCA AES-256-…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T11:03:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4e93ab0a62ad18de28023c4908aa23bb17086793",
          "body": "…te-parity (signature included)\n\nImplements Lineage.buildSlotNode in clients/kotlin mirroring the Go/Swift byte layout\n(SHA-256 node hash, lp-framed fields, lex-sorted parents, Ed25519 via Bouncy Castle).\nAdds LineageVectorsTest + hand-rolled MiniJson parser; both golden vectors reproduce all\nsix fields — producer, payload_hash, node_hash, signing_msg, signature, algorithm —\nbyte-for-byte.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin): SC-10 lineage DAGNode + buildSlotNode; golden-vector by…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T10:53:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f224e4f76f1a2c7c32b6d1e481dbedfba7626f65",
          "body": "Gradle 9.5.1 wrapper (JDK 26 compat; plan spec'd 8.10 but 8.x predates JDK 26 support in bundled Kotlin compiler). ByteUtilTest: 3/3 pass. Both modules build.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(kotlin): ares-kotlin-client Gradle scaffold + ByteUtil",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T10:40:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "eb536fd02654289c3cb374b637a3b04fe933d37c",
          "body": "…anguage e2e)\n\nWS transport (AresTransport: Session/AdminClient/Orchestrator/GossipParticipant,\nFoundation-only) + AresSmoke CLI (auction/voting, gated ARES_OPENFHE) + a\nclient-agnostic e2e harness (clients/swift/e2e, ARES_CLIENT_CMD seam for the\nfuture Kotlin/Android client). Proves cross-language \n[…]\nssed\nSC-10 verification (now routed via HandleLineageMessage) + an opt-in\nPostDispatchHook. L1/L2 untouched bar a DAGNode Sendable conformance.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/swift-client-l3: Swift ARES client L3 (transport + cross-l…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T09:48:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c7d6a2c6d3d357e21b9f00ea2e64f64596e7bfd1",
          "body": "…inal gate",
          "is_bot": false,
          "headline": "docs(swift): L3 README section + auction/voting session-leak guard; f…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T09:44:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5307b6c7ec46bae70a454c8e6ab6129e9fd4b285",
          "body": "…tate comment, add PostDispatchHook + v2-dispatch tests\n\n- examples/voting/states.go: correct PhaseSettle arc comment from\n  DECRYPTING -> BROADCASTING to DECRYPTING -> (terminal / StateNone)\n- pkg/ares/phase/anon/states.go: add AccumulatedOnions() exported helper\n  so external packages (relay, test\n[…]\ne (two sub-tests: v1 plain path\n  and v2 lineage path, each in an isolated session to avoid nil-current\n  collision after CheckComplete=true)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(voting/transport): export anon onion-bucket accessor, fix stale s…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T05:40:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ddcdbac48fe74eb9a117cdffd3ac7c6dfb046d89",
          "body": "…(onion+lineage interop green)\n\n- VotingFlow.swift: full N-participant gossip arc — concurrent onion.batch,\n  sequential server-relayed peel chain (voter-0→1→2), slot.submit with SC-10\n  lineage (v2 frame), vote.ballot; returns 0 when terminal state reached.\n- voting.sh: e2e harness building voting \n[…]\naiming phase, stalling advance.\n- DAGNode + GossipParticipant: add Sendable conformance for Swift-6\n  concurrency correctness in task groups.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-smoke): voting onion-shuffle + lineage flow + e2e harness …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T05:28:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "062b1e2c7bd19aa9d752d9688dd455eda64346f4",
          "body": "…fle (onion+lineage)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(voting-example): minimal session-service wiring PipelineWithShuf…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T05:05:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f13bff68d87cb15cb4bb2fa11539ae5b32ac0f1e",
          "body": "…erop vs local server\n\nclients/swift/e2e/lib.sh: shared REPO_ROOT resolver + wait_for_health + stop_server trap.\nclients/swift/e2e/auction.sh: builds helper + session-service (-tags openfhe), starts helper-backed\nserver (mode=helper, depth=12, ring_dim=2048, scaling_mod_size=50), runs AresSmoke auct\n[…]\nefault depth corrected to 12 (matches Python smoke and\nserver binary default; depth=6 is too shallow for PhaseArgmax depth_min=8 constraint).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(swift-e2e): client-agnostic auction harness — FHE-ciphertext int…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T05:01:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5a268f011dc0b308be3f26acb5ca5128b70a0cba",
          "body": "…fhe_smoke.py)\n\nAdds AresSmoke executable target (FHE-gated, inside `if openFHEEnabled`)\nwith AuctionFlow translating the Python smoke: N-party threshold keygen,\nencrypt bids, seed pre-shared keys via admin attrs, concurrent WS phase\nchoreography (invitation → keygen.share → BIDDING → bid → DECRYPTI\n[…]\n capturing non-Sendable FHE handles across\nconcurrency domains. Uses @main for top-level async. VotingFlow stub\nincluded (L3-T7 placeholder).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-smoke): AresSmoke CLI + auction flow (mirrors auction_open…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T04:52:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7bba9c6ef1578bd591ac6029162cfb60e5b5b0d5",
          "body": "…slot submission)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-transport): GossipParticipant (onion build/peel + lineage …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T04:48:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9367cd7b076bd7ad3d19ad72f7685b997338b13d",
          "body": "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-transport): AdminClient (health/start/poll) + Orchestrator",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T04:45:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3331015ed3ac9f37aad1a6c82e6c2e1231766d5c",
          "body": "…phaned continuation\n\nGive each waiter a stable UUID; on timeout/error, removeWaiter locates\nthe continuation by id, removes it, and resumes it with CancellationError\nso the associated nextFrame task can unwind (CheckedContinuation does not\nrespond to task cancellation alone).  Add SessionWaiterTests (#if DEBUG)\nthat exercise the orphan-free invariant via an internal no-socket surface.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(swift-transport): evict timed-out receiveAny waiter to prevent or…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T04:43:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2afcdfcd66ceffdf37dd9be0fe2cb4c490f8b1f0",
          "body": "…en, WS Session\n\nAdds AresTransport (Foundation-only, unconditional) with WSFrame encode/decode,\nHMAC-SHA256 auth-token derivation matching the Go AuthMiddleware, and an actor-based\nSession wrapping URLSessionWebSocketTask with inbox/waiter delivery, expect/receiveAny\nwith timeouts, awaitPhase HTTP-poll, and close. 16 tests pass (13 L1 + 3 WSFrame).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-transport): AresTransport target — WSFrame codec, auth-tok…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T04:13:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a26c2545d4745bc19b793f86bb57712192280806",
          "body": "…ops)\n\nThreshold-CKKS FHE client ops as safe Swift wrappers over ARES-core's\ncanonical C bridge (pkg/ares/crypto/cgo/openfhe_wrapper.{h,cpp}, reused via\nrepo-relative symlinks) compiled against system OpenFHE 1.5.1. New SwiftPM\ntargets COpenFHEBridge (C++) + AresClientFHE, gated behind ARES_OPENFHE \n[…]\ndd/sub/mult/sum/chebyshev/poly/argmax), serialization. App composites\nexcluded. 25 FHE tests (round-trip + tolerance); L1 unchanged (13 tests).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Merge feat/swift-client-l2: Swift ARES client library L2 (FHE client …",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-02T00:01:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eb2dc5e386eb8d079053f85a52f67b7647893f31",
          "body": "…pyAndFree leak, eval-sum e2e test\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(swift-fhe): combine-share OOB guard, honest deserialize error, co…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-01T23:55:30Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3da3b6fea414daac2ae2cbb17d6796e91b25ff9e",
          "body": "Add SAFETY lifetime comment above the first handle class in Handles.swift\nexplaining the shared_ptr-backed ownership invariant. Append a generic\nAresClientFHE L2 section to clients/swift/README.md covering what the layer\nprovides, build gating via ARES_OPENFHE, a threshold round-trip usage snippet,\n\n[…]\nloy notes. .gitignore already covered .build/ and .swiftpm/.\nGate result: 25 / 13 / DECOUPLING-CLEAN / NO-ABSOLUTE-PATHS / SYMLINKS-RELATIVE.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(swift-fhe): L2 README section + handle SAFETY note + final gate",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-01T23:44:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "cd54efea366a1f73f5be61f354d8eb28ac0b7fd4",
          "body": "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-fhe): EvalChebyshevSign + EvalPolynomial + EvalArgmax",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-01T23:39:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8158c5509f8f6755fb592c61e6624180b29ca06d",
          "body": "…ultKey/RotKey serialization\n\nAdds EvalKeyRounds.swift with the complete 2-round distributed eval-mult-key\nprotocol (GenLead/SwitchShare/CombineSwitch/FinalShare/CombineFinal/Insert)\nand the eval-sum-key protocol (GenLead/Share/Combine/Insert). Appends\nserialize/deserialize overloads for EvalMultKey\n[…]\ng internal copyAndFree helper. All 22 tests pass including\nthe EvalMult-after-explicit-insert squared-value assertion (4.0/9.0 accuracy 0.1).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-fhe): full eval-mult + eval-sum key round protocol + EvalM…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-01T23:34:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c09ec71692e5ca9ed4277a69ff6c9855d7ed460d",
          "body": "…; full smoke port (17.0625)\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(swift-fhe): eval add/sub/mult/multconst/sum + eval-key share gen…",
          "author_name": "grussdorian",
          "author_login": "grussdorian",
          "committed_at": "2026-06-01T23:30:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 12,
      "commits_last_year": 256,
      "latest_release_at": "2026-06-25T15:21:59Z",
      "latest_release_tag": "v0.9.8",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 11,
      "days_since_latest_release": 27,
      "mean_days_between_releases": 4.1
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": false,
      "has_contributing": true,
      "health_percentage": 75,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/Fheyalabs/ares-core",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/Fheyalabs/ares-core",
          "is_deprecated": false,
          "latest_version": "v0.9.15",
          "repository_url": "https://github.com/Fheyalabs/ares-core",
          "versions_count": 27,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-22T01:47:08Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "clients/kotlin/ares-client-fhe/build.gradle.kts",
        "clients/kotlin/ares-client/build.gradle.kts",
        "clients/kotlin/ares-smoke/build.gradle.kts",
        "clients/kotlin/build.gradle.kts",
        "go.mod"
      ],
      "largest_source_bytes": 156261,
      "source_files_sampled": 351,
      "oversized_source_files": 2,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/gorilla/websocket",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.3"
        },
        {
          "name": "golang.org/x/crypto",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.31.0"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 16,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "grussdorian",
          "commits": 256,
          "avatar_url": "https://avatars.githubusercontent.com/u/45635468?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "go.yml",
        "keygen-bench.yml",
        "openfhe.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 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": null,
            "reason": "no pull request found",
            "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/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 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": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "18 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "6290743865d53da7b8d28b5e10087fadae9869eb",
        "ran_at": "2026-07-22T21:07:42Z",
        "aggregate_score": 2.7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-18T06:24:03Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-05-19T10:45:02Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/Fheyalabs/ARES-core",
    "host": "github.com",
    "name": "ARES-core",
    "owner": "Fheyalabs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 52,
      "inputs": {
        "security": 27,
        "vitality": 77,
        "community": 43,
        "governance": 49,
        "engineering": 58
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 77,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "commits_last_year": 256,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 11
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "11/52 weeks with commits",
                "points": 7.6,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 11
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "256 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 256
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 12,
              "latest_release_tag": "v0.9.8",
              "releases_from_tags": false,
              "days_since_latest_release": 27,
              "mean_days_between_releases": 4.1
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "12 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 27 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 27
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4.1 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4.1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 43,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 49,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "merged_prs": 16,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "16/16 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 16,
                      "decided": 16
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "followers": 0,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "Fheyalabs",
              "public_repos": 1,
              "account_age_days": 119
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of Fheyalabs",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "Fheyalabs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "1 public repos, account ~0 yr old",
                "points": 2.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 1
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/Fheyalabs/ares-core"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "27 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 58,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "critical",
        "name": "Security",
        "value": 27,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 27,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 2.7
            },
            "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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "18 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 1
            },
            "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": 59,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 100,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.59,
              "toolchain_manifests": [
                "clients/kotlin/ares-client-fhe/build.gradle.kts",
                "clients/kotlin/ares-client/build.gradle.kts",
                "clients/kotlin/ares-smoke/build.gradle.kts",
                "clients/kotlin/build.gradle.kts",
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "clients/kotlin/ares-client-fhe/build.gradle.kts, clients/kotlin/ares-client/build.gradle.kts, clients/kotlin/ares-smoke/build.gradle.kts (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "clients/kotlin/ares-client-fhe/build.gradle.kts, clients/kotlin/ares-client/build.gradle.kts, clients/kotlin/ares-smoke/build.gradle.kts"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "59 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 59,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 156261,
              "source_files_sampled": 351,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/351 source files over 60KB",
                "points": 54.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 351,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T21:07:46.538277Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/f/Fheyalabs/ARES-core.svg",
  "full_name": "Fheyalabs/ARES-core",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenGo.