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

superserve-ai / superserve

Sandbox infrastructure for AI Agents

TypeScript · PythonApache-2.0★ 434 Sterne⑂ 50 Forksseit Okt. 2025Auf GitHub ansehen ↗

superserve-ai/superserve erreicht einen Gesundheitsindex von 74 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Engineering Quality (88/100) ab, am schwächsten bei Security (54/100). Zuletzt heute aktualisiert. 2 Mitwirkende tragen den Großteil der jüngsten Arbeit.

74
gesamt / 100
Gut

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.

74
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

SuperserveOrganisation
18 Follower13 öffentliche Reposseit Aug. 2025

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npm@superserve/cli1.1.11045vor 150 Tagencliaiagentsdeploysandboxcloud
npm@superserve/mcp0.1.26233vor 17 Tagenagentsaifirecrackermcpmicrovmmodel-context-protocolsandboxsuperserve
npm@superserve/sdk0.8.112.43222vor 6 Tagenfirecrackermicrovmsandboxsdksuperserve
PyPIsuperserve0.8.1-21vor 6 Tagenfirecrackermicrovmsandboxsdksuperserve

Metriken nach Kategorie

Vitalität

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

84Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
22.2/36Commit-Rhythmus — 32/52 Wochen mit Commits
18/18Commit-Volumen — 225 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year225
human_commit_share1
days_since_last_push0
active_weeks_last_year32
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 3 Releases veröffentlicht
27/36Release-Aktualität — letztes Release vor 148 Tagen
27/27Release-Rhythmus — ein Release etwa alle 2,6 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count3
latest_release_tagv1.1.0
releases_from_tagsnein
days_since_latest_release148
mean_days_between_releases2,6

Community & Verbreitung

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

67Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
42.8/60Stars — 434 Stars
14.1/25Forks — 50 Forks
0/15Watcher — 1 Watcher
Verwendete Eingangsdaten
forks50
stars434
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (Apache-2.0)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templateja
Wie die Bewertung erfolgt
54.9/80Downloads pro Monat — 13.159 Downloads/Monat über npm, pypi
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@superserve/cli, @superserve/mcp, @superserve/sdk, superserve
dependents
ecosystemsnpm, pypi
total_downloads
monthly_downloads13.159
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

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

70Gut · 24 % des Gesamtindex
Wie die Bewertung erfolgt
25.2/54Bus-Faktor — 2 Beitragende decken die Hälfte aller Commits ab
13.7/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 39 % der Commits
9.5/13.5Breite der Beitragenden — 7 Beitragende
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Verwendete Eingangsdaten
bus_factor2
contributors_sampled7
top_contributor_share0,392
Wie die Bewertung erfolgt
43.2/46.8Issue-Lösungsquote — 92 % der Issues geschlossen
31.6/38.3PR-Annahme — 215/260 entschiedene PRs gemergt
10.5/15OpenSSF Scorecard: Code-Review — Found 23/30 approved changesets -- score normalized to 7
Verwendete Eingangsdaten
merged_prs215
open_issues2
closed_issues24
issue_closed_ratio0,923
closed_unmerged_prs45
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
9.2/25Reichweite des Inhabers — 18 Follower von superserve-ai
10.3/25Kontohistorie — 13 öffentliche Repos, Kontoalter ca. 0 Jahre
Verwendete Eingangsdaten
followers18
owner_typeOrganization
is_verified
owner_loginsuperserve-ai
public_repos13
account_age_days353

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 4 Paket(e) auf npm, pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 6 Tagen
20/20Versionshistorie — 22 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@superserve/cli, @superserve/mcp, @superserve/sdk, superserve
ecosystemsnpm, pypi
any_deprecatednein
min_days_since_publish6

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

88Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 6 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration
9.6/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_configja
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://superserve.ai?utm_source=github&utm_medium=referral&utm_campaign=repo_bio
10/10Repository-Beschreibung
0/10Topics
0/10Wiki
Verwendete Eingangsdaten
topics
has_wikinein
homepagehttps://superserve.ai?utm_source=github&utm_medium=referral&utm_campaign=repo_bio
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

54Mittel · 16 % des Gesamtindex

Sicherheitslage

43Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — keine Daten
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
5.2/7.5Code-Review — Found 23/30 approved changesets -- score normalized to 7
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 145 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,3
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages12
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:superserve@0.8.1 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 12 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

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

75Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 97 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,97
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes5.451
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — apps/console/tsconfig.json, apps/mcp/tsconfig.json, apps/ui-docs/tsconfig.json, examples/loops/tsconfig.json, packages/cli/tsconfig.json, packages/mcp/tsconfig.json, packages/python-sdk/src/superserve/py.typed, packages/sdk/tsconfig.json, packages/ui/tsconfig.json, tests/sdk-e2e-ts/tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 9 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
lockfilesuv.lock
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configsapps/console/tsconfig.json, apps/mcp/tsconfig.json, apps/ui-docs/tsconfig.json, examples/loops/tsconfig.json, packages/cli/tsconfig.json, packages/mcp/tsconfig.json, packages/python-sdk/src/superserve/py.typed, packages/sdk/tsconfig.json, packages/ui/tsconfig.json, tests/sdk-e2e-ts/tsconfig.json
agent_commit_share0,09
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/573 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes36.990
source_files_sampled573
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
40/40Lauffähige Beispiele — cookbook, examples, recipes
Verwendete Eingangsdaten
example_dirscookbook, examples, recipes
has_mcp_signalja
api_schema_files

Eckdaten

434GitHub-Sterne
7Mitwirkende
225Commits, letzte 12 Monate
0Tage seit letztem Push
3Releases
2Bus-Faktor
2offene Issues
npm, PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 50 ⇿
0Sterne
50Forks
3Releases

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

0102030405050162025-112026-032026-07
Major 1Minor 1Patch 1
OpenSSF Scorecard 4.3 / 10
4.3Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-27 21:40 UTC

10Binary-Artifactsno binaries found in the repo
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
7Code-ReviewFound 23/30 approved changesets -- score normalized to 7
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities145 existing vulnerabilities detected
Direkte Abhängigkeiten 75
RegistryPaketVersionsvorgabeManifest
npm@react-email/components^1.0.11package.json
npm@supabase/ssr^0.10.0package.json
npm@supabase/supabase-js^2.101.1package.json
npm@tailwindcss/postcss^4.2.2package.json
npm@types/node^25.5.2package.json
npm@vitejs/plugin-react^5.1.4package.json
npmcmdk^1.1.1package.json
npmhappy-dom^20.8.9package.json
npmnext^16.2.2package.json
npmpostcss^8.5.8package.json
npmposthog-js^1.364.7package.json
npmposthog-node^5.28.11package.json
npmresend^6.10.0package.json
npmtailwindcss^4.2.2package.json
npmvitest^4.1.2package.json
npm@phosphor-icons/react^2.1.7apps/console/package.json
npm@react-email/components^1.0.7apps/console/package.json
npm@supabase/ssr^0.10.0apps/console/package.json
npm@supabase/supabase-js^2.98.0apps/console/package.json
npm@superserve/uiworkspace:*apps/console/package.json
npm@tanstack/react-query^5.96.2apps/console/package.json
npm@xterm/addon-clipboard^0.2.0apps/console/package.json
npm@xterm/addon-fit^0.11.0apps/console/package.json
npm@xterm/addon-image^0.9.0apps/console/package.json
npm@xterm/addon-ligatures^0.10.0apps/console/package.json
npm@xterm/addon-search^0.16.0apps/console/package.json
npm@xterm/addon-serialize^0.14.0apps/console/package.json
npm@xterm/addon-unicode11^0.9.0apps/console/package.json
npm@xterm/addon-web-links^0.12.0apps/console/package.json
npm@xterm/addon-webgl^0.19.0apps/console/package.json
npm@xterm/xterm^6.0.0apps/console/package.json
npmcmdk^1.1.1apps/console/package.json
npmmotion^12.0.0apps/console/package.json
npmnext^16.1.6apps/console/package.json
npmposthog-js^1.353.0apps/console/package.json
npmposthog-node^5.25.0apps/console/package.json
npmreact^19.2.4apps/console/package.json
npmreact-dom^19.2.4apps/console/package.json
npmresend^6.9.2apps/console/package.json
npmzod^3.25.67apps/console/package.json
npm@superserve/mcpworkspace:*apps/mcp/package.json
npmnext^16.1.6apps/mcp/package.json
npmreact^19.2.4apps/mcp/package.json
npmreact-dom^19.2.4apps/mcp/package.json
npm@phosphor-icons/react^2.1.7apps/ui-docs/package.json
npm@superserve/uiworkspace:*apps/ui-docs/package.json
npm@tailwindcss/vite^4.2.1apps/ui-docs/package.json
npmreact^19.0.0apps/ui-docs/package.json
npmreact-dom^19.0.0apps/ui-docs/package.json
npmreact-router^7apps/ui-docs/package.json
npmshiki^3apps/ui-docs/package.json
npmtailwindcss^4.2.1apps/ui-docs/package.json
npm@superserve/sdkworkspace:*packages/cli/package.json
npmboxen^8.0.1packages/cli/package.json
npmcli-table3^0.6.5packages/cli/package.json
npmcommander^14.0.3packages/cli/package.json
npmjs-yaml^4.1.0packages/cli/package.json
npmpicocolors^1.1.1packages/cli/package.json
npmposthog-node^5.25.0packages/cli/package.json
npmtar-stream^3.1.7packages/cli/package.json
npmterminal-link^5.0.0packages/cli/package.json
npm@modelcontextprotocol/sdk^1.29.0packages/mcp/package.json
npm@superserve/sdkworkspace:*packages/mcp/package.json
npmzod^3.25.0packages/mcp/package.json
PyPIhttpx>=0.24.0packages/python-sdk/pyproject.toml
PyPIpydantic>=2.0.0packages/python-sdk/pyproject.toml
PyPItyping-extensions>=4.0.0packages/python-sdk/pyproject.toml
PyPIwebsockets>=12.0packages/python-sdk/pyproject.toml
npm@base-ui/react^1.3.0packages/ui/package.json
npm@phosphor-icons/react^2.1.7packages/ui/package.json
npm@superserve/tailwind-configworkspace:*packages/ui/package.json
npmclsx^2.1.1packages/ui/package.json
npmmotion^12.0.0packages/ui/package.json
npmshiki^4.0.0packages/ui/package.json
npmtailwind-merge^3.4.0packages/ui/package.json
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

Abhängigkeits-Advisories 0

