Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-25 11:01 UTC

zhangsen540445123 / claw-manager

TypeScript · JavaKeine Lizenz erkannt★ 0 Sterne⑂ 0 Forksseit Juni 2026Auf GitHub ansehen ↗

zhangsen540445123/claw-manager erreicht einen Gesundheitsindex von 41 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei AI Readiness (74/100) ab, am schwächsten bei Community & Adoption (26/100). Zuletzt vor 3 Tagen aktualisiert.

41
gesamt / 100
Gefährdet

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.

41
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

zhangsen540445123Persönliches Konto
0 Follower63 öffentliche Reposseit Juni 2019

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

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npm@claw-manager/miniapp-bridge-plugin2026.7.201.0139vor 7 Tagen
npm@claw-manager/workspace-file-plugin2026.7.23082vor 6 Tagen
npm@claw-manager/openclaw-weixin2026.6.307806vor 5 Tagen
npm@claw-manager/openviking-openclaw-plugin2026.6.381.94512vor 5 Tagenopenclawopenvikingplugincontext-enginememoryremote-memoryragsemantic-retrievalcontext-databaselong-term-memoryauto-recallauto-capture
npm@claw-manager/openclaw-api-channel2026.6.545.16228vor 5 Tagen

Metriken nach Kategorie

Vitalität

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

35Gefährdet · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 3 Tagen
4.2/36Commit-Rhythmus — 6/52 Wochen mit Commits
16.5/18Commit-Volumen — 68 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Verwendete Eingangsdaten
commits_last_year68
human_commit_share1
days_since_last_push3
active_weeks_last_year6
Wie die Bewertung erfolgt
0/27Liefert Releases aus — keine Releases veröffentlicht
0/36Release-Aktualität — keine Releases
0/27Release-Rhythmus — keine Releases
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

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

26Kritisch · 18 % des Gesamtindex
Wie die Bewertung erfolgt
0/60Stars — 0 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
0/22.5Lizenz — keine Lizenzdatei erkannt
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licensenein
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
52.9/80Downloads pro Monat — 9.208 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@claw-manager/miniapp-bridge-plugin, @claw-manager/workspace-file-plugin, @claw-manager/openclaw-weixin, @claw-manager/openviking-openclaw-plugin, @claw-manager/openclaw-api-channel
dependents
ecosystemsnpm
total_downloads
monthly_downloads9.208
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?

45Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
0/38.3PR-Annahme — keine entschiedenen Pull Requests oder keine Daten
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote, PR-Annahme. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
0/25Reichweite des Inhabers — 0 Follower von zhangsen540445123
25/25Kontohistorie — 63 öffentliche Repos, Kontoalter ca. 7 Jahre
Verwendete Eingangsdaten
followers0
owner_typeUser
is_verified
owner_loginzhangsen540445123
public_repos63
account_age_days2.604
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 5 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 5 Tagen
20/20Versionshistorie — 28 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@claw-manager/miniapp-bridge-plugin, @claw-manager/workspace-file-plugin, @claw-manager/openclaw-weixin, @claw-manager/openviking-openclaw-plugin, @claw-manager/openclaw-api-channel
ecosystemsnpm
any_deprecatednein
min_days_since_publish5

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

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

Sicherheit

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

39Gefährdet · 16 % des Gesamtindex

Sicherheitslage

24Kritisch
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — keine Daten
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Lizenz — license file not detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
5/5Packaging — packaging workflow detected
0.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 65 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate2,4
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, signed_releases. 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_packages1
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 npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 1 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.

74Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md
0/15Maschinenlesbare Doku (llms.txt)
39.2/40Lesbare Commit-Historie — 50 von 68 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,735
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes4.414
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — backend/pom.xml (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — frontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 68
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json
has_dockerfileja
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configsfrontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json
agent_commit_share0
toolchain_manifestsbackend/pom.xml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
54.8/55Handhabbare Dateigrößen — 2/481 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes105.528
source_files_sampled481
oversized_source_files2

Eckdaten

0GitHub-Sterne
-Mitwirkende
68Commits, letzte 12 Monate
3Tage seit letztem Push
0Releases
-Bus-Faktor
0offene Issues
Maven, npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Contributor list unavailable
  • Could not fetch maven package 'com.clawbotforall:claw-manager-api' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

OpenSSF Scorecard 2.4 / 10
2.4Gesamtwert

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

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
k. A.CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow detected
1Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 1
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities65 existing vulnerabilities detected
Direkte Abhängigkeiten 30
RegistryPaketVersionsvorgabeManifest
Mavenorg.springframework.boot:spring-boot-starter-actuatorbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-data-redisbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-securitybackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-validationbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-webbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-websocketbackend/pom.xml
Mavenorg.mybatis.spring.boot:mybatis-spring-boot-starter${mybatis-spring-boot.version}backend/pom.xml
Mavencom.mysql:mysql-connector-jbackend/pom.xml
Mavenorg.flywaydb:flyway-corebackend/pom.xml
Mavenorg.flywaydb:flyway-mysqlbackend/pom.xml
Mavencom.github.docker-java:docker-java${docker-java.version}backend/pom.xml
Mavencom.github.docker-java:docker-java-core${docker-java.version}backend/pom.xml
Mavencom.github.docker-java:docker-java-transport-httpclient5${docker-java.version}backend/pom.xml
Mavenorg.springdoc:springdoc-openapi-starter-webmvc-ui${springdoc.version}backend/pom.xml
Mavenorg.bouncycastle:bcprov-jdk18on${bouncycastle.version}backend/pom.xml
Mavenorg.eclipse.jgit:org.eclipse.jgit${jgit.version}backend/pom.xml
npm@stomp/stompjs^7.1.1frontend/package.json
npm@tanstack/vue-query^5.80.7frontend/package.json
npmelement-plus^2.9.11frontend/package.json
npmlucide-vue-next^0.468.0frontend/package.json
npmpinia^2.3.0frontend/package.json
npmqrcode^1.5.4frontend/package.json
npmvue^3.5.13frontend/package.json
npmvue-router^4.5.0frontend/package.json
npm@sinclair/typebox^0.34.33plugins/miniapp-bridge-plugin/package.json
npmqrcode-terminal0.12.0plugins/openclaw-weixin-plugin/package.json
npmzod^4.3.6plugins/openclaw-weixin-plugin/package.json
npm@sinclair/typebox0.34.48plugins/openviking-openclaw-plugin/package.json
npmfflate^0.8.2plugins/openviking-openclaw-plugin/package.json
npm@sinclair/typebox^0.34.33plugins/workspace-file-plugin/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 npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 zieht 1 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": 3387,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "CSS": 19977,
        "Vue": 194601,
        "HTML": 370,
        "Java": 1266490,
        "Shell": 39303,
        "Python": 285330,
        "Batchfile": 9070,
        "Dockerfile": 1741,
        "JavaScript": 133809,
        "PowerShell": 18053,
        "TypeScript": 1671932
      },
      "pushed_at": "2026-07-21T15:32:25Z",
      "created_at": "2026-06-18T17:01:30Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T15:33:31Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "Java"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "zhangsen540445123",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/51502818?v=4",
      "created_at": "2019-06-08T05:59:59Z",
      "is_verified": null,
      "public_repos": 63,
      "account_age_days": 2604
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "7e3ab2709cfd9ab15a0f0330f459a0f65496dabf",
          "body": null,
          "is_bot": false,
          "headline": "fix: share synced openclaw skills across agents",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-21T15:29:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c111b9e680d69114c4bb04beb584196af47ada6",
          "body": "- 使用模块级 Runtime 管理器获取实时 OpenClaw 配置\n- 对齐微信插件的 config-runtime 实现\n- 移除 globalThis Symbol 配置共享方案\n- 保留严格的 Agent 与 API binding 校验\n- 增加动态配置路由回归测试\n- 升级 API Channel 至 2026.6.54",
          "is_bot": false,
          "headline": "fix: 修复 API Channel 动态绑定后的路由配置读取",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T13:49:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48a3b6c60ade95bcec56fd2d31386c1dff69dd99",
          "body": "- 使用模块级配置 Runtime 管理器读取实时 OpenClaw 配置\n- 对齐微信插件的 config-runtime setter/getter 实现\n- 移除不可靠的 globalThis Symbol 共享方式\n- 保留 API binding 严格校验和默认 Agent 禁用策略\n- 增加动态绑定后路由回归测试\n- 同步插件清单版本并升级至 2026.6.54",
          "is_bot": false,
          "headline": "fix: 修复 API Channel 动态绑定后仍误报未就绪",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T13:35:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33c2c25498f2b93160af674370e9ec421d171802",
          "body": "- 使用 Gateway Runtime 实时配置校验 API Agent binding\n- 避免队列 Monitor 使用启动时配置快照\n- 保留 API_BINDING_NOT_READY 严格校验\n- 增加动态配置更新后的路由回归测试\n- 升级 API Channel 至 2026.6.53",
          "is_bot": false,
          "headline": "fix: 修复 API Channel 动态绑定后聊天路由失败",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T13:23:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5ee734581298f15275278d85eb4b01f5f9ed1c6",
          "body": "- 扫码后同步创建用户 Agent、微信 Binding 和 API Binding\n- 增加 Agent 初始化失败状态及手动重试能力\n- 禁止聊天阶段补写配置及回退到默认 Agent\n- 通过 Gateway RPC 持久化并校验 Agent 与 Binding\n- 为 API 和微信 Turn 显式传播 OpenViking 用户身份\n- 使用 channel 与 requestId/runId 严格隔离并发 Turn\n- 禁止缺少 Turn 上下文时猜测渠道或降级读取身份\n- 避免显式 memory_store 与 afterTurn 重复保存\n- 完善 OpenViking 日志及身份信息脱敏\n- 将小程序 AI 输入上限调整为 10000 字符\n- 升级 API Channel、微信和 OpenViking 插件版本",
          "is_bot": false,
          "headline": "feat: 完善统一用户 Agent 与 OpenViking 严格身份链路",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T12:27:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fecb410f8a22221611e93b6a9e9fd07d3dc03a4",
          "body": "- 新增持久化用户 Agent 与 OpenViking 身份映射\n- 支持小程序和微信共享 Agent、工作区与记忆\n- 扫码完成后自动创建用户 Agent\n- 升级 API Channel 和微信插件身份路由\n- 修复微信消息重试、身份解析超时和异步任务饱和问题\n- 合并 V1-V6 为全新环境数据库基线",
          "is_bot": false,
          "headline": "feat: 实现跨渠道统一用户 Agent 与全新数据库基线",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T05:35:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d04fa55641d0b78224a2e81c8a3853a75db5127",
          "body": "模型未提供 expectedSha256 时可能传入空字符串,工作区文件插件应将其视为未启用乐观锁,避免首次写入被错误拒绝。",
          "is_bot": false,
          "headline": "fix: 兼容工作区文件工具空哈希参数",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T19:17:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "057775bb67897e41d0eb399e406620d816fabe1b",
          "body": "新增微信用户动态Agent和独立工作区,允许通过workspace_file安全管理工作区文件;接入后台插件管理的检测、安装、升级、重装、卸载及批量操作,并增加工作区预设配置。",
          "is_bot": false,
          "headline": "feat: 支持微信用户独立Agent与开放工作区文件插件",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T18:13:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49bcc425ec37c5fbabdb97175962a2c013aa45b0",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增 OpenClaw 工作区文件工具插件",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T17:25:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a844e4c1beb417c545af7089c6252bdb155b6f5e",
          "body": null,
          "is_bot": false,
          "headline": "feat: 支持微信用户动态 Agent 与独立工作区",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T17:25:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30b152d7dc94bb206eb73a0b545419b6d2b33c5e",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复API链路超时、Artifact跳转与生图诊断",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T12:16:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad511b595c51388edf15dfef8d0a9676300cad41",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复 SSE 控制器构造器注入导致的 CI 启动失败",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T05:16:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17ce63b94e44eda05e5515d7927d2edb044fef4c",
          "body": null,
          "is_bot": false,
          "headline": "修复api",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T05:04:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b5f0264b23cc088cd8e9a43eb7386c0cd22d9e3",
          "body": "…范feat: 调整管理后台导航分组与预设配置命名",
          "is_bot": false,
          "headline": "fix: 修复链路状态诊断与图片 Artifact 安全发布fix: 统一多模态 Skill 的 generatedImageId 发布规…",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-17T17:46:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8e839940e1b37e22da568400ffae734ee79441b",
          "body": null,
          "is_bot": false,
          "headline": "fix package",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T23:46:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be322e167b305799831c169a37dd80d9103023e4",
          "body": null,
          "is_bot": false,
          "headline": "ui",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T23:31:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e570fc3f610f7c49c5f26457f86acb5a01b5f1c3",
          "body": null,
          "is_bot": false,
          "headline": "修复UI",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T14:52:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "101c8482c08d30afaa520f2a5d05aa99b9620b51",
          "body": "- 新增统一 cmTraceId 链路事件记录与后台追踪页面\n- 接入微信、API Channel、Miniapp Bridge 工具生命周期追踪\n- 增加图片生成、Artifact 上传和微信媒体发送阶段诊断\n- 补充 Time Manager Open API 鉴权、图片和 HTML Trace 日志\n- 发布新版微信、API Channel 与 Miniapp Bridge 插件",
          "is_bot": false,
          "headline": "Media failedfeat: 新增微信生图全链路追踪与自动诊断",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T13:47:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24f47d824f33e6628f625e794a6d27b00481e719",
          "body": null,
          "is_bot": false,
          "headline": "fix 生图",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-15T16:12:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28f2a89fb2a99b451c5e14d8339b85e221635e6b",
          "body": null,
          "is_bot": false,
          "headline": "feat: 实现小程序多模态 Artifact 发布与图片生成",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-15T15:27:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db12328ded1e7bdfb6ba450a6e7ddf833df2905",
          "body": null,
          "is_bot": false,
          "headline": "fix: 对齐小程序 Bridge 插件版本管理与升级交互",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T15:31:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6db88570ccea171d435e8cec96f3c7bc02e992b1",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复目标创建工具Schema嵌套导致模型无法调用的问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T14:46:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd513f76581cc7b28b207911cac26ae138572e8b",
          "body": null,
          "is_bot": false,
          "headline": "feat: 将小程序 Bridge 改造为五域强类型工具并完善目标语义推断",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T11:31:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3062465b853222d1517a3ca265ad79a2170f4d89",
          "body": null,
          "is_bot": false,
          "headline": "更新测试域名",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T07:50:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18ed9db62670d83283d6a55d4ed276ba242ef2fa",
          "body": null,
          "is_bot": false,
          "headline": "更新.env.example",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T02:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "768017499be51250de6b6cb43b54bf6a61bfc7e3",
          "body": null,
          "is_bot": false,
          "headline": "修复修复yaml",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T02:35:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63064403c5d11c02f604098cae13d792cb5ecd2f",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增小程序Bridge插件及用户身份代理调用",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T02:28:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc53fccbf0078b387c989cac1922d69b0082985f",
          "body": null,
          "is_bot": false,
          "headline": "修复CI",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T17:40:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "482094d57b1cd4abed4240299a3fa34b033a1b14",
          "body": null,
          "is_bot": false,
          "headline": "脚本修复",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T17:30:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "353d3d0baaa6b08e0f79303974d1108cd5aa1a0c",
          "body": "- 新增 Skill 仓库、Skill 定义和实例同步记录表\n- 支持通过 JGit 拉取 GitHub 仓库及 HTTPS Token 私库\n- 扫描包含 SKILL.md 的目录并支持后台修改 Skill 名称\n- 支持勾选多个 Skill 同步到多个 OpenClaw 实例\n- 同名 Skill 同步时覆盖目标 workspace/skills 目录\n- 新增 Skill 管理后台页面和相关 API/store/types\n- 补充扫描、拉取、同步和名称保留相关测试",
          "is_bot": false,
          "headline": "新增后台 Skill 管理与实例同步能力",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T17:15:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d4b41c05fe866f4159f4b661828d62796d0527d",
          "body": null,
          "is_bot": false,
          "headline": "前端改造",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T10:46:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "550c66c94dc78b5c66323659dcef09884298c261",
          "body": "- 微信扫码链接新增 scanned、initializing 中间状态,便于小程序轮询展示进度\n- 保持小程序 user key 生成时机不变,仅 connected 后允许生成\n- 后台微信绑定状态展示补充新状态文案\n- 更新小程序接入与排障文档,明确 connected 后再生成 key\n- 增加测试覆盖扫码中间状态与 initializing 阶段禁止生成 key",
          "is_bot": false,
          "headline": "优化微信扫码绑定中间状态展示",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T09:54:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa9895460551e19b1324b320ed094fff63b2b3fa",
          "body": "- 将后台 API 接入调整为小程序 AK/SK 管理\n- 移除旧全局 API key 和旧纯 API openid 路由能力\n- 支持小程序 openid 扫码绑定微信后复用 wx_<hash> OpenViking 记忆身份\n- 为外部小程序接口和聊天 SSE 增加 X-CM-Request-Id 与安全联调日志\n- 用户中心补充小程序/API 绑定字段,并支持手机号为空和后补编辑\n- 更新小程序接入文档,补充 Java 21 + Spring Boot + fastjson2 接入 Demo",
          "is_bot": false,
          "headline": "feat: 完成小程序统一身份接入与共享记忆联调",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T14:41:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63ef191da3d406da2bf791a04cc1fa7c590f4f25",
          "body": "- 新增小程序接入文档,说明 openid、微信扫码绑定、cm_user key 与 API 聊天流程\n- 补充 HMAC 鉴权规则、接口定义、二次扫码和双向记忆验证流程\n- 增加 miniapp 相关数据库表和字段说明\n- 更新 README、架构、OpenViking、插件和排障文档中的当前事实\n- 明确 API Channel 使用后端传入的 wx_<hash>,不再自行派生 API 身份",
          "is_bot": false,
          "headline": "docs: 补充小程序接入与共享记忆说明",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T10:53:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4e05288c920a2b5e882b02e2570a1fe35ab0a4c",
          "body": "- 移除 OpenViking 插件从 raw senderId/requesterSenderId 派生 wx_/api_ 身份的逻辑\n- 改为只接受显式 openVikingUserId 或 sender-handoff 映射作为用户身份来源\n- 收紧工具路径身份解析,避免 raw sender 被用于租户 header 或 role_id\n- 调整 sender-handoff 写入,要求显式 openVikingUserId 和 senderHash\n- 修复“请记住”等短句记忆意图强制 commit 时仍保留最近消息导致不归档的问题\n- 记忆意图强制 commit 使用 keepRecentCount=0,确保触发 OpenViking 异步抽取\n- 更新相关单测,覆盖身份不派生、handoff 显式映射、短句记忆抽取等行为\n- 发布 @claw-manager/openviking-openclaw-plugin@2026.6.37",
          "is_bot": false,
          "headline": "修复 OpenViking 身份映射与短句记忆抽取",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T10:24:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f22597dea97cb8257e4ab59f05413bc3c631840",
          "body": "- 为 API Channel 生成带 queueMonitor 标记的 channel 配置,确保 OpenClaw Gateway 启动时识别并加载 claw-manager-api\n- API 插件注册流程对齐微信插件,只注册 channel,不在 register 阶段自动启动队列 monitor\n- 避免 Gateway channel 生命周期与插件 register 双路径重复启动 monitor\n- 增加后端配置生成测试和 API 插件入口测试\n- 发布 @claw-manager/openclaw-api-channel@2026.6.45",
          "is_bot": false,
          "headline": "修复 API Channel Gateway 启动与队列监控注册",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T06:57:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8710c59b9134987423114c8a7ef07c3035c1e92",
          "body": null,
          "is_bot": false,
          "headline": "模型预设需指定maxTokens和contentWindow",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-03T14:27:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea242ebd4d3f1c542e38e448399fa5e0f9816eb4",
          "body": "- 为 API 用户首次路由增加数据库事务锁,避免并发绑定时集中落到同一实例\n- 调整 API SSE 队列等待逻辑,支持首包、空闲和总时长分级超时\n- 优化 API Channel 插件的 assistant delta 归属判断,避免并发串流\n- 移除 deliver 尾块流式兜底,避免固定字符响应重复输出\n- 串行化动态 agent 绑定配置写入,防止并发创建 agent 时配置覆盖\n- 补充 API 队列、路由分配和插件并发流式相关测试\n- 发布 @claw-manager/openclaw-api-channel@2026.6.44",
          "is_bot": false,
          "headline": "修复 API 通道并发路由与流式输出稳定性",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-30T17:03:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a397044aaf16bb53f82e86a5aef80f70a0eed19f",
          "body": null,
          "is_bot": false,
          "headline": "修复并发分配api问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-28T09:12:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93aa0414e2fc9acd4e7d145aefddf381a96b08e7",
          "body": null,
          "is_bot": false,
          "headline": "api渠道派生agent,流式响应",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-28T08:24:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6235431c9c0bd903165aa27eb76943028f1032b",
          "body": null,
          "is_bot": false,
          "headline": "召回超时时间修改为30s",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-27T18:14:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "288bba12aea15aba8b3383828448595b3644a6d5",
          "body": "- 新增外部 API 接入配置、openid 路由绑定和 API Channel 插件管理\n- 新增 @claw-manager/openclaw-api-channel 插件,支持按 openid 派发到 OpenClaw\n- 修复 OpenViking afterTurn 消息捕获,支持从 sessionFile 兜底写入本轮消息\n- 增加长期记忆意图强制异步 commit,短句“请记住/我叫/我喜欢”等也会触发抽取\n- 修复 API senderId=api:<hash> 被误派生为 wx_<hash> 的问题,正确映射为 api_<hash>\n- 更新 OpenViking 插件默认版\n[…]\n版本到 2026.6.32\n- 补充 API 用户隔离、afterTurn 写入、插件版本和路由相关测试\n\n验证:\n- OpenViking 插件目标测试 91 个通过\n- API Channel 插件测试 8 个通过\n- 后端 mvn test 145 个通过\n- 前端 npm run build 通过\n- 本地 API 端到端验证 api_f9db... 已生成 profile.md 并可召回",
          "is_bot": false,
          "headline": "feat: 新增 API 通道并修复 OpenViking API 用户记忆写入",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-27T17:49:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "58480638b0cd3c467d9c8d294c51efa4aa295702",
          "body": "- 将自动召回前置健康检查改为可配置超时、健康缓存和短暂失败降级\n- 新增召回健康检查配置项与单元测试\n- 后台 OpenViking 插件版本查询支持强制刷新 npm registry\n- 更新 OpenViking 插件默认版本至 2026.6.34\n- 发布 @claw-manager/openviking-openclaw-plugin@2026.6.34",
          "is_bot": false,
          "headline": "优化 OpenViking 自动召回健康检查与后台插件升级",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-26T16:57:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4c4b4585cd681b6a33d45d6eee17df48bbf51e9",
          "body": "- 精简根目录 README 为项目入口和文档导航\n- 新增 docs 文档中心及架构、部署、开发、OpenViking、插件、CI/CD、排障专题文档\n- 将历史迁移和插件二开记录归档到 docs/history\n- 更新 AGENTS 中的历史文档引用",
          "is_bot": false,
          "headline": "重整项目文档体系",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-25T17:11:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fc3d2a8a85632c07c7ab66b2cc48981ce5c74a0",
          "body": "- 在身份类问题中优先读取当前用户 profile.md,避免低语义分数导致“我是谁”无法召回\n- 调整新 OV session 不存在时的 assemble 流程,确保仍可注入用户级记忆\n- 增加召回候选被阈值过滤的诊断日志\n- 将默认 OpenViking 插件版本升级到 2026.6.30\n- 补充 context engine assemble 相关单元测试",
          "is_bot": false,
          "headline": "修复 OpenViking 新会话身份记忆召回",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-25T16:16:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1c8c6c16ee550f487974337975a7ee6d23e82de",
          "body": "- 将后台 OpenViking 导航调整为 OpenViking预设,并优化菜单顺序\n- 新增 OpenViking 身份盐值配置,替代 identity secret 展示文案\n- 默认开启 Trusted Mode,并在修改盐值时提示记忆映射风险\n- 用户中心展示微信用户对应的 OpenViking 用户ID\n- 增加微信插件与 OpenViking 插件同实例串行操作保护\n- 调整 GitHub Actions 镜像发布触发规则,按 api/web/runner 变更分别构建\n- 补充 OpenViking 设置、身份派生、插件并发保护相关测试",
          "is_bot": false,
          "headline": "feat: 完善 OpenViking 预设与插件串行管理",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-25T14:32:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd86a21583e231e723844ae7aa349e94ffd0f018",
          "body": "- 二开微信插件,透传微信 sender 身份给 OpenClaw/OpenViking\n- 二开 OpenViking 插件,按 sender 派生稳定 wx_ 用户身份\n- 新增 OpenViking 后台配置、root key 代管与 user key 托管\n- 新增 broker 接口,首次自动注册用户并缓存 user key\n- runner 注入 OpenViking broker、account、identity secret 等配置\n- 后台插件管理支持安装 Claw Manager 版微信与 OpenViking 插件\n- 合并 OpenViking 配置和 user key 表到 V1 初始化脚本\n- 将 OpenViking 插件默认版本更新为 2026.6.28\n- 验证 OpenViking 0.4.5 下用户记忆写入、commit 与召回链路",
          "is_bot": false,
          "headline": "feat: 接入微信用户级 OpenViking 记忆隔离",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-24T18:19:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af90119e3e124cf8d61e46e29c09b97996a9f9bf",
          "body": null,
          "is_bot": false,
          "headline": "v1.0.3",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T18:32:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3e677040f6b28e36a6302a2a3ff972f1d510b2e",
          "body": null,
          "is_bot": false,
          "headline": "2026.6.8 openclaw",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T18:29:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4b34429a6159c5612b823885d0a77a7407580be",
          "body": "- 取消 claw-manager.version 变更触发 Runner 镜像构建\n- 保留 Runner Dockerfile 和 entrypoint 变更触发构建\n- 版本文件变更仍用于触发 API/Web 镜像发布",
          "is_bot": false,
          "headline": "ci: 调整 Runner 镜像构建触发条件",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T18:06:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "775031a830a94178a3cd61121de7d606e6574d08",
          "body": null,
          "is_bot": false,
          "headline": "v1.0.2",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:54:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8364485c504df27e94716ec2f9b79f696ac11e09",
          "body": "- 新增用户中心页面,集中展示微信用户和通道状态\n- 支持按用户维度筛选、备注维护、解绑和批量重启微信通道\n- 将微信通道重启能力从实例管理迁移到用户中心\n- 实例管理页移除微信账号展开区,保留实例与 Gateway 运维操作\n- 左侧导航新增用户中心入口",
          "is_bot": false,
          "headline": "feat: 新增微信用户中心并精简实例管理页",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:52:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db4bd76db9f4919409fa63f060433cca6110318",
          "body": "- 使用 claw-manager.png 统一标签页、后台侧边栏和登录页 Logo\n- 更新页面标题为 Claw Manager,并移除 OpenClaw Console 文案\n- claw-manager.version 变更时同步触发 API、Web、Runner 镜像发布\n- CI 增加 compose.local 配置校验\n- 审计 Redis 当前仅用于依赖、编排和集成测试环境",
          "is_bot": false,
          "headline": "chore: 统一品牌图标并完善镜像发布流程",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:38:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9adcde35f9ce6c6e5b5e5bfc91f30171c2b5d245",
          "body": "- 支持微信插件指定版本安装、升级、重新安装和官方版本列表\n- 将批量检测改为本地快路径,避免同步请求 npm registry\n- 增加官方版本缓存、失败兜底和检测耗时日志\n- 优化插件版本目录读取与批量实例查询\n- 前端插件管理页异步刷新版本并合并可升级状态\n- 配置服务日志滚动并优化日志尾部读取",
          "is_bot": false,
          "headline": "feat: 优化微信插件版本管理与检测性能",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:19:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "623f7a93957a705b89f9a1a3a21fa6d02fe007c7",
          "body": "- 保持 wechat_user_id 作为微信账号唯一身份判断依据\n- 已绑定微信扫描新用户二维码时拒绝重复绑定\n- 将本次扫码产生的新凭证迁回原绑定账号\n- 清理旧 sync/context 状态并重启原微信通道\n- 避免拒绝重复绑定后原账号无法继续连接 OpenClaw\n- 补充重复扫码凭证迁移相关回归测试",
          "is_bot": false,
          "headline": "修复重复微信扫码导致原通道失效问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T16:26:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39ca9a767ba3dbf78f79ba72463131c5d54c024d",
          "body": "- 改为从微信插件扫码登录结果获取实际 accountId 和 wechat_user_id\n- 移除扫描 accounts.json 兜底接纳逻辑,缺少 wechat_user_id 时拒绝绑定\n- 使用 wechat_user_id 作为微信用户全局唯一判定依据\n- 新增微信账号通道状态关系,支持实例下多微信账号状态展示\n- 优化新老用户扫码绑定、重复微信拒绝和原通道激活逻辑\n- 补充微信通道重启、二维码过期展示及相关回归测试",
          "is_bot": false,
          "headline": "修复微信多账号绑定与扫码登录归属识别",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T15:46:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "936ea700f95105256ee6d2c3d319e9b03d42fce5",
          "body": "- 调整后台导航顺序,将实例管理放到扫码链接上方\n- 从扫码链接页移除微信插件安装入口\n- 新增插件管理页,支持多实例检测、安装、卸载、升级\n- 新增微信插件单实例和批量管理接口\n- 插件任务按实例去重,并通过 WebSocket 推送进度\n- 卸载插件时保留微信账号状态和绑定历史",
          "is_bot": false,
          "headline": "新增微信插件独立管理页与批量操作",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T06:42:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74ff17fcf7b8366044fa1263f71fc91c80b1a6cc",
          "body": "- 改为在 runner 容器内复用 OpenClaw backend callGateway 调用 channels.start\n- 扫码完成后读取微信插件真实落盘 accountId,再热启动对应微信账号\n- 避免使用外部 Gateway 设备身份触发 operator.admin 权限问题\n- 修正集成测试中扫码命令完成时序,匹配真实等待扫码流程",
          "is_bot": false,
          "headline": "修复微信扫码后通道热加载延迟问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T03:02:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e05fb51184b6ea49f6b492b1a0290d7d64d740b8",
          "body": null,
          "is_bot": false,
          "headline": "feat: 拆分 Admin 后台路由,优化 Control UI 域名逻辑并新增扫码链接历史与失效管理",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-19T14:00:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ace0cdce26eb5e07df3e614cf902760c05a2559",
          "body": "- 实例操作列改为图标按钮并增加悬浮提示\n- 实例列表新增容器名称列\n- 启用后端文件日志并支持后台单独刷新服务日志\n- 微信扫码链接模块前移并拆分新/老用户出码区域\n- 新增老用户手机号片段搜索接口与前端远程搜索\n- 补充微信绑定手机号搜索相关测试",
          "is_bot": false,
          "headline": "优化后台实例管理与微信扫码链接体验",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-19T10:09:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6098610c5744df004c9e42abd24c95c9e14d2a3d",
          "body": "- 实例操作列改为图标按钮并增加悬浮提示\n- 实例列表新增容器名称列\n- 启用后端文件日志并支持后台单独刷新服务日志\n- 微信扫码链接模块前移并拆分新/老用户出码区域\n- 新增老用户手机号片段搜索接口与前端远程搜索\n- 补充微信绑定手机号搜索相关测试",
          "is_bot": false,
          "headline": "优化后台实例管理与微信扫码链接体验",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-19T10:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0e2735e2ca089c43d27e54fbe877962a0736bb8",
          "body": "- 为 OpenClaw 实例创建、启动、停止和 Gateway 就绪流程补充关键日志\n- 为 runner 镜像检查、拉取和刷新流程补充状态日志\n- 为微信扫码绑定、扫码链接生成、绑定完成和失败场景补充日志\n- 为模型预设更新同步和实例模型配置变更补充日志\n- 避免记录密钥、手机号、二维码内容等敏感信息",
          "is_bot": false,
          "headline": "补充后端核心业务日志",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T19:14:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4945e4e49399d418a49f3e99970e9700ce80cb96",
          "body": "- 移除默认 compose.yaml 中 api/web 的本地 build 配置\n- 新增 compose.local.yaml 用于本地源码构建\n- 更新 README 中部署与本地构建命令说明\n- 避免 docker compose up -d 在镜像拉取失败后自动构建",
          "is_bot": false,
          "headline": "调整 Compose 默认启动为仅拉取镜像",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:44:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2783f425ba676b2a1ecc7d780f13024dcd6a6b3",
          "body": "- 删除全部微信账号时返回是否实际存在已绑定账号\n- 仅在确实删除账号后才触发 Gateway 重启\n- 避免空解绑引发异步状态回写,导致扫码链接创建返回 409\n- 补充空解绑和有账号解绑的返回值测试",
          "is_bot": false,
          "headline": "fix: 修复后端集成测试中空解绑触发重启的问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:35:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c97f2283f8401fdeb173c03a595e1f680be6bfe",
          "body": null,
          "is_bot": false,
          "headline": "ci: 修复前后端镜像构建的 Dockerfile 路径",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:19:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4375c169e4fdd2e0f46bbc5a0d342829b1545ac2",
          "body": null,
          "is_bot": false,
          "headline": "ci: 修复前后端镜像构建的 Dockerfile 路径",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:13:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79fde60ab331dffc8929f09ba31faa4c600da28e",
          "body": null,
          "is_bot": false,
          "headline": "ci: 修复前后端镜像构建的 Dockerfile 路径",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:11:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9672c42943f335277c236e75b9b275332e6b718f",
          "body": "- 合并 Flyway 初始化 SQL,仅保留 V1 基线脚本\n- 更新项目、Compose、镜像命名为 claw-manager\n- 配置 GitHub Actions 发布 API、Web 和 Runner 镜像\n- 排除本地脚本、构建产物和敏感配置",
          "is_bot": false,
          "headline": "chore: 初始化 claw-manager 仓库并接入镜像发布",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T17:57:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 68,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 6,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": 14,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@claw-manager/miniapp-bridge-plugin",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/miniapp-bridge-plugin",
          "is_deprecated": false,
          "latest_version": "2026.7.20",
          "repository_url": null,
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1013,
          "first_published_at": "2026-07-11T18:21:44.994000Z",
          "latest_published_at": "2026-07-17T17:34:35.371000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "@claw-manager/workspace-file-plugin",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/workspace-file-plugin",
          "is_deprecated": false,
          "latest_version": "2026.7.2",
          "repository_url": null,
          "versions_count": 2,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 308,
          "first_published_at": "2026-07-18T18:11:17.882000Z",
          "latest_published_at": "2026-07-18T19:16:50.749000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@claw-manager/openclaw-weixin",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/openclaw-weixin",
          "is_deprecated": false,
          "latest_version": "2026.6.30",
          "repository_url": "https://github.com/zhangsen540445123/claw-manager",
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 780,
          "first_published_at": "2026-06-24T15:59:14.251000Z",
          "latest_published_at": "2026-07-19T12:23:00.406000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@claw-manager/openviking-openclaw-plugin",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "openclaw",
            "openviking",
            "plugin",
            "context-engine",
            "memory",
            "remote-memory",
            "RAG",
            "semantic-retrieval",
            "context-database",
            "long-term-memory",
            "auto-recall",
            "auto-capture"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/openviking-openclaw-plugin",
          "is_deprecated": false,
          "latest_version": "2026.6.38",
          "repository_url": "https://github.com/zhangsen540445123/claw-manager",
          "versions_count": 12,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1945,
          "first_published_at": "2026-06-23T16:19:41.398000Z",
          "latest_published_at": "2026-07-19T12:23:25.756000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@claw-manager/openclaw-api-channel",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/openclaw-api-channel",
          "is_deprecated": false,
          "latest_version": "2026.6.54",
          "repository_url": "https://github.com/zhangsen540445123/claw-manager",
          "versions_count": 28,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 5162,
          "first_published_at": "2026-06-27T11:21:45.211000Z",
          "latest_published_at": "2026-07-19T13:34:29.919000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "frontend/tsconfig.json",
        "plugins/miniapp-bridge-plugin/tsconfig.json",
        "plugins/openclaw-api-channel-plugin/tsconfig.json",
        "plugins/openclaw-weixin-plugin/tsconfig.json",
        "plugins/openviking-openclaw-plugin/tsconfig.json",
        "plugins/workspace-file-plugin/tsconfig.json"
      ],
      "toolchain_manifests": [
        "backend/pom.xml"
      ],
      "largest_source_bytes": 105528,
      "source_files_sampled": 481,
      "oversized_source_files": 2,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 4414
    },
    "dependencies": {
      "manifests": [
        "backend/pom.xml",
        "frontend/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 1,
        "malicious_count": 0,
        "assessed_package": "npm:@claw-manager/miniapp-bridge-plugin@2026.7.20",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "maven",
        "npm"
      ],
      "dependencies": [
        {
          "name": "org.springframework.boot:spring-boot-starter-actuator",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-data-redis",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-security",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-validation",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-web",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-websocket",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.mybatis.spring.boot:mybatis-spring-boot-starter",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${mybatis-spring-boot.version}"
        },
        {
          "name": "com.mysql:mysql-connector-j",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.flywaydb:flyway-core",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.flywaydb:flyway-mysql",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.github.docker-java:docker-java",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${docker-java.version}"
        },
        {
          "name": "com.github.docker-java:docker-java-core",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${docker-java.version}"
        },
        {
          "name": "com.github.docker-java:docker-java-transport-httpclient5",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${docker-java.version}"
        },
        {
          "name": "org.springdoc:springdoc-openapi-starter-webmvc-ui",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${springdoc.version}"
        },
        {
          "name": "org.bouncycastle:bcprov-jdk18on",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${bouncycastle.version}"
        },
        {
          "name": "org.eclipse.jgit:org.eclipse.jgit",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${jgit.version}"
        },
        {
          "name": "@stomp/stompjs",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.1.1"
        },
        {
          "name": "@tanstack/vue-query",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.80.7"
        },
        {
          "name": "element-plus",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.9.11"
        },
        {
          "name": "lucide-vue-next",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.468.0"
        },
        {
          "name": "pinia",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.3.0"
        },
        {
          "name": "qrcode",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.5.4"
        },
        {
          "name": "vue",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.5.13"
        },
        {
          "name": "vue-router",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.5.0"
        },
        {
          "name": "@sinclair/typebox",
          "manifest": "plugins/miniapp-bridge-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.34.33"
        },
        {
          "name": "qrcode-terminal",
          "manifest": "plugins/openclaw-weixin-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.12.0"
        },
        {
          "name": "zod",
          "manifest": "plugins/openclaw-weixin-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.6"
        },
        {
          "name": "@sinclair/typebox",
          "manifest": "plugins/openviking-openclaw-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.34.48"
        },
        {
          "name": "fflate",
          "manifest": "plugins/openviking-openclaw-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.8.2"
        },
        {
          "name": "@sinclair/typebox",
          "manifest": "plugins/workspace-file-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.34.33"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": null,
      "bot_contributors": 0,
      "top_contributors": [],
      "contributors_sampled": null,
      "top_contributor_share": null
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "publish-images.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 1,
            "reason": "dependency not pinned by hash detected -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "65 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "7e3ab2709cfd9ab15a0f0330f459a0f65496dabf",
        "ran_at": "2026-07-25T11:01:27Z",
        "aggregate_score": 2.4,
        "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-21T15:33:48Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/zhangsen540445123/claw-manager",
    "host": "github.com",
    "name": "claw-manager",
    "owner": "zhangsen540445123"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 41,
      "inputs": {
        "security": 39,
        "vitality": 35,
        "community": 26,
        "governance": 45,
        "engineering": 58
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 35,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "commits_last_year": 68,
              "human_commit_share": 1,
              "days_since_last_push": 3,
              "active_weeks_last_year": 6
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "6/52 weeks with commits",
                "points": 4.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "68 commits in the last year",
                "points": 16.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 68
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 26,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "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": 66,
            "inputs": {
              "packages": [
                "@claw-manager/miniapp-bridge-plugin",
                "@claw-manager/workspace-file-plugin",
                "@claw-manager/openclaw-weixin",
                "@claw-manager/openviking-openclaw-plugin",
                "@claw-manager/openclaw-api-channel"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 9208
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "9,208 downloads/month across npm",
                "points": 52.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 9208,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Sustainability & Governance",
        "value": 45,
        "weight": 0.24,
        "metrics": [
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "followers": 0,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "zhangsen540445123",
              "public_repos": 63,
              "account_age_days": 2604
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of zhangsen540445123",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "zhangsen540445123"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "63 public repos, account ~7 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 63
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@claw-manager/miniapp-bridge-plugin",
                "@claw-manager/workspace-file-plugin",
                "@claw-manager/openclaw-weixin",
                "@claw-manager/openviking-openclaw-plugin",
                "@claw-manager/openclaw-api-channel"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "5 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 5,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "28 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 58,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 39,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 24,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 2.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "65 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 npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 runtime dependency closure — what installing the published package pulls in — 1 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": "npm:@claw-manager/miniapp-bridge-plugin@2026.7.20",
                  "assessed": 1
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 1,
              "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": 1,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 74,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.735,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 4414
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.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": "50 of 68 human commits state their intent (structured subject or explanatory body)",
                "points": 39.2,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 50,
                      "sampled": 68
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "frontend/tsconfig.json",
                "plugins/miniapp-bridge-plugin/tsconfig.json",
                "plugins/openclaw-api-channel-plugin/tsconfig.json",
                "plugins/openclaw-weixin-plugin/tsconfig.json",
                "plugins/openviking-openclaw-plugin/tsconfig.json",
                "plugins/workspace-file-plugin/tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "backend/pom.xml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "backend/pom.xml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "backend/pom.xml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "frontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "frontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 68",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 68
                    }
                  }
                ],
                "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 1",
                "points": 1,
                "status": "partial",
                "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": 105528,
              "source_files_sampled": 481,
              "oversized_source_files": 2
            },
            "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": "2/481 source files over 60KB",
                "points": 54.8,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 481,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Contributor list unavailable",
    "Could not fetch maven package 'com.clawbotforall:claw-manager-api' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T11:01:33.574884Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/z/zhangsen540445123/claw-manager.svg",
  "full_name": "zhangsen540445123/claw-manager",
  "license_state": "absent",
  "license_spdx": null
}

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.