Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-25 11:01 UTC

zhangsen540445123 / claw-manager

TypeScript · JavaSin licencia detectada★ 0 estrellas⑂ 0 forksdesde jun 2026Ver en GitHub ↗

zhangsen540445123/claw-manager tiene un índice de salud de 41 sobre 100, lo que lo sitúa en la banda En riesgo. Su puntuación más alta es AI Readiness (74/100) y la más baja, Community & Adoption (26/100). Se actualizó por última vez hace 3 días.

41
global / 100
En riesgo

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

41
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

zhangsen540445123Cuenta personal
0 seguidores63 repositorios públicosdesde jun 2019

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npm@claw-manager/miniapp-bridge-plugin2026.7.2010139hace 7 días
npm@claw-manager/workspace-file-plugin2026.7.23082hace 6 días
npm@claw-manager/openclaw-weixin2026.6.307806hace 5 días
npm@claw-manager/openviking-openclaw-plugin2026.6.38194512hace 5 díasopenclawopenvikingplugincontext-enginememoryremote-memoryragsemantic-retrievalcontext-databaselong-term-memoryauto-recallauto-capture
npm@claw-manager/openclaw-api-channel2026.6.54516228hace 5 días

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

35En riesgo · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 3 días
4.2/36Cadencia de commits — 6/52 semanas con commits
16.5/18Volumen de commits — 68 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year68
human_commit_share1
days_since_last_push3
active_weeks_last_year6
Cómo se puntúa
0/27Publica versiones — sin versiones publicadas
0/36Recencia de las versiones — sin versiones
0/27Cadencia de publicación — sin versiones
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count0
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

26Crítico · 18% del índice global
Cómo se puntúa
0/60Estrellas — 0 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
0/22.5Licencia — no se detectó ningún archivo de licencia
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
52.9/80Descargas mensuales — 9208 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
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_downloads9208
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

45En riesgo · 24% del índice global
Cómo se puntúa
0/46.8Resolución de issues — sin issues o sin datos
0/38.3Aceptación de PR — sin PR decididos o sin datos
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues, Aceptación de PR. Los pesos restantes se han renormalizado.
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
0/25Alcance del propietario — 0 seguidores de zhangsen540445123
25/25Trayectoria — 63 repos públicos, cuenta de ~7 años
Datos de entrada utilizados
followers0
owner_typeUser
is_verified
owner_loginzhangsen540445123
public_repos63
account_age_days2604
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 5 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 5 días
20/20Historial de versiones — 28 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
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_deprecatedno
min_days_since_publish5

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

58Moderado · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 2 flujo(s) de trabajo
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

55Moderado
Cómo se puntúa
30/30README
25/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
0/10Descripción del repositorio
0/10Topics
0/10Wiki
Datos de entrada utilizados
topics
has_wikino
homepage
has_readme
has_docs_dir
has_descriptionno

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

39En riesgo · 16% del índice global
Cómo se puntúa
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 — sin datos
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.5Licencia — 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 — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 65 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate2,4
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, signed_releases. Los pesos restantes se han renormalizado.
Cómo se puntúa
35/35Dependencias directas libres de avisos conocidos — ninguna dependencia directa tiene un aviso conocido
25/25Dependencias indirectas libres de avisos conocidos — ninguna dependencia indirecta tiene un aviso conocido
0/40Sin avisos pendientes — ningún aviso tiene fecha de publicación
Datos de entrada utilizados
sourceosv
advisories0
affected_packages0
assessed_packages1
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluidos de la puntuación (sin datos o no aplicable): Sin avisos pendientes. Los pesos restantes se han renormalizado. Se cotejó el cierre de dependencias en tiempo de ejecución de npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 —lo que arrastra la instalación del paquete publicado—: 1 paquetes. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

74Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
39.2/40Historial de commits legible — 50 de 68 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,735
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes4414
Cómo se puntúa
12.6/18Arranque con un solo comando — backend/pom.xml (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — 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/10Entorno reproducible — Dockerfile, lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 68
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Datos de entrada utilizados
has_nixno
has_tests
lockfilespackage-lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
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
Cómo se puntúa
45/45Código verificable por tipos — TypeScript (tipado estático)
54.8/55Tamaños de archivo manejables — 2/481 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageTypeScript
largest_source_bytes105.528
source_files_sampled481
oversized_source_files2

Datos clave

0estrellas de GitHub
-contribuidores
68commits en los últimos 12 meses
3días desde el último push
0versiones publicadas
-factor bus
0issues abiertas
Maven, npmecosistemas de paquetes

Advertencias de recopilación de datos

  • 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

Más detalle

OpenSSF Scorecard 2.4 / 10
2.4agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).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
n/dCI-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
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities65 existing vulnerabilities detected
Dependencias directas 30
RegistroPaqueteRestricción de versiónManifiesto
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
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Avisos de dependencias 0

Instalar npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 arrastra 1 paquetes, directos y transitivos: 0 tienen avisos conocidos, de los cuales 0 son dependencias directas.

Ningún aviso conocido afecta a las dependencias evaluadas.

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "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
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.