Die Installation von pypi:superserve@0.8.1 zieht 12 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 7266,
      "has_wiki": false,
      "homepage": "https://superserve.ai?utm_source=github&utm_medium=referral&utm_campaign=repo_bio",
      "languages": {
        "CSS": 6341,
        "HTML": 664,
        "Ruby": 1058,
        "Shell": 3132,
        "Python": 400451,
        "JavaScript": 56615,
        "TypeScript": 1792489
      },
      "pushed_at": "2026-07-27T17:03:51Z",
      "created_at": "2025-10-10T01:33:24Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-27T05:19:22Z",
      "description": "Sandbox infrastructure for AI Agents",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "Python"
      ]
    },
    "owner": {
      "blog": "https://superserve.ai",
      "name": "Superserve",
      "type": "Organization",
      "login": "superserve-ai",
      "company": null,
      "location": "United States of America",
      "followers": 18,
      "avatar_url": "https://avatars.githubusercontent.com/u/225320943?v=4",
      "created_at": "2025-08-08T04:32:41Z",
      "is_verified": null,
      "public_repos": 13,
      "account_age_days": 353
    },
    "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": "v1.1.0",
          "kind": "minor",
          "published_at": "2026-03-01T03:17:47Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2026-02-24T00:45:50Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2026-02-23T22:31:08Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "263c83bd4d0892d3107371b245742a73dd3434db",
          "body": "## Related Issues\nCleans up the billing page\n\n## Description\nAdds a billing summary page\n\n## Additional Context\n<!-- Anything you want reviewers to know or give specific feedback on?\n-->\n\n## Testing\n<!-- Describe how you tested these changes -->\n\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\n<img width=\"1651\" height=\"914\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/052d98e9-224d-4fb9-848b-3214c6f705ed\"\n/>",
          "is_bot": false,
          "headline": "Adding a billing summary UI (#251)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-07-24T00:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d0cca95888b199d58bf34e750d5a5d04adc26b5",
          "body": "The control plane is moving the per-team active-sandbox counter from the\n`team.active_sandbox_count` column to a sharded counter table; after\nthat migration the column freezes at its pre-migration value and live\ncounts are served by the `team_active_sandbox_counts` view. This\nrepoints the console's \n[…]\n shows wrong data that this PR would\nhave shown correctly.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: read live sandbox counts from the sharded-counter view (#294)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-23T21:02:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4cb632063ddd42bf11044f17d78828e2e5fda884",
          "body": "When an exec WebSocket closed before a command finished, both SDKs\nraised a generic \"connection closed\" error that discarded the server's\nclose code and reason. Separately, `stdin.write` sent arbitrarily large\npayloads as a single frame, which can exceed per-message limits on the\nserver side.\n\n- std\n[…]\nn\n`__version__`, which had drifted from `pyproject.toml`).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "sdk: chunk stdin writes and surface exec close reasons (#291)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-21T02:28:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "609c006a859a0166fc142dba75c4c0311598d691",
          "body": "Reverts superserve-ai/superserve#283",
          "is_bot": false,
          "headline": "Revert \"docs: add LangChain Deep Agents integration page\" (#292)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-21T00:54:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2327e5809bb25c47b845d05f0e23f8e6ea9e8946",
          "body": "Adds a docs page for the\n[`langchain-superserve`](https://pypi.org/project/langchain-superserve/)\nintegration — using Superserve sandboxes as the execution runtime for\nLangChain, LangGraph, and Deep Agents.\n\n## What's here\n- New page `integrations/agent-harnesses/langchain.mdx` under\n**Integrations \n[…]\n async\n`ainvoke` path verified against SDK signatures.\n\nModel in the example uses the current-generation\n`anthropic:claude-sonnet-5`.\n\n---------\n\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "docs: add LangChain Deep Agents integration page (#283)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-21T00:33:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "897993493d1730d66ee419cfccb92f4194eb0c0d",
          "body": "## Summary\n\n- add an Agno guide under Cookbook → Agent Harnesses\n- document installation, sandbox execution, session reuse, lifecycle\noptions, and secret binding\n- add the official Agno mark and link to Agno's toolkit reference and\nrunnable cookbook example\n\n## Why\n\nAgno's Superserve toolkit has mer\n[…]\nadvanced toolkit options.\n\n## Validation\n\n- `bun run docs:check-nav`\n- `bunx --bun mintlify validate`\n- `bunx --bun mintlify broken-links`\n- local Mintlify preview returned HTTP 200 for the Agno route",
          "is_bot": false,
          "headline": "docs: add Agno integration guide (#288)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-17T19:39:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "abcd5c4d512759f82555af1b146869ce1d8e2711",
          "body": "## Summary\n\n- add the dedicated `platform:activity:read` permission to console\nimpersonation keys\n- scope audit-log caches by the active or impersonated team\n- resolve per-sandbox activity from the impersonated team's region\n- fail closed with a clear authorization state when activity access is\nmiss\n[…]\ns/console lint`\n- `bun run --cwd apps/console typecheck`\n- 58 focused Vitest tests passed across permissions, impersonation,\nproxy authentication, activity cache isolation, and activity server\nactions",
          "is_bot": false,
          "headline": "Fix admin access to impersonated audit logs (#285)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-17T18:31:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fa841ba3d1d555a5751b1b7d9bfcb23ce9bf8a3c",
          "body": "## Summary\nPlatform impersonation of a migrated team fails with 401s: the\nimpersonation cookie pins the team's region at start, and `findTeamById`\nreturns the first cell match in configured order — for a migrated team\nthat's the detached fallback row in the old cell, whose keys are all\nrevoked. Part\n[…]\now is missing, null-home_region compatibility.\n- Full team-directory suite: 24/24.\n- Root cause verified live against a migrated team (impersonation 401 →\nresolves after the equivalent data-side fix).",
          "is_bot": false,
          "headline": "console: findTeamById prefers the cell a team names as home (#282)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-15T01:38:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "365ee739c116f11647fc59721109a39c4c288c42",
          "body": "## Related Issues\n<!-- Link any related issues: Fixes #123, Relates to #456 -->\nNone.\n\n## Description\nAdds a `loop-pr-loop` GitHub Actions workflow that runs the published\n`@superserve/loops` PR review loop on every PR code change (opened,\nsynchronize, reopened) plus manual dispatch, driving one war\n[…]\ns[bot]`\nusing the workflow's built-in token.\n\n## Testing\n<!-- Describe how you tested these changes -->\n\n- [ ] Tested locally\n- [ ] Added/updated tests\n- [ ] All tests passing\n\n## Screenshots/Demo\nN/A",
          "is_bot": false,
          "headline": "Add pr-loop GitHub Actions workflow (#280)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-15T00:06:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3e1833b2500cc45c13e770cb6ddc8b362bf68068",
          "body": "## Related Issues\nWhen we fixed the impersonation, we broke the template view\n\n## Description\nThis changes the authentication for the template view\n\n## Additional Context\n<!-- Anything you want reviewers to know or give specific feedback on?\n-->\n\n## Testing\n<!-- Describe how you tested these changes -->\n\n- [ ] Tested locally\n- [ ] Added/updated tests\n- [ ] All tests passing\n\n## Screenshots/Demo\n<!-- If applicable, add screenshots or a demo link -->",
          "is_bot": false,
          "headline": "fixing template view (#281)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-07-14T22:39:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94f348345513e3315e13c5729b744d3f2dd378fa",
          "body": "…uperserve sandbox (#247)\n\n## Summary\n\nAdds **PR Superloop** — an open-source, installable agent loop that\nshepherds open pull requests. On each commit pushed to a PR, Claude Code\nruns headless inside a warm Superserve sandbox, reviews the diff against\na calibrated rubric, runs the project's own tes\n[…]\nut if preferred)**\n- `apps/console/src/components/date-range-filter.test.tsx` — pins the\nclock so the test is date-independent.\n- `docs/docs.json` — also adds Teams endpoints to the API Reference nav.",
          "is_bot": false,
          "headline": "Add PR Superloop: an installable agent loop that reviews PRs from a S…",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-14T14:24:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c5bd5df203a9300bff63c21c6bc67ea19592a011",
          "body": "## Related Issues\nhttps://github.com/superserve-ai/superserve/pull/227 this was the\noriginal change that made the changes, and then i stomped on it by\naccident\n\n\n## Description\nThis is the \"impersonation\" flow that I accidentally killed\n\n## Additional Context\n\n\n## Testing\nAdded tests. also looking at the console build\n\n- [X ] Tested locally\n- [X ] Added/updated tests\n- [X ] All tests passing\n\n## Screenshots/Demo\n<!-- If applicable, add screenshots or a demo link -->",
          "is_bot": false,
          "headline": "Reviving a page I killed (#263)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-07-13T21:07:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85779e63fcb0da48872315aebc47d1fe6e8ab05c",
          "body": "## Summary\nOne version alignment left over from #275 (the `MIN_SDK_VERSION` bump to\n0.8.0 already landed there): the Python SDK bumps to 0.8.0, since it\nships the same new region-routing code as the TS SDK's 0.8.0 and a PyPI\nrelease can't go out on the old version.\n\n## Testing\nVersion metadata only; no code paths change.",
          "is_bot": false,
          "headline": "python-sdk: bump to 0.8.0 to match the TS SDK region release (#276)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-10T04:48:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96bcebfa39b00398ced6a3e5f937cea1360989bb",
          "body": "## Summary\nAdds `usw-sandbox.superserve.ai` to both SDKs' shared-host sets, so\nserver-side data-plane traffic for usw sandboxes uses the pooled shared\norigin + routing header instead of a distinct TLS origin per sandbox.\nThe comment guarding this entry asked for the usw proxy's shared-host\npath to b\n[…]\nutes via the shared origin. The test list extends\nper cell launch.\n\n## Testing\nTS SDK: 221 tests green (13 files). Python SDK: 54 green. Live\nshared-origin exec verified against the usw cell as above.",
          "is_bot": false,
          "headline": "sdk: usw joins the shared-host data-plane path (#277)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-10T04:45:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ea65baf80cad7850bca5ec712c1d48b21966342e",
          "body": "Makes west-cell (`usw`) teams work from all three clients: SDKs,\nconsole, and MCP. Before this, a west team's key/console/MCP calls\nlanded on the primary (us-east) cell, so their sandboxes were\nunreachable.\n\n**SDKs** — add `usw` → `{api-usw.superserve.ai,\nusw-sandbox.superserve.ai}` to the known-reg\n[…]\nTests: SDK, Python, MCP, and console suites green; typecheck clean.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "Add usw region routing to the SDKs and console data plane (#275)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-10T03:09:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a82fad135b9b19a6a052ebd5cee8ab20880a2ac3",
          "body": "…273)\n\n## Problem\n\nA brand-new user (e.g. Google OAuth first login) lands on `/sandboxes`\nand immediately hits **\"Something went wrong — You do not have\npermission to perform this action.\"** The auth callback provisions\nnothing, so the user has zero memberships; the first server-side request\nis what\n[…]\nexisting on `main` (OpenAPI `GET /activity` missing from docs nav).\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "console: provision full RBAC chain on first-login team auto-create (#…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-09T22:44:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7a5f0c29e01215b864cf477154c084956177d116",
          "body": "…(#274)\n\nAdds a `sec` suffix inside the **Timeout** and **Auto-delete** number\ninputs in the create-sandbox dialog's advanced section, so the unit is\nvisible at a glance rather than only in the helper text.\n\nUses the `Input` component's existing `suffix` prop — no component\nchanges.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: show seconds unit on sandbox timeout and auto-delete inputs …",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-09T17:37:26Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "58dc097c15e6b11600f9bf0bd2796dc76dd69085",
          "body": "## Summary\n\nMigrates the Audit Logs page from client-side filtering of a capped\n≤100-row fetch to true server-side pagination against the new `GET\n/activity` endpoint, mirroring the Sandboxes list page.\n\nPreviously the page fetched up to 100 activity rows via a Supabase\nserver action (`listActivityA\n[…]\nv entry can only land\nonce #189 is merged. It'll go in a small docs-only PR right after —\nmerge it promptly, since once #189 is on `main` the check will expect\nthe nav entry on subsequent console PRs.",
          "is_bot": false,
          "headline": "feat: server-side pagination for audit logs page (#270)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-09T16:45:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "56b57cef38bf117002b356fcf557b6d9a525b556",
          "body": "## Summary\nAdds a team switcher to the console. The active team lives in an\nhttpOnly cookie (`region:teamId`) and every dashboard surface —\nsandboxes, templates, snapshots, secrets, activity/audit, API keys,\nbilling, quota, team management — resolves it server-side, so switching\nre-scopes the whole \n[…]\ner-team derivation; new teams-actions\ntests for the directory's active marker, switch validation, and\ncreate-switches-to-new-team.\n- Full console suite: 409 tests pass; typecheck, oxlint, oxfmt clean.",
          "is_bot": false,
          "headline": "console: team switcher — cookie-backed active team (#272)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-09T05:02:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "56145c0cefc77b0844b29fb92bef67352c311baa",
          "body": "Auto-pause (`timeoutSeconds`) was only documented as scattered field\ndescriptions — the lifecycle page had Pause/Resume/Kill/Auto-delete but\nno Auto-pause section, even though it's the more fundamental behavior\n(auto-delete depends on a box pausing first).\n\n- Adds an **Auto-pause** section to the li\n[…]\neout tracks the current active session and re-arms\non resume; it's not a total lifetime. Both now link to the new section.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: add auto-pause lifecycle section and fix timeout wording (#269)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-08T18:12:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "301e15b79d436eb7168eed51c12af9d386019a2b",
          "body": "…d main (#268)\n\nRecovers from a partial release and fixes the underlying workflow bug.\n\n## Context\n`@superserve/sdk@0.7.8` **published successfully to npm**, but the\n`release.yml` \"Commit version bump\" step failed:\n```\nGH006: Protected branch update failed for refs/heads/main.\nChanges must be made t\n[…]\nthe\nprotected-branch design and the PyPI publisher config.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "release: reconcile main to 0.7.8 and fix release.yml push to protecte…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-08T05:53:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dec41101a2939857e8fea00d0d6130f8f589e327",
          "body": "…ump (#267)\n\nThe auto-delete PR (#265) pre-bumped the SDK and Python package versions\nto 0.7.8. But `release.yml` (the `workflow_dispatch` publisher) is\ndesigned to **own** the version bump — it bumps\n`package.json`/`pyproject.toml`/`__init__.py` to the input version,\npublishes via OIDC, then commit\n[…]\n: 0.7.8), then\npush the `mcp-v0.1.1` tag once the SDK is live on npm.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "revert: unset SDK/Python 0.7.8 bump so release.yml owns the version b…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-08T00:04:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "778a9cbd2dc5fda236c5537a8fd42dadd1e2b7ad",
          "body": "Everything in this repo and its PR metadata is public, so the guidelines\nnow say what that implies: no customer names, no internal tracker IDs,\nno internal URLs — in code, fixtures, commits, or PR text. Also rewords\none merged comment that cited a tracker ID.\n\nTesting: docs + comment-only change; lint clean on the touched file.",
          "is_bot": false,
          "headline": "document public-repo hygiene in CLAUDE.md (#266)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-07T23:42:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ab33b48202fa606009381a9ea1f372683011a01",
          "body": "… on update (#265)\n\nSDK, console, MCP, and docs support for paused-sandbox auto-delete, plus\na patchable auto-pause timeout. Mirrors the control-plane API\n(superserve-ai/sandbox#178).\n\n- **TS + Python SDKs**: `autoDeleteSeconds`/`auto_delete_seconds` on\ncreate; `update()` sets or clears (`null`/`Non\n[…]\nsole 351), pytest (287), MCP (88); typecheck\n+ lint clean.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "sdk: auto_delete_seconds on create, patchable auto-delete and timeout…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-07T23:30:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "70235d6bb5b87bc53a83aa138c3bda28d7ee56b5",
          "body": "… writes (#264)\n\nThe console now supports teams homed in different regions (\"cells\"),\nincluding creating new teams in the usw cell. A cell registry maps\nregion → {Supabase admin client, control-plane API base URL}; team\nlookups fan out across configured cells, and everything that operates on\na team \n[…]\nhe team's cell, proxy routes forward to the resolved cell base\nURL.\n- `bun run test` (console): 47 files, 370 tests passing; `bun run\ntypecheck` clean; `bunx oxlint` / `oxfmt` clean on `apps/console`.",
          "is_bot": false,
          "headline": "console: multi-cell support — cell registry, team directory, per-cell…",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-07T18:11:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "739c43305761579daa2f7144dbd50edb0f02b510",
          "body": "## Summary\n\nRestructures the docs site navigation. The former 4-tab layout\n(Documentation · SDK Reference · Integration Guides · API Reference)\nbecomes a single-axis **anchors** layout: no top tab bar; four\nicon-labeled sections pinned at the top of the sidebar, selected via a\nlayout comparison acro\n[…]\ner renders in the Cookbook sidebar\nwhile `cookbook/pr-loop.mdx` and `cookbook/software-factory.mdx` remain\non disk\n- [x] Verify the anchors sidebar renders as expected on the deployed\nMintlify preview",
          "is_bot": false,
          "headline": "docs: merge SDK and API reference into one tab, add Cookbook tab (#255)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-06T17:26:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1e3459cece001d3a2eba85b8a86a7d835b155174",
          "body": "…d templates (#262)\n\n## What\n\nAdds server-side pagination, sorting, and filtering to the **Sandboxes**\nand **Templates** list views. Both pages previously fetched the entire\nlist and filtered/searched in memory, which doesn't scale as a team\naccumulates sandboxes/templates. Each view now fetches onl\n[…]\nnual: paginate / sort / filter / search on both pages against a\nbackend that has the pagination params (staging, post backend deploy)\n\n---------\n\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "console: server-side pagination, sorting & filtering for sandboxes an…",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-07-04T00:50:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8059e4985eb7fa4d3c519d203e00ae8aa9ad99d",
          "body": "SDKs (TypeScript + Python) now derive the API endpoint client-side from\nthe region token in `ss_live_<region>_<random>` API keys, via a\nknown-regions map. This lets multi-region keys route to the right cell\nwith zero configuration, part of the multi-region cell work (SS-143).\n\n**Technical decisions*\n[…]\new tests in both SDKs cover legacy keys, `use` keys, unknown regions,\n`_`-collision keys, weird/never-throw keys, and the full precedence\norder (plus prototype-member safety on the TS side via `Map`).",
          "is_bot": false,
          "headline": "sdk: derive API endpoint from region-tagged API keys (#261)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-02T23:53:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bb86b7daebd0a1110b89514169ca386ed2b1bd7f",
          "body": "…250)\n\n## What\n\n**Trusted Publishing (token-free OIDC) for the release workflows:**\n- `mcp-publish.yml` — npm publish now via OIDC (dropped\n`NODE_AUTH_TOKEN`/`.npmrc`; added `npm install -g npm@latest` since OIDC\ntrusted publishing needs npm ≥ 11.5.1). The MCP-registry half already\nused `github-oidc\n[…]\n`NPM_TOKEN` / `PYPI_TOKEN` secrets can be deleted.\n(`cli-publish.yml` still uses a token — same treatment optional later.)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: Trusted Publishing for MCP + SDK releases; fix MCP server.json (#…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-02T21:00:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b53719176a7344b17356091ad3a62a81435779d0",
          "body": "## Summary\n- Several public docs described sandbox cold starts as \"sub-second\" —\nundersells actual latency and reads as vague marketing copy\n- Replaced with \"<50ms\" / \"fast (<50ms)\" across the Claude Managed\nAgents integration docs, guide README, and parallel-benchmark-agent\nrecipe README\n\n## Testing\n- Docs-only change",
          "is_bot": false,
          "headline": "docs: replace sub-second cold start claims with <50ms (#256)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-02T17:04:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa08a0039ea6bb45e467cdcb95afdeefa039bc86",
          "body": "## Summary\n- Add a permission-gated `/user-management` console page for RBAC Phase\n4 team member and role management.\n- Add a console-owned `/api/team-management` proxy that resolves the\ncurrent team server-side and forwards only to customer RBAC endpoints.\n- Gate user-management access on the share\n[…]\nests\n\n## Notes\n- No backend schema changes in this repo.\n- Customer sandbox read access should move to explicit\nplatform-authorized read APIs in a separate backend/API design, not\nstaff impersonation.",
          "is_bot": false,
          "headline": "Add RBAC user management console UI (#241)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-07-02T05:56:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c29fdd2b21da12a09457b899c433b3ef75d66252",
          "body": "New customer API keys embed the team's home region —\n`ss_live_<region>_<random>`, read from `team.home_region` — so the API\nedge can route a request to the team's home cell from the key string\nalone, no directory lookup. Legacy keys are untouched and keep working.\nPart of the two-region rollout; pai\n[…]\ng\n\n3 new vitest cases: region embedding + hash-covers-full-string, fallback\non missing column, fallback on unknown region code. Existing\nimpersonation-refusal test unchanged. Typecheck + oxlint clean.",
          "is_bot": false,
          "headline": "console: mint region-prefixed API keys (ss_live_<region>_...) (#253)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-07-02T05:45:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7f54ea21d60a306adbff184dc8ddb4318951ab4c",
          "body": "Shows a warning banner once a team reaches 80% of its sandbox limit,\ncomplementing the email/Slack alerts from the control plane.\n\n- Live read of the team's sandbox usage (self-clears when sandboxes are\ndeleted).\n- Threshold check mirrors the control-plane integer math so banner and\nemail never disa\n[…]\nession dismiss; renders nothing for multi-team users (no error\nspam).\n- Mounted in the dashboard shell above page content.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: warn in-product when a team nears its sandbox limit (#239)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-07-02T03:52:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ec092a43df02d80fe5ab3f362458a4bbdb0d8b94",
          "body": "## Summary\n\n- Cuts CLAUDE.md from ~270 lines to ~90\n- Removes SDK API surfaces, design choices, lifecycle details, and\nverbose command tables — all covered better in\n`skills/superserve/SKILL.md` and `docs.superserve.ai`\n- Keeps the non-obvious, repo-specific stuff: console proxy\narchitecture, `bun add --filter` footgun, SDK version sync locations,\ndesign language, branding, git rules\n- Adds pointer to `docs.superserve.ai/llms-full.txt` for LLM-friendly\nfull reference",
          "is_bot": false,
          "headline": "trim CLAUDE.md to essentials, defer to docs and skill (#249)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-29T22:23:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32133b686fd92f035f102309c9643b28ffea134c",
          "body": "## Summary\n\n- Deletes the `spec/` folder (38 AI-generated planning docs that don't\nbelong in a public repo)\n- Removes the `## Planning` section from `CLAUDE.md` that was\ninstructing agents to save docs there",
          "is_bot": false,
          "headline": "remove spec/ folder and planning instruction from CLAUDE.md (#248)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-29T21:29:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c195040f0756220712751400193498700d5cc5bf",
          "body": "Adds context7.json for Context7 integration with the Superserve docs.",
          "is_bot": false,
          "headline": "add context7.json with superserve context configuration (#246)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-29T20:53:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de696a3371ad35b99ea4b5527a944bc4e21e9304",
          "body": "## Related Issues\n\nImplements SS-84 (Superserve sandbox MCP server).\n\n## Description\n\nAdds `@superserve/mcp`, a stdio Model Context Protocol server that\nexposes Superserve sandbox primitives as 10 fine-grained tools\n(`sandbox_create`, `sandbox_exec`, `sandbox_files_read`/`write`/`list`,\nand lifecycl\n[…]\nerror mapping, directory-listing\nparser, file round-trips); the live exec round-trip skips cleanly\nwithout `SUPERSERVE_API_KEY`.\n\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing",
          "is_bot": false,
          "headline": "mcp: add @superserve/mcp server with docs and design spec (#234)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-26T17:37:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "784d5e020c401e0a9e4b246fb57c5f9f6e73c40b",
          "body": "## Related Issues\n\nRelates to SS-91 (agent skills).\n\n## Description\n\nAdds a consumer-facing **agent skill** at `skills/superserve/SKILL.md`\nthat teaches AI coding agents (Claude Code and the broader skill\necosystem) how to drive the Superserve sandbox SDKs — covering the\nlifecycle (`create`/`pause`/\n[…]\ned. No application code changed.\n\n- [x] Tested locally (content verified against SDK source + docs)\n- [ ] Added/updated tests (N/A — documentation only)\n- [ ] All tests passing (N/A — no code changes)",
          "is_bot": false,
          "headline": "docs: add Superserve sandbox agent skill (SKILL.md) (#228)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-26T17:03:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ee2514bdc17635a3acb6c048f98347f8bef44ed1",
          "body": "## Summary\n\nFixes the SDK bug @meAmitPatil reported on #228: the data plane returns\n**503** for a paused sandbox, but the SDKs only auto-resumed on **401**,\nso `pause()` + an immediate `run()` / file op failed with \"sandbox is\npaused\" instead of transparently resuming. `files` had **no resume path\na\n[…]\nse step\n(`SDK_VERSION` tracks the last published version).\n- 503-detection keys on the status code; if the backend later exposes a\nstable `code` for paused, `isResumable` can be tightened to match it.",
          "is_bot": false,
          "headline": "sdk: auto-resume a paused sandbox on data-plane 503 (TS + Python) (#244)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-26T17:00:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "863979036ea3930af5dae8e04a4616f4cb3f12cf",
          "body": "## Related Issues\nN/A\n\n## Description\nWhen you create a PR, it creates preview links, and they were not\nworking correctly. this addresses that.\n\n## Additional Context\nN/A\n\n## Testing\nI clicked the link, and it worked.\n\n- [ ] Tested locally\n- [ ] Added/updated tests\n- [X] All tests passing\n\n## Screenshots/Demo\n[Link](https://console-git-aw-fixpreview-superserve.vercel.app/)",
          "is_bot": false,
          "headline": "Mini PR to allow use to use Vercel to get a preview of the UI (#243)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-06-25T20:36:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6374682297c980d0a5366ad4a3ab55f1a3013d42",
          "body": "## Summary\n\nAdds a top-level **Storage** docs section with two new integration\nguides, and reorganizes the virtual-filesystem pages.\n\n- **New Storage group** in the Documentation tab — moved Mesa and Archil\nout of Integration Guides and added Cloud buckets.\n- **Archil** — mount an Archil elastic fil\n[…]\not set in the exec env)\n- missing region `endpoint`/`url` for non-`us-east-1` S3 buckets\n- `chmod 600` on the GCS key file\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: add Storage section with Archil and cloud buckets guides (#242)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-25T03:45:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "239d5fb9f99651ad60681362b5823864ad7f30be",
          "body": "…on plan (#240)\n\n## Related Issues\n\nN/A — surfaced while building the LangChain/LangGraph (Deep Agents)\nintegration.\n\n## Description\n\nFixes a bug in the Python SDK's `map_api_error`: it assumed the response\nbody's `error` field is always a dict (`{\"error\": {\"message\": ...}}`,\nthe control-plane shape\n[…]\npassed (incl. the new\n`test_string_error_body_maps_to_typed_error`); ruff + mypy clean. The\nintegration's full `SandboxIntegrationTests` suite (87 tests) was\nverified green live against the fixed SDK.",
          "is_bot": false,
          "headline": "Fix SDK data-plane error mapping + add langchain-superserve integrati…",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-24T17:39:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dddb94df91bef4fa0b680383cbc04640bf2a7050",
          "body": "## Related Issues\n\nImplements sandbox **preview URLs** — lets a coding agent expose a\nrunning service (dev server, demo, etc.) inside a sandbox as a public\nURL a reviewer can open.\n\n## Description\n\nAdds `getPreviewUrl(port)` / `get_preview_url(port)` to the TypeScript\nand Python SDKs — a pure, synch\n[…]\nntext\n\nAccess is public-by-UUID (no auth) by design, and the section is gated\non the sandbox being `active`. Running several dev servers at once is\nsupported by previewing multiple ports side by side.",
          "is_bot": false,
          "headline": "feat: add sandbox preview URLs (TS/Python SDK + console) (#229)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-24T17:06:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09fe10825f357f97d84c461ae22840a3318a06c9",
          "body": "## Related Issues\nRelates to SS-64\n\n## Description\nAdds read-only, console-only admin team impersonation behind a\nstaff-identity gate. A staff user can \"act as\" a team from a new admin\nteams page; the console derives an ephemeral per-admin API key, scopes\nall reads to the impersonated team, blocks w\n[…]\n actions, the proxy gate (GET\nallowed, writes blocked), and the new `access_token` redaction\n(adversarial — fails without the fix). Full console suite: **277\npassing**; typecheck + oxlint/oxfmt clean.",
          "is_bot": false,
          "headline": "feat(console): admin team impersonation (read-only, staff-gated) (#227)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-24T16:54:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1b80e824c01f3f86b6946a135833101631bf62fa",
          "body": "## Summary\n- **Auth routes noindex**: Added `(auth)` group layout setting `robots:\nnoindex, nofollow` — covers all auth pages and their query-string\nvariants (`?next=`, `?utm_source=`) in one place, fixing the \"Duplicate\npages without canonical\" Ahrefs audit issue\n- **Docs PostHog proxy**: Updated `\n[…]\n74 docs pages) Ahrefs audit issues\n\n## Test plan\n- [ ] Console auth pages (`/auth/signin/`, `/auth/signup/`) render\n`noindex` in `<head>`\n- [ ] PostHog events from docs route through `p.superserve.ai`",
          "is_bot": false,
          "headline": "fix: noindex auth routes + PostHog proxy on docs (#238)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-24T01:04:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "65aae46a69e03f667106335760c442e621c390c3",
          "body": "## Summary\n\n- `apps/console/src/app/layout.tsx`: OG image was set to `/og-image.png`\nwhich doesn't exist in `public/` — would return 404 for any social share\npreview\n- Changed to `https://www.superserve.ai/cover.png` (the main site's OG\nimage) which is a valid, publicly accessible URL\n\n## Test plan\n\n- [ ] Verify `og:image` in console HTML source resolves to a 200 image",
          "is_bot": false,
          "headline": "fix: console OG image was referencing a missing file (#237)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-23T21:48:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b04931c0a7954553eeca2a73183542fbd8b3faf",
          "body": "Adds billing pricing and usage estimates for the authenticated team,\nbacked by pricing plan/rate data and hourly usage rollups.\n\nNo credits system is included in this branch.",
          "is_bot": false,
          "headline": "Adding pricing to the UI (#224)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-06-22T21:43:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9ab272fefad385a72e98eee8c5126e70dbb386d",
          "body": "Moves the secret-binding endpoints into the **Secrets** API-reference\ngroup, where they belong with the rest of the secret operations:\n\n- `POST /sandboxes/{sandbox_id}/secrets` (attach)\n- `DELETE /sandboxes/{sandbox_id}/secrets/{env_key}` (detach)\n\nThey were under **Sandboxes** (grouped by URL path)\n[…]\ninds all secret operations\n(lifecycle + attach/detach + audit) in one place. No spec change;\n`check-nav` stays green (37 operations).\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: group secret attach/detach under Secrets (#236)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-22T19:24:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba84955e9c7f9a91056bbcd33d35daf8976ca40e",
          "body": "The Mintlify docs build was failing (\"Listed in the docs nav but not\ndefined in the OpenAPI spec\"), which blocked the **entire** API\nreference from updating — including the secrets endpoint pages.\n\nCause: exec moved from the control plane to the data plane (sandbox#78),\nwhich removed `POST /sandboxe\n[…]\n docs pull the\nOpenAPI from sandbox `main`, so merge the sandbox PR first, then this\none, for the two new pages to render.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: fix Exec API reference nav to match spec (#235)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-22T19:14:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6f0e8edc1db3dcf87d118c073c304bb3b8e84d53",
          "body": "## What\n\nLets a console user download an entire sandbox directory as a single ZIP\nfrom the **Files → Download** panel. This is the console half of SS-66.\n\n## Changes\n\n`apps/console/src/components/sandboxes/files-section.tsx`\n(`DownloadPanel`):\n- Removed the client-side `endsWith(\"/\")` rejection — a \n[…]\nthe console ships first, a directory download shows \"Directory\ndownload is not available for this sandbox yet\" (single-file downloads\nkeep working) until the data plane catches up. SDKs are unchanged.",
          "is_bot": false,
          "headline": "console: download a sandbox directory as a zip (#221)",
          "author_name": "Mohamed Sobhy",
          "author_login": "mohamedsobhi777",
          "committed_at": "2026-06-22T17:25:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c8c5529ae6d4506f70d8a8af1970190824a1c93c",
          "body": "Bumps `@superserve/sdk` (npm) and `superserve` (PyPI) to 0.7.6 for the\nruntime secret-binding feature (attach/detach at runtime).\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Bump SDK versions to 0.7.6 (#231)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-18T21:09:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53893d50378d4269ed7aff4a7bc5b353df2d68e6",
          "body": "Adds attach/detach secret to the SDKs and the console, plus docs.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Runtime secret binding: SDK, console, and docs (#226)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-18T19:49:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "239958f13b037b9e84e75defb720665b26c1a3e8",
          "body": "Release the current SDK (adds the secrets surface) to npm + PyPI before\nthe runtime-binding work.\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Bump SDK versions to 0.7.5 (#230)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-18T18:27:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfa0939246ea58458e535abc6e112ec44882ef21",
          "body": "## Summary\nTL;DR - Fixes a few issues to improve health score on ahrefs.com.\nCurrently at 66/100, I want to bring it up\n\n\n- Adds Next.js `rewrites()` to proxy PostHog requests through the\nconsole's own domain (`/ingest/*` → `us.i.posthog.com`,\n`/ingest/static/*` → `us-assets.i.posthog.com`)\n- Update\n[…]\n\n- Privacy link: check signin/signup pages — privacy link should point to\n`www.superserve.ai/privacy` directly\n- Ensure `NEXT_PUBLIC_WEBSITE_URL=https://www.superserve.ai` is updated\nin production env",
          "is_bot": false,
          "headline": "console: proxy PostHog through own domain to bypass ad blockers (#225)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-18T04:01:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d449ac108ba4d0282db8035a0304f842761ffff1",
          "body": "## Related Issues\nSS-55 Usage tracking and Billing\n\n## Description\nThis adds the UI for the usage tracking and billing\n\n## Additional Context\nThere are DB changes to enable the feature, which have already rolled\nout to production\n\n## Testing\nAdded tests, and ran them\n\n- [X ] Tested locally\n- [X ] Ad\n[…]\nDemo\n<img width=\"1644\" height=\"526\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/46b8ae49-23de-4d09-9f28-3d3debdd1f82\"\n/>\n\n---------\n\nCo-authored-by: Alejandro Wille <ahwille@gmail.com>",
          "is_bot": false,
          "headline": "Add metrics UI (#222)",
          "author_name": "awille-ai",
          "author_login": "awille-ai",
          "committed_at": "2026-06-17T23:45:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd083a81506474d9d567ce7fa313bf73ed9b67f1",
          "body": "…#216)\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: secrets foundation — types, API client, hooks, sidebar nav (…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-17T22:10:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc25c3aacb62258d51f987fda31dc4ec62c5e825",
          "body": "## Summary\n- Added MCP contextual menu options (`mcp`, `add-mcp`, `cursor`,\n`vscode`) and dropped `chatgpt` — makes it easy for Claude Code, Cursor,\nand VS Code users to add our docs as an MCP server\n- Added MCP tip callout to introduction page\n- Changed \"boots\" → \"starts\" (less jargon-y)\n- Removed \"in under five minutes\" time claim from quickstart description\nand intro card",
          "is_bot": false,
          "headline": "docs: MCP contextual options, copy improvements (#223)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-17T20:19:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0b46594365cb225590c4f014e08c80b4b90ccfa",
          "body": null,
          "is_bot": false,
          "headline": "Docs: theme changes, get started button added (#220)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-06-11T16:11:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6db217d7a6144a9c78c6e656571b511c5c0fb4c3",
          "body": "…ge (#219)\n\nFollow-up to PR #218. Two improvements based on review feedback:\n\n- Replace fragile string-match in the page with a typed `errorCode:\n\"blocked_email\"` returned from the signup action. Action also logs the\nblocked attempt (with email) for visibility.\n- Pass `?reason=signup_blocked` to the\n[…]\nignup context instead of saying\n\"sign in\". OAuth callback also redirects with the same query param when\nthe trigger fires.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: typed errorCode for blocked-email + signup-tailored error pa…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-10T18:56:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "37ce8b6c1fade92382cc8b3dcaec20e8253935ef",
          "body": "When a blocked email or domain attempts signup, the Supabase trigger\nraises and the action returns the wrapped 'Database error saving new\nuser' message. Previously this rendered as inline error text on the\nsignup form; now it routes to the same /auth/auth-code-error page that\nOAuth failures already use, matching the existing Authentication Error\nUX.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: show auth-code-error page when signup is blocked (#218)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-10T18:15:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ab5230f5652e0a571cbe7b5d6e0101e699920bf",
          "body": null,
          "is_bot": false,
          "headline": "Update referral links in README",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-09T20:37:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef42a7ff455a45ed0e6ee608dab79678e105dbde",
          "body": "Reverts superserve-ai/superserve#215",
          "is_bot": false,
          "headline": "Revert \"docs: add Get Started button to navbar\" (#217)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-09T15:44:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b73c3b0f9fe5c9cdfc76b18b387e8054e5cee6d7",
          "body": "## Summary\n\n- Adds a **Get Started** button to the docs navbar linking to\n`https://console.superserve.ai` with UTM tracking\n- Keeps GitHub link alongside it in the navbar\n- Keeps the existing `maple` theme — the layout breakage in the previous\nattempt was caused by switching to `willow`\n- Adds `styl\n[…]\n ] Confirm button styling matches design system\n- [ ] Confirm no layout or visual regressions (docs layout unchanged\nfrom `maple` theme)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
          "is_bot": false,
          "headline": "docs: add Get Started button to navbar (#215)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-09T15:41:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4a6d3dbc64f774b9c96f454af2d4fa306a576825",
          "body": "Reverts superserve-ai/superserve#213",
          "is_bot": false,
          "headline": "Revert \"docs: add Get Started button to navbar\" (#214)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-08T20:41:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2da16cbab8a68a37f7c73bdcc1b251b188aa7a91",
          "body": "## Summary\n\n- Adds a **Get Started** button to the docs navbar (top-right header)\nlinking to `https://console.superserve.ai` with UTM tracking\n- Adds GitHub link alongside it in the navbar\n- Switches theme from `maple` to `willow` — maple renders navbar items\nat the bottom of the sidebar; willow put\n[…]\nsign system (mint green, dark\ntext, no border radius)\n- [ ] Confirm hover state works\n- [ ] Confirm no visual regressions on other pages\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
          "is_bot": false,
          "headline": "docs: add Get Started button to navbar (#213)",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-08T20:36:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "734ec1e012b55fde9b747733412aac3ec7b1747f",
          "body": "Both See-also links in all three recipe READMEs were broken: `Full\nguide` 404'd (no per-recipe doc pages) and is repointed to the\n`claude-managed-agents` guide; `Base recipe` pointed at a nonexistent\npath and is fixed to `../../`.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "guides: fix broken links in the managed-agents recipe READMEs (#212)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-08T18:51:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48a88dbe564a814f1f6a04919a5073395e629dda",
          "body": "…managed-agents (#211)\n\nReorganizes the Claude managed-agents material into one place.\n\n**Moves (via `git mv`, history preserved):**\n- `guides/claude/claude-managed-agents/` →\n`guides/managed-agents/claude-managed-agents/`\n-\n`recipes/claude/{research-agent,dev-environment,parallel-benchmark-agent}`\n\n[…]\nard) now point at the new paths — verified each resolves to an existing\npath, and no old-path references remain anywhere in the repo.\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: consolidate claude managed-agents guide + recipes under guides/…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-07T18:54:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "27e74adfefa3c7ed9690e2cca9de7c8e35414baf",
          "body": "…209)\n\nFixes 6 doc inaccuracies, each verified against the platform source /\nSDK / tests:\n\n- **introduction**: `superserve/base` is bare Ubuntu (no Python/Node) —\nremoved the false claim\n- **networking**: precedence is allow-wins (was stated as deny-wins);\nnoted `*.x.com` doesn't match bare `x.com`\n\n[…]\nfailed` error code\n- **claude-agent-sdk**: async tool handler now uses `AsyncSandbox` +\n`await` (was a blocking sync call)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: fix factual inaccuracies in reference and integration guides (#…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-05T00:56:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0ae1d05baf42e1a83e266905a7ad7ca13b800734",
          "body": "The template builder's curated image list offered the **full**\n`python:3.11` / `python:3.12` images (~1.6 GB), while node/debian used\n`-slim`. The full Python images overflow the smaller disk options, so\npicking e.g. Python 3.12 + 1 GB disk always fails with\n`image_too_large`.\n\n- Switch curated Pyth\n[…]\ne (covers the\ncustom-image path).\n\nAfter this, every curated image fits a 1 GB disk (largest is\n`node:22-slim` at 329 MB).\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: use slim Python base images in the template builder (#210)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-04T21:23:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b1f251ae4cd8a2cd7673ba4e3c3810bbe909e337",
          "body": "…ecipes (#206)\n\n## Summary\n\nAdds three new Claude Managed Agents recipes, each with Python +\nTypeScript implementations, a README, and a full docs page.\n\n- **Long-running Research Agent** (`guides/claude/research-agent/`) —\nagent researches topics across multi-turn sessions; sandbox pauses\nbetween t\n[…]\nerve + Anthropic\naccount and confirm end-to-end flow works\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "guides: add research agent, dev environment, and parallel benchmark r…",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-06-04T17:54:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2e7fbda668fcfcbe989652df2564378764bd5847",
          "body": "Bump the TypeScript and Python SDK versions to 0.7.4 for the\ncommands.spawn() release (also corrects the stale User-Agent SDK_VERSION\nin both clients).\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Bump SDK versions to 0.7.4 (#208)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-03T17:47:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f452ad60d2f92563ed7b86cbe93755860d7789ad",
          "body": "Adds `commands.spawn()` — a live, full-duplex command session over the\ndata-plane `/exec/connect` WebSocket. Complements the one-shot\n`commands.run()` (HTTP/SSE); pairs with the server side in\nsuperserve-ai/sandbox#89.\n\n`spawn()` returns a handle while the process runs: stream output, write\nto stdin\n[…]\nbefore-finish, resume-retry, socket cleanup.\n\nTS 152 tests / Python 198 tests green; tsc, oxlint, oxfmt, ruff, mypy\nclean.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Add commands.spawn() for full-duplex exec (TS + Python) + docs (#205)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-03T16:30:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e1b900f3463c83a55719082019957e2a0eefdd39",
          "body": "… (#204)\n\nDownloading a directory path in the sandbox Files panel surfaced a raw\ninternal backend error. Downloads are single-file only, so the console\nnow handles the directory case cleanly.\n\n## Changes\n- Parse the data-plane error body instead of showing raw JSON.\n- Directory path and missing-file\n[…]\n upload errors.\n- Fixed the pre-existing jsx-a11y control-label errors in the touched\nand adjacent files (lint now green).\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "console: clearer directory download error and fix a11y control labels…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-02T01:59:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59c910c6625d90eccf5edd472657fdf179f875f2",
          "body": "Adds an automated check so the API Reference nav in `docs/docs.json`\ncan't drift from the OpenAPI spec it renders — the gap that let a\ndocumented endpoint go missing from the published docs.\n\n## What it does\n`scripts/check-docs-nav.ts` fetches the spec referenced in `docs.json`\nand compares it again\n[…]\nll.\n- `/health` is exempt (intentionally not in the public nav). Uses the\nbuilt-in `Bun.YAML` parser, no new dependencies.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: check docs nav stays in sync with the OpenAPI spec (#203)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-01T19:42:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1f4d514bfa0650631d646ed6b031e125523c3ff8",
          "body": "Surfaces three endpoints that exist in the OpenAPI spec but were missing\nfrom the API reference nav, so they now render in the docs.\n\n## Changes\n- Add `POST /sandboxes/{sandbox_id}/activate` to the Sandboxes group\n- Add a new Files group with `GET /files` and `POST /files`\n\nThe spec itself is pulled live from the sandbox repo's `main`; all three\npaths are already present there, so the Mintlify build resolves them.\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: add activate and files endpoints to API reference nav (#202)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-06-01T18:52:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "118de0394936a03b2ed68e0e05176dbf4ce91cd3",
          "body": null,
          "is_bot": false,
          "headline": "Console: audit logs, expand for details (#201)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-29T19:48:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd5d83a3c0830b815db76be5989a4bcdc696226b",
          "body": "## Description\n- Docs: Template details corrected based on template specs\n- Docs & Console: Logo Updated\n\n## Testing - NA\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nNA",
          "is_bot": false,
          "headline": "docs: templates details updated, docs & console: logo updated (#196)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-29T00:12:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a33629fbc0d087df37b3ca8689046f916942eac",
          "body": "…200)\n\n## Summary\nOn supported sandbox hosts (prod + staging), the SDK now routes\n`commands.run` / `commands.run` (streaming) / `files.read|write` through\na single shared host (`sandbox.superserve.ai` or\n`staging-sandbox.superserve.ai`) with `X-Superserve-Sandbox-Id` carrying\nthe sandbox ID, instead\n[…]\nx#80](https://github.com/superserve-ai/sandbox/pull/80) — already\nmerged + deployed to staging.\n\nBumps both SDKs to 0.7.3.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "sdk: route data plane via shared host on supported domains (0.7.3) (#…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-05-28T19:45:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c7d2e4119d00c015d89c4a5d68779a914d163cc9",
          "body": "…te (#197)\n\nSwitches `Sandbox.commands.run()` to the per-sandbox data-plane `/exec`\nand `Sandbox.connect()` to `POST /activate`. On 401 the SDK\nauto-refreshes via /activate and retries once.\n\nSame shape in TS and Python (sync + async). Pairs with sandbox PR #77\nwhich shipped the server-side endpoint\n[…]\nvior is no longer available through\n`connect()` — use `Sandbox.list()` + filter or the REST API for\ninspection-only flows.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "sdk: route commands.run through data-plane /exec, connect via /activa…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-05-28T16:43:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9d0f027aefd32a921c87db3f1abe9279d636e203",
          "body": "## Description\nUpdate console design, component library and ui app\n\n## Testing\n- [x] Tested on staging\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nWIP",
          "is_bot": false,
          "headline": "console & ui: design update to match website (#198)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-28T07:54:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b790a5ec05f44566d321407ba908a4c64d1384a1",
          "body": "## Description\n- docs: integration guides in introduction page\n- docs: logo updated\n\n## Testing\n- [ ] Tested locally\n- [ ] Added/updated tests\n- [ ] All tests passing\n\n## Screenshots/Demo\nNA\n\n---------\n\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "docs: integration guides, favicon changes (#199)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-28T03:23:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed6c911dd0bf3881ae1a0d84e8c2f9b12eb7c7e6",
          "body": null,
          "is_bot": false,
          "headline": "docs: polish README and guide copy",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-05-27T22:06:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edd69a92b7f48c8a60250e864b14582232a5469a",
          "body": "## Summary\n- Adds integration guide for using Superserve sandboxes as the\nself-hosted execution environment for Anthropic's Claude Managed Agents\n- Covers template setup, orchestrator (polling pattern), in-sandbox\nrunner, and session creation with both TypeScript and Python examples\n- Adds the guide to the Agent Harnesses group in the Integration Guides\nnav tab\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "docs: add Claude Managed Agents integration guide (#195)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-05-27T19:42:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55b237250bae0df543362b910f217e445b3b31dd",
          "body": "…ox) (#194)\n\nBoth SDKs constructed `boxd-{id}.sandbox-staging.superserve.ai` but the\nVercel DNS wildcard is `*.staging-sandbox.superserve.ai` — staging\ndata-plane unreachable via SDK. Prod (`sandbox.superserve.ai`) is\nunaffected.\n\n<!-- stage-review-badge-begin -->\n\n---\n\n<a href=\"https://stagereview.\n[…]\nc=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "sdk: fix staging data-plane hostname (sandbox-staging → staging-sandb…",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-05-22T17:58:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4ae100f9bd653c935d1ac9d79c38f7ae3e53206a",
          "body": "## Description\ndocs: openclaw and hermes guides updated to use templates\ndocs: templates list, openclaw and hermes added\n\n## Testing\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nNA\n\n<!-- stage-review-badge-begin -->\n\n---\n\n<a href=\"https://stagereview.ap\n[…]\n\"https://stagereview.app/assets/gh-open-in-stage-dark.svg\">\n<img src=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->",
          "is_bot": false,
          "headline": "docs: openclaw and hermes templates (#193)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-20T16:06:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e46c2502ae36401732dee3a9dbaeda69d99a29b",
          "body": null,
          "is_bot": false,
          "headline": "Console: Terminal improvements (#192)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-16T07:58:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc4efae2d9f84624bcb98e9594a6b37e8e6d7f46",
          "body": "## Description\n- UTM Source Attribution\n- Docs: Integration Guides, product logos added\n- Docs: OpenClaw and Hermes, instruction to keep them alive\n\n## Testing - NA\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nNA\n\n\n<!-- stage-review-badge-begin -->\n\n---\n[…]\n\"https://stagereview.app/assets/gh-open-in-stage-dark.svg\">\n<img src=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->",
          "is_bot": false,
          "headline": "UTM Source Attribution & Integration Guides Updates (#191)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-15T14:21:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8c9196251744cf52e5125ab47543345807fc7917",
          "body": "## Description\n- README simplified and cleaned up\n- RELEASING file added\n- CONTRIBUTING guide for installing and managing dependencies in\nmonorepo\n- SDK examples removed, link to docs\n\n## Testing - NA\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nNA\n\n\n<!\n[…]\n\"https://stagereview.app/assets/gh-open-in-stage-dark.svg\">\n<img src=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->",
          "is_bot": false,
          "headline": "README Simplified (#190)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-14T16:48:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c1c4c042386b64942af7a4565135f7f3a42ae5f3",
          "body": "## Description\nxterm terminal issues fixes\n\n## Testing\n- [x] Tested on staging\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nWIP\n\n\n<!-- stage-review-badge-begin -->\n\n---\n\n<a href=\"https://stagereview.app/superserve-ai/superserve/pull/189\">\n  <picture>\n<source media=\"(prefers\n[…]\n\"https://stagereview.app/assets/gh-open-in-stage-dark.svg\">\n<img src=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->",
          "is_bot": false,
          "headline": "console: xterm improvements (#189)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-13T23:53:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "94b4039b168cc41da8aef132d772702b39b2238f",
          "body": "## Description\nWe currently use Biome as our linter and formatter, which has somewhat\nbroken experience, the fix command doesn't fix certain type of issues,\nformat command doesn't work for tailwind classes, plus the editor\nintegration is subpar\n\nThis PR replaces Biome with oxlint and oxfmt, which ha\n[…]\n\"https://stagereview.app/assets/gh-open-in-stage-dark.svg\">\n<img src=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->",
          "is_bot": false,
          "headline": "Biome → OXC (#187)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-12T22:53:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cc2ae6a80f8ed0e069d80c59b39f9437d11785a5",
          "body": "## Description\nIntegration guides\n- Coding Agents\n    - Claude\n    - Codex\n    - Opencode\n    - Kilocode\n- Personal agents\n    - OpenClaw\n    - Hermes\n- Agent Harnesses\n    - Claude Agent SDK\n    - OpenAI Agents SDK\n- Virtual filesystems\n    - Mesa\n\n## Testing\n\n- [x] Tested locally\n- [x] Added/updat\n[…]\nc=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->\n\n---------\n\nCo-authored-by: Pavitra Bhalla <pavitra@superserve.ai>",
          "is_bot": false,
          "headline": "Docs: Integration Guides (#184)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-12T16:04:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3ba2902d1f587e277798aabcdbd8b6a9fb9d7969",
          "body": "## Description\nConsole: multiple web terminal tabs for sandboxes\n\n## Testing\n\n- [x] Tested on Staging\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\n\n<img width=\"1470\" height=\"956\" alt=\"Screenshot 2026-05-11 at 11 55\n55 PM\"\nsrc=\"https://github.com/user-attachments/assets/54df986c-6e8d-4930-a14b-3f50b3ac4301\"\n/>\n<img width=\"1470\" height=\"956\" alt=\"Screenshot 2026-05-11 at 11 56\n56 PM\"\nsrc=\"https://github.com/user-attachments/assets/d2fde3cf-0e06-4f98-a838-58695cfbb621\"\n/>",
          "is_bot": false,
          "headline": "Console: multiple terminal tabs (#186)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-11T20:01:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42f442151344478dff62b6a82d60803b72437c13",
          "body": "## Description\n\n**Supabase moves from packages to console**\nSupabase was added as a packages since we had a playground before, since\nwe don't have anymore, it makes sense to keep it simple and only scoped\nto the console\n\n## Testing - Needs testing\n\n- [x] Tested locally\n- [x] Added/updated tests\n- [x\n[…]\n\"https://stagereview.app/assets/gh-open-in-stage-dark.svg\">\n<img src=\"https://stagereview.app/assets/gh-open-in-stage-light.svg\"\nalt=\"Open in Stage\">\n  </picture>\n</a>\n\n<!-- stage-review-badge-end -->",
          "is_bot": false,
          "headline": "supabase: from a package to project specific library (#185)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-08T23:25:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b22ced7cf1c1580a41d04d7a4b75db882242c0f3",
          "body": null,
          "is_bot": false,
          "headline": "Update image source and description in README",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-05-08T23:13:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e577510f2b3791993801c4c14162bd9a99842465",
          "body": null,
          "is_bot": false,
          "headline": "Update README",
          "author_name": "Pavitra Bhalla",
          "author_login": "pavitrabhalla",
          "committed_at": "2026-05-08T23:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9edf166a7f66970c0c5c62f955716e1504fd3ed8",
          "body": "## Description\nDocs theme updated\n\n## Testing - NA\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing",
          "is_bot": false,
          "headline": "Docs: theme updated (#183)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-07T01:14:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f762cee0ff3ed9db30439002f6eadece4ccecac9",
          "body": "## Description\nSDK Package versions updated 0.7.1\n\n## Testing - NA\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\nNA",
          "is_bot": false,
          "headline": "SDK: package version updated (#181)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-05T04:35:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "871bf21bc0e343f60df9b22dfecf61cf58550151",
          "body": "## Description\nWelcome email, book call as primary action button\n\n## Testing\n\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\n<img width=\"750\" height=\"655\" alt=\"Screenshot 2026-05-05 at 12 31 52 AM\"\nsrc=\"https://github.com/user-attachments/assets/e6ee024a-d572-4845-a0ef-8a751a33b6c8\"\n/>",
          "is_bot": false,
          "headline": "Console: Welcome email primary button changed (#180)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-04T19:03:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9173b82ad02deed9736fe6a182002364cc94f8f",
          "body": "## Description\nwelcome email copy updated\n\n## Testing\n- [x] Tested locally\n- [x] Added/updated tests\n- [x] All tests passing\n\n## Screenshots/Demo\n<!-- If applicable, add screenshots or a demo link -->",
          "is_bot": false,
          "headline": "console: welcome email copy updated (#179)",
          "author_name": "Jitendra Nirnejak",
          "author_login": "nirnejak",
          "committed_at": "2026-05-04T18:49:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3c14251bdd418fa55c695aa57d72ec3f83984bf",
          "body": "## Summary\n\nAligns the create-template dialog's resource picker with the default\nper-team caps enforced by the backend in\n[superserve-ai/sandbox#43](https://github.com/superserve-ai/sandbox/pull/43):\n\n- `VCPU_OPTIONS`: `[1, 2, 4]` → `[1, 2]`\n- `MEMORY_OPTIONS`: `[256, 512, 1024, 2048, 4096]` → `[256\n[…]\ns fit)\n\nDefault selections (`vcpu=1`, `memory=1024`, `disk=4096`) all remain\nvalid — no other dialog state changes needed.\n\n---------\n\nCo-authored-by: Amit Patil <meAmitPatil@users.noreply.github.com>",
          "is_bot": false,
          "headline": "Console: trim template resource picker to default per-team caps (#178)",
          "author_name": "Amit Patil",
          "author_login": "meAmitPatil",
          "committed_at": "2026-04-30T22:13:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 3,
      "commits_last_year": 225,
      "latest_release_at": "2026-03-01T03:17:47Z",
      "latest_release_tag": "v1.1.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 32,
      "days_since_latest_release": 148,
      "mean_days_between_releases": 2.6
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@superserve/cli",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "cli",
            "ai",
            "agents",
            "deploy",
            "sandbox",
            "cloud"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@superserve/cli",
          "is_deprecated": false,
          "latest_version": "1.1.1",
          "repository_url": "https://github.com/superserve-ai/superserve",
          "versions_count": 5,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 4,
          "monthly_downloads": 104,
          "first_published_at": "2026-02-23T22:56:58.410000Z",
          "latest_published_at": "2026-02-27T03:45:50.030000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 150
        },
        {
          "name": "@superserve/mcp",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "agents",
            "ai",
            "firecracker",
            "mcp",
            "microvm",
            "model-context-protocol",
            "sandbox",
            "superserve"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@superserve/mcp",
          "is_deprecated": false,
          "latest_version": "0.1.2",
          "repository_url": "https://github.com/superserve-ai/superserve",
          "versions_count": 3,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 4,
          "monthly_downloads": 623,
          "first_published_at": "2026-06-30T18:03:56.273000Z",
          "latest_published_at": "2026-07-10T19:01:06.330000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 17
        },
        {
          "name": "@superserve/sdk",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "firecracker",
            "microvm",
            "sandbox",
            "sdk",
            "superserve"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@superserve/sdk",
          "is_deprecated": false,
          "latest_version": "0.8.1",
          "repository_url": "https://github.com/superserve-ai/superserve",
          "versions_count": 22,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 4,
          "monthly_downloads": 12432,
          "first_published_at": "2026-02-24T17:23:08.328000Z",
          "latest_published_at": "2026-07-21T02:32:49.334000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "superserve",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "firecracker",
            "microvm",
            "sandbox",
            "sdk",
            "superserve",
            "Development Status :: 4 - Beta",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: Apache Software License",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.9",
            "Topic :: Software Development :: Libraries :: Python Modules"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/superserve/",
          "is_deprecated": false,
          "latest_version": "0.8.1",
          "repository_url": "https://github.com/superserve-ai/superserve",
          "versions_count": 21,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-01-31T01:11:31.867318Z",
          "latest_published_at": "2026-07-21T02:32:37.466386Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 50,
      "stars": 434,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2025-11-21",
            "count": 1
          },
          {
            "date": "2025-12-21",
            "count": 1
          },
          {
            "date": "2026-01-04",
            "count": 5
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-14",
            "count": 1
          },
          {
            "date": "2026-02-03",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-05-05",
            "count": 1
          },
          {
            "date": "2026-05-13",
            "count": 16
          },
          {
            "date": "2026-05-14",
            "count": 6
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 2
          },
          {
            "date": "2026-05-18",
            "count": 2
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-11",
            "count": 1
          },
          {
            "date": "2026-06-15",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          },
          {
            "date": "2026-07-22",
            "count": 1
          },
          {
            "date": "2026-07-24",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 50,
        "total_forks": 50
      },
      "star_history": null,
      "open_issues_and_prs": 11
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "cookbook",
        "examples",
        "recipes"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "apps/console/tsconfig.json",
        "apps/mcp/tsconfig.json",
        "apps/ui-docs/tsconfig.json",
        "examples/loops/tsconfig.json",
        "packages/cli/tsconfig.json",
        "packages/mcp/tsconfig.json",
        "packages/python-sdk/src/superserve/py.typed",
        "packages/sdk/tsconfig.json",
        "packages/ui/tsconfig.json",
        "tests/sdk-e2e-ts/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 36990,
      "source_files_sampled": 573,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 5451
    },
    "dependencies": {
      "manifests": [
        "package.json",
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 12,
        "malicious_count": 0,
        "assessed_package": "pypi:superserve@0.8.1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "@react-email/components",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.11"
        },
        {
          "name": "@supabase/ssr",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.10.0"
        },
        {
          "name": "@supabase/supabase-js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.101.1"
        },
        {
          "name": "@tailwindcss/postcss",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.2.2"
        },
        {
          "name": "@types/node",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^25.5.2"
        },
        {
          "name": "@vitejs/plugin-react",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.1.4"
        },
        {
          "name": "cmdk",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "happy-dom",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^20.8.9"
        },
        {
          "name": "next",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.2.2"
        },
        {
          "name": "postcss",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.5.8"
        },
        {
          "name": "posthog-js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.364.7"
        },
        {
          "name": "posthog-node",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.28.11"
        },
        {
          "name": "resend",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.10.0"
        },
        {
          "name": "tailwindcss",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.2.2"
        },
        {
          "name": "vitest",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.2"
        },
        {
          "name": "@phosphor-icons/react",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.7"
        },
        {
          "name": "@react-email/components",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.7"
        },
        {
          "name": "@supabase/ssr",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.10.0"
        },
        {
          "name": "@supabase/supabase-js",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.98.0"
        },
        {
          "name": "@superserve/ui",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@tanstack/react-query",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.96.2"
        },
        {
          "name": "@xterm/addon-clipboard",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.0"
        },
        {
          "name": "@xterm/addon-fit",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.11.0"
        },
        {
          "name": "@xterm/addon-image",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.9.0"
        },
        {
          "name": "@xterm/addon-ligatures",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.10.0"
        },
        {
          "name": "@xterm/addon-search",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.16.0"
        },
        {
          "name": "@xterm/addon-serialize",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.0"
        },
        {
          "name": "@xterm/addon-unicode11",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.9.0"
        },
        {
          "name": "@xterm/addon-web-links",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.12.0"
        },
        {
          "name": "@xterm/addon-webgl",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.19.0"
        },
        {
          "name": "@xterm/xterm",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.0.0"
        },
        {
          "name": "cmdk",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "motion",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.0.0"
        },
        {
          "name": "next",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.1.6"
        },
        {
          "name": "posthog-js",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.353.0"
        },
        {
          "name": "posthog-node",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.25.0"
        },
        {
          "name": "react",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.4"
        },
        {
          "name": "react-dom",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.4"
        },
        {
          "name": "resend",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.9.2"
        },
        {
          "name": "zod",
          "manifest": "apps/console/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.25.67"
        },
        {
          "name": "@superserve/mcp",
          "manifest": "apps/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "next",
          "manifest": "apps/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.1.6"
        },
        {
          "name": "react",
          "manifest": "apps/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.4"
        },
        {
          "name": "react-dom",
          "manifest": "apps/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.2.4"
        },
        {
          "name": "@phosphor-icons/react",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.7"
        },
        {
          "name": "@superserve/ui",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@tailwindcss/vite",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.2.1"
        },
        {
          "name": "react",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.0.0"
        },
        {
          "name": "react-dom",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^19.0.0"
        },
        {
          "name": "react-router",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7"
        },
        {
          "name": "shiki",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3"
        },
        {
          "name": "tailwindcss",
          "manifest": "apps/ui-docs/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.2.1"
        },
        {
          "name": "@superserve/sdk",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "boxen",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.0.1"
        },
        {
          "name": "cli-table3",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.6.5"
        },
        {
          "name": "commander",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^14.0.3"
        },
        {
          "name": "js-yaml",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.0"
        },
        {
          "name": "picocolors",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "posthog-node",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.25.0"
        },
        {
          "name": "tar-stream",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.1.7"
        },
        {
          "name": "terminal-link",
          "manifest": "packages/cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.0.0"
        },
        {
          "name": "@modelcontextprotocol/sdk",
          "manifest": "packages/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.29.0"
        },
        {
          "name": "@superserve/sdk",
          "manifest": "packages/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "zod",
          "manifest": "packages/mcp/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.25.0"
        },
        {
          "name": "httpx",
          "manifest": "packages/python-sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.24.0"
        },
        {
          "name": "pydantic",
          "manifest": "packages/python-sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "typing-extensions",
          "manifest": "packages/python-sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.0.0"
        },
        {
          "name": "websockets",
          "manifest": "packages/python-sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=12.0"
        },
        {
          "name": "@base-ui/react",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.0"
        },
        {
          "name": "@phosphor-icons/react",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.7"
        },
        {
          "name": "@superserve/tailwind-config",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "clsx",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.1"
        },
        {
          "name": "motion",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.0.0"
        },
        {
          "name": "shiki",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.0"
        },
        {
          "name": "tailwind-merge",
          "manifest": "packages/ui/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.4.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": 9,
        "merged_prs": 215,
        "open_issues": 2,
        "closed_ratio": 0.923,
        "closed_issues": 24,
        "closed_unmerged_prs": 45
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "meAmitPatil",
          "commits": 73,
          "avatar_url": "https://avatars.githubusercontent.com/u/66266598?v=4"
        },
        {
          "type": "User",
          "login": "nirnejak",
          "commits": 54,
          "avatar_url": "https://avatars.githubusercontent.com/u/14347543?v=4"
        },
        {
          "type": "User",
          "login": "pavitrabhalla",
          "commits": 34,
          "avatar_url": "https://avatars.githubusercontent.com/u/4392764?v=4"
        },
        {
          "type": "User",
          "login": "mohamedsobhi777",
          "commits": 15,
          "avatar_url": "https://avatars.githubusercontent.com/u/33491613?v=4"
        },
        {
          "type": "User",
          "login": "awille-ai",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/293730395?v=4"
        },
        {
          "type": "User",
          "login": "rushikeshadhav",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/74168885?v=4"
        },
        {
          "type": "User",
          "login": "richardliaw",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/4529381?v=4"
        }
      ],
      "contributors_sampled": 7,
      "top_contributor_share": 0.392
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "cli-publish.yml",
        "loop-pr-loop.yml",
        "loops-publish.yml",
        "mcp-publish.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "uv.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 7,
            "reason": "Found 23/30 approved changesets -- score normalized to 7",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "145 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "263c83bd4d0892d3107371b245742a73dd3434db",
        "ran_at": "2026-07-27T21:40:38Z",
        "aggregate_score": 4.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-24T00:38:31Z",
      "oldest_open_prs": [
        {
          "number": 233,
          "created_at": "2026-06-22T04:57:09Z",
          "last_comment_at": "2026-06-22T04:57:14Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 245,
          "created_at": "2026-06-26T18:14:31Z",
          "last_comment_at": "2026-06-26T18:14:36Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 271,
          "created_at": "2026-07-08T18:07:34Z",
          "last_comment_at": "2026-07-08T18:07:40Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 279,
          "created_at": "2026-07-13T23:05:35Z",
          "last_comment_at": "2026-07-13T23:05:40Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 284,
          "created_at": "2026-07-15T20:26:15Z",
          "last_comment_at": "2026-07-15T20:26:21Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 286,
          "created_at": "2026-07-17T14:20:09Z",
          "last_comment_at": "2026-07-17T14:20:16Z",
          "last_comment_author": "vercel"
        },
        {
          "number": 287,
          "created_at": "2026-07-17T15:31:16Z",
          "last_comment_at": "2026-07-17T18:39:38Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 293,
          "created_at": "2026-07-21T15:03:08Z",
          "last_comment_at": "2026-07-22T18:48:28Z",
          "last_comment_author": "pavitrabhalla"
        },
        {
          "number": 295,
          "created_at": "2026-07-24T22:08:49Z",
          "last_comment_at": "2026-07-24T22:08:55Z",
          "last_comment_author": "vercel"
        }
      ],
      "last_merged_pr_at": "2026-07-24T00:35:58Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 289,
          "created_at": "2026-07-18T15:29:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 290,
          "created_at": "2026-07-18T15:32:52Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/superserve-ai/superserve",
    "host": "github.com",
    "name": "superserve",
    "owner": "superserve-ai"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 74,
      "inputs": {
        "security": 54,
        "vitality": 84,
        "community": 67,
        "governance": 70,
        "engineering": 88
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 84,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "commits_last_year": 225,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 32
            },
            "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": "32/52 weeks with commits",
                "points": 22.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 32
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "225 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 225
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "releases_count": 3,
              "latest_release_tag": "v1.1.0",
              "releases_from_tags": false,
              "days_since_latest_release": 148,
              "mean_days_between_releases": 2.6
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "3 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 148 days ago",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 148
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.6 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.6
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 3,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 3 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 67,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "forks": 50,
              "stars": 434,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "434 stars",
                "points": 42.8,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 434
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "50 forks",
                "points": 14.1,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 50
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 69,
            "inputs": {
              "packages": [
                "@superserve/cli",
                "@superserve/mcp",
                "@superserve/sdk",
                "superserve"
              ],
              "dependents": null,
              "ecosystems": "npm, pypi",
              "total_downloads": null,
              "monthly_downloads": 13159
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "13,159 downloads/month across npm, pypi",
                "points": 54.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 13159,
                      "ecosystems": "npm, pypi"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 70,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 7,
              "top_contributor_share": 0.392
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 39% of commits",
                "points": 13.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 39
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "7 contributors",
                "points": 9.5,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "merged_prs": 215,
              "open_issues": 2,
              "closed_issues": 24,
              "issue_closed_ratio": 0.923,
              "closed_unmerged_prs": 45
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "92% of issues closed",
                "points": 43.2,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 92
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "215/260 decided PRs merged",
                "points": 31.6,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 215,
                      "decided": 260
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 23/30 approved changesets -- score normalized to 7",
                "points": 10.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "followers": 18,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "superserve-ai",
              "public_repos": 13,
              "account_age_days": 353
            },
            "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": "18 followers of superserve-ai",
                "points": 9.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 18,
                      "login": "superserve-ai"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "13 public repos, account ~0 yr old",
                "points": 10.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 13
                    }
                  },
                  {
                    "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": [
                "@superserve/cli",
                "@superserve/mcp",
                "@superserve/sdk",
                "superserve"
              ],
              "ecosystems": "npm, pypi",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "4 package(s) on npm, pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 4,
                      "ecosystems": "npm, pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "22 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 22
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 88,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "6 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "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": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": "https://superserve.ai?utm_source=github&utm_medium=referral&utm_campaign=repo_bio",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://superserve.ai?utm_source=github&utm_medium=referral&utm_campaign=repo_bio",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 54,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 43,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.3
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 23/30 approved changesets -- score normalized to 7",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "145 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:superserve@0.8.1 runtime dependency closure — what installing the published package pulls in — 12 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:superserve@0.8.1",
                  "assessed": 12
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 12,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 12,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 75,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.97,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 5451
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "97 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 97,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "uv.lock"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "apps/console/tsconfig.json",
                "apps/mcp/tsconfig.json",
                "apps/ui-docs/tsconfig.json",
                "examples/loops/tsconfig.json",
                "packages/cli/tsconfig.json",
                "packages/mcp/tsconfig.json",
                "packages/python-sdk/src/superserve/py.typed",
                "packages/sdk/tsconfig.json",
                "packages/ui/tsconfig.json",
                "tests/sdk-e2e-ts/tsconfig.json"
              ],
              "agent_commit_share": 0.09,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "apps/console/tsconfig.json, apps/mcp/tsconfig.json, apps/ui-docs/tsconfig.json, examples/loops/tsconfig.json, packages/cli/tsconfig.json, packages/mcp/tsconfig.json, packages/python-sdk/src/superserve/py.typed, packages/sdk/tsconfig.json, packages/ui/tsconfig.json, tests/sdk-e2e-ts/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "apps/console/tsconfig.json, apps/mcp/tsconfig.json, apps/ui-docs/tsconfig.json, examples/loops/tsconfig.json, packages/cli/tsconfig.json, packages/mcp/tsconfig.json, packages/python-sdk/src/superserve/py.typed, packages/sdk/tsconfig.json, packages/ui/tsconfig.json, tests/sdk-e2e-ts/tsconfig.json"
                    }
                  }
                ],
                "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": "9 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 9,
                      "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": "TypeScript",
              "largest_source_bytes": 36990,
              "source_files_sampled": 573,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/573 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 573,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "cookbook",
                "examples",
                "recipes"
              ],
              "has_mcp_signal": true,
              "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": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "cookbook, examples, recipes",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "cookbook, examples, recipes"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T21:40:59.661730Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/superserve-ai/superserve.svg",
  "full_name": "superserve-ai/superserve",
  "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 Statistikennpm, PyPI.