公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-08-01 02:15 UTC

scrypster / muninndb

The cognitive database. A new class of data storage. Not a vector store, not a graph DB, not a RAG wrapper. Ebbinghaus decay, Hebbian learning, and Bayesian confidence are engine-native primitives. Memories evolve on their own. MCP-native. Single binary.

Go自定义许可证★ 318 星标⑂ 75 复刻始于 2026年2月在 GitHub 上查看 ↗

scrypster/muninndb 的健康指数为 100 分中的 69 分,处于「中等」区间。 其得分最高的类别是AI Readiness(85/100),最低的是Sustainability & Governance(61/100)。 最近一次更新在今天。 近期的大部分工作由 1 位贡献者完成。

69
总分 / 100
中等

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

69
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

Scrypster个人账户
38 关注者7 个公开仓库始于 2019年12月

该仓库由个人账户拥有。相较于组织支持的项目,单一所有者项目的延续性风险更高。

软件包生态系统

注册表软件包版本月下载量版本数最近发布
Gogithub.com/scrypster/muninndbv0.9.0-4711 天前

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

83良好 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
14.5/36提交节奏 — 52 周中有 21 周有提交
18/18提交量 — 最近一年 1,035 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year1,035
human_commit_share0.94
days_since_last_push0
active_weeks_last_year21

发布纪律

90优秀
评分方式
27/27有发布版本 — 已发布 47 个发布版本
36/36发布时效 — 最近一次发布版本于 11 天前
27/27发布节奏 — 约每 11.7 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — Project has not signed or included provenance with any releases.
所用输入
releases_count47
latest_release_tagv0.9.0
releases_from_tags
days_since_latest_release11
mean_days_between_releases11.7

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

66中等 · 占总体的 18%
评分方式
40.6/60星标 — 318 个星标
15.6/25复刻 — 75 个复刻
5.8/15关注者 — 12 位关注者
所用输入
forks75
stars318
watchers12
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

71良好
评分方式
22.5/22.5README
16.9/22.5许可证 — 存在许可证文件,但不是可识别的许可证
18/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

61中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
6.2/22.5提交分布 — 头号贡献者编写了 73% 的提交
13.5/13.5贡献者广度 — 22 位贡献者
3/10OpenSSF Scorecard:Contributors — project has 1 contributing companies or organizations -- score normalized to 3
所用输入
bus_factor1
contributors_sampled22
top_contributor_share0.726
评分方式
35.9/46.8议题解决 — 77% 的议题已关闭
36.2/38.3PR 接受 — 已裁定的 PR 中 442/467 已合并
1.5/15OpenSSF Scorecard:Code-Review — Found 3/30 approved changesets -- score normalized to 1
所用输入
merged_prs442
open_issues64
closed_issues212
issue_closed_ratio0.768
closed_unmerged_prs25
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
11.4/25所有者影响力 — scrypster 有 38 位关注者
18.6/25既往记录 — 7 个公开仓库,账户约 6 年
所用输入
followers38
owner_typeUser
is_verified
owner_loginscrypster
public_repos7
account_age_days2,410
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — go 上有 1 个软件包
35/35发布时效 — 最近一次发布于 11 天前
20/20版本历史 — 47 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesgithub.com/scrypster/muninndb
ecosystemsgo
any_deprecated
min_days_since_publish11

工程质量

基础的工程与文档实践是否到位?

71良好 · 占总体的 20%

工程实践

68中等
评分方式
24/24CI 工作流 — 4 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
0/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

75良好
评分方式
30/30README
25/25文档目录
0/15文档 / 主页站点
10/10仓库描述
0/10主题标签
10/10Wiki
所用输入
topics
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

65中等 · 占总体的 16%

安全态势

60中等
评分方式
6/7.5Binary-Artifacts — binaries present in source code
3.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 3/30 approved changesets -- score normalized to 1
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
5/5Fuzzing — project is fuzzed
2.2/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
1.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate6
评分方式
24.7/35直接依赖不含已知公告 — 2 个受影响:github.com/klauspost/compress v1.16.0 (unknown), golang.org/x/crypto v0.52.0 (unknown)
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
40/40没有长期未处理的公告 — 没有公告公开超过 90 天
所用输入
sourceosv
advisories3
affected_packages3
assessed_packages329
unassessed_packages10
affected_by_severityunknown 3
direct_affected_packages2
已排除计分(无数据或不适用):间接依赖不含已知公告。 其余权重已重新归一化。 已将 329 个已解析依赖与 OSV 比对。 有 10 项无法评估——没有已解析的版本、生态系统不受支持,或超出所报告的软件包清单。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

85优秀 · 占总体的 0%
评分方式
45/45代理指令 — CLAUDE.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 94 次人类提交中有 93 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.989
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes10,233
评分方式
18/18一条命令的引导启动 — Makefile
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — sdk/node/tsconfig.json
10/10可复现环境 — Dockerfile, lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 10 次由代理编写或署名代理
8/8自动化维护 — 最近 100 次提交中有 6 次为自动依赖更新
3/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
所用输入
has_nix
has_tests
lockfilescomposer.lock, go.sum, package-lock.json
has_dockerfile
typed_language
bootstrap_filesMakefile
has_devcontainer
has_linter_config
typecheck_configssdk/node/tsconfig.json
agent_commit_share0.1
toolchain_manifestsgo.mod, sdk/go/muninn/go.mod, sdk/kotlin/build.gradle.kts
dependency_bot_commit_share0.06
评分方式
45/45可类型检查的代码 — Go(静态类型)
54.2/55可控的文件大小 — 采样的 894 个源文件中有 13 个超过 60KB
所用输入
primary_languageGo
largest_source_bytes178,827
source_files_sampled894
oversized_source_files13
评分方式
40/40API 模式(OpenAPI/GraphQL/proto) — internal/transport/rest/openapi.yaml, proto/muninn/v1/service.proto
0/20MCP 服务器
40/40可运行示例 — examples
所用输入
example_dirsexamples
has_mcp_signal
api_schema_filesinternal/transport/rest/openapi.yaml, proto/muninn/v1/service.proto

关键数据

318GitHub 星标
22贡献者
1,035最近 12 个月提交数
0距最近推送天数
47发布版本数
1巴士系数(bus factor)
64开放议题
Go, npm软件包生态系统数

数据采集警告

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

更多细节

Star 与 Fork 历史 0 ★ / 75 ⇿
0Star
75Fork
38发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

013253850637574122026-032026-052026-07
主版本 0次版本 5修订 5
OpenSSF Scorecard 6.0 / 10
6.0综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-08-01 02:14 UTC

8Binary-Artifactsbinaries present in source code
5Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 3/30 approved changesets -- score normalized to 1
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
10Fuzzingproject is fuzzed
9Licenselicense file detected
10Maintained30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
直接依赖 22
注册表软件包版本约束清单文件
Gogithub.com/bits-and-blooms/bloom/v3v3.7.1go.mod
Gogithub.com/cockroachdb/pebblev1.1.5go.mod
Gogithub.com/dchest/siphashv1.2.3go.mod
Gogithub.com/google/uuidv1.6.0go.mod
Gogithub.com/hashicorp/golang-lru/v2v2.0.7go.mod
Gogithub.com/klauspost/compressv1.16.0go.mod
Gogithub.com/kljensen/snowballv0.10.0go.mod
Gogithub.com/oklog/ulid/v2v2.1.1go.mod
Gogithub.com/pelletier/go-toml/v2v2.2.4go.mod
Gogithub.com/prometheus/client_golangv1.15.0go.mod
Gogithub.com/stretchr/testifyv1.10.0go.mod
Gogithub.com/sugarme/tokenizerv0.3.0go.mod
Gogithub.com/vmihailenco/msgpack/v5v5.4.1go.mod
Gogithub.com/yalue/onnxruntime_gov1.26.0go.mod
Gogolang.org/x/cryptov0.52.0go.mod
Gogolang.org/x/syncv0.21.0go.mod
Gogolang.org/x/sysv0.45.0go.mod
Gogolang.org/x/termv0.43.0go.mod
Gogolang.org/x/textv0.39.0go.mod
Gogolang.org/x/timev0.3.0go.mod
Gogoogle.golang.org/grpcv1.82.1go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
全部依赖 339

来自 GitHub 依赖图的完整解析依赖集合:22 个直接依赖与 317 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
Gogithub.com/bits-and-blooms/bloom/v3v3.7.1直接
Gogithub.com/cockroachdb/pebblev1.1.5直接
Gogithub.com/dchest/siphashv1.2.3直接
Gogithub.com/google/uuidv1.6.0直接
Gogithub.com/hashicorp/golang-lru/v2v2.0.7直接
Gogithub.com/klauspost/compressv1.16.0直接
Gogithub.com/kljensen/snowballv0.10.0直接
Gogithub.com/oklog/ulid/v2v2.1.1直接
Gogithub.com/pelletier/go-toml/v2v2.2.4直接
Gogithub.com/prometheus/client_golangv1.15.0直接
Gogithub.com/stretchr/testifyv1.10.0直接
Gogithub.com/sugarme/tokenizerv0.3.0直接
Gogithub.com/vmihailenco/msgpack/v5v5.4.1直接
Gogithub.com/yalue/onnxruntime_gov1.26.0直接
Gogolang.org/x/cryptov0.52.0直接
Gogolang.org/x/syncv0.21.0直接
Gogolang.org/x/sysv0.45.0直接
Gogolang.org/x/termv0.43.0直接
Gogolang.org/x/textv0.39.0直接
Gogolang.org/x/timev0.3.0直接
Gogoogle.golang.org/grpcv1.82.1直接
Gogopkg.in/yaml.v3v3.0.1直接
Gogithub.com/beorn7/perksv1.0.1间接
Gogithub.com/bits-and-blooms/bitsetv1.24.2间接
Gogithub.com/cespare/xxhash/v2v2.3.0间接
Gogithub.com/cockroachdb/errorsv1.11.3间接
Gogithub.com/cockroachdb/fifov0.0.0-20240606204812-0bbfbd93a7ce间接
Gogithub.com/cockroachdb/logtagsv0.0.0-20230118201751-21c54148d20b间接
Gogithub.com/cockroachdb/redactv1.1.5间接
Gogithub.com/cockroachdb/tokenbucketv0.0.0-20230807174530-cc333fc44b06间接
Gogithub.com/datadog/zstdv1.4.5间接
Gogithub.com/davecgh/go-spewv1.1.1间接
Gogithub.com/emirpasic/godsv1.18.1间接
Gogithub.com/getsentry/sentry-gov0.27.0间接
Gogithub.com/gogo/protobufv1.3.2间接
Gogithub.com/golang/protobufv1.5.4间接
Gogithub.com/golang/snappyv0.0.4间接
Gogithub.com/kr/prettyv0.3.1间接
Gogithub.com/kr/textv0.2.0间接
Gogithub.com/matttproud/golang_protobuf_extensionsv1.0.4间接
Gogithub.com/mitchellh/colorstringv0.0.0-20190213212951-d06e56a500db间接
Gogithub.com/patrickmn/go-cachev2.1.0+incompatible间接
Gogithub.com/pkg/errorsv0.9.1间接
Gogithub.com/pmezard/go-difflibv1.0.0间接
Gogithub.com/prometheus/client_modelv0.3.0间接
Gogithub.com/prometheus/commonv0.42.0间接
Gogithub.com/prometheus/procfsv0.9.0间接
Gogithub.com/rivo/unisegv0.4.7间接
Gogithub.com/rogpeppe/go-internalv1.9.0间接
Gogithub.com/schollz/progressbar/v2v2.15.0间接
Gogithub.com/sugarme/regexpsetv0.0.0-20200920021344-4d4ec8eaf93c间接
Gogithub.com/vmihailenco/tagparser/v2v2.0.0间接
Gogolang.org/x/expv0.0.0-20230626212559-97b1e661b5df间接
Gogolang.org/x/netv0.55.0间接
Gogoogle.golang.org/genproto/googleapis/rpcv0.0.0-20260414002931-afd174a4e478间接
Gogoogle.golang.org/protobufv1.36.11间接
npm@alloc/quick-lru5.2.0间接
npm@emnapi/core1.11.1间接
npm@emnapi/runtime1.11.1间接
npm@emnapi/wasi-threads1.2.2间接
npm@esbuild/aix-ppc640.28.1间接
npm@esbuild/android-arm0.28.1间接
npm@esbuild/android-arm640.28.1间接
npm@esbuild/android-x640.28.1间接
npm@esbuild/darwin-arm640.28.1间接
npm@esbuild/darwin-x640.28.1间接
npm@esbuild/freebsd-arm640.28.1间接
npm@esbuild/freebsd-x640.28.1间接
npm@esbuild/linux-arm0.28.1间接
npm@esbuild/linux-arm640.28.1间接
npm@esbuild/linux-ia320.28.1间接
npm@esbuild/linux-loong640.28.1间接
npm@esbuild/linux-mips64el0.28.1间接
npm@esbuild/linux-ppc640.28.1间接
npm@esbuild/linux-riscv640.28.1间接
npm@esbuild/linux-s390x0.28.1间接
npm@esbuild/linux-x640.28.1间接
npm@esbuild/netbsd-arm640.28.1间接
npm@esbuild/netbsd-x640.28.1间接
npm@esbuild/openbsd-arm640.28.1间接
npm@esbuild/openbsd-x640.28.1间接
npm@esbuild/openharmony-arm640.28.1间接
npm@esbuild/sunos-x640.28.1间接
npm@esbuild/win32-arm640.28.1间接
npm@esbuild/win32-ia320.28.1间接
npm@esbuild/win32-x640.28.1间接
npm@inquirer/ansi1.0.2间接
npm@inquirer/confirm5.1.21间接
npm@inquirer/core10.3.2间接
npm@inquirer/figures1.0.15间接
npm@inquirer/type3.0.10间接
npm@jridgewell/gen-mapping0.3.13间接
npm@jridgewell/remapping2.3.5间接
npm@jridgewell/resolve-uri3.1.2间接
npm@jridgewell/sourcemap-codec1.5.5间接
npm@jridgewell/trace-mapping0.3.31间接
npm@mswjs/interceptors0.41.3间接
npm@napi-rs/wasm-runtime1.1.6间接
npm@open-draft/deferred-promise2.2.0间接
npm@open-draft/logger0.3.0间接
npm@open-draft/until2.1.0间接
npm@oxc-project/types0.139.0间接
npm@playwright/test1.58.2间接
npm@rolldown/binding-android-arm641.1.5间接
npm@rolldown/binding-darwin-arm641.1.5间接
npm@rolldown/binding-darwin-x641.1.5间接
npm@rolldown/binding-freebsd-x641.1.5间接
npm@rolldown/binding-linux-arm-gnueabihf1.1.5间接
npm@rolldown/binding-linux-arm64-gnu1.1.5间接
npm@rolldown/binding-linux-arm64-musl1.1.5间接
npm@rolldown/binding-linux-ppc64-gnu1.1.5间接
npm@rolldown/binding-linux-s390x-gnu1.1.5间接
npm@rolldown/binding-linux-x64-gnu1.1.5间接
npm@rolldown/binding-linux-x64-musl1.1.5间接
npm@rolldown/binding-openharmony-arm641.1.5间接
npm@rolldown/binding-wasm32-wasi1.1.5间接
npm@rolldown/binding-win32-arm64-msvc1.1.5间接
npm@rolldown/binding-win32-x64-msvc1.1.5间接
npm@rolldown/pluginutils1.0.1间接
npm@rollup/rollup-android-arm-eabi4.59.0间接
npm@rollup/rollup-android-arm644.59.0间接
npm@rollup/rollup-darwin-arm644.59.0间接
npm@rollup/rollup-darwin-x644.59.0间接
npm@rollup/rollup-freebsd-arm644.59.0间接
npm@rollup/rollup-freebsd-x644.59.0间接
npm@rollup/rollup-linux-arm-gnueabihf4.59.0间接
npm@rollup/rollup-linux-arm-musleabihf4.59.0间接
npm@rollup/rollup-linux-arm64-gnu4.59.0间接
npm@rollup/rollup-linux-arm64-musl4.59.0间接
npm@rollup/rollup-linux-loong64-gnu4.59.0间接
npm@rollup/rollup-linux-loong64-musl4.59.0间接
npm@rollup/rollup-linux-ppc64-gnu4.59.0间接
npm@rollup/rollup-linux-ppc64-musl4.59.0间接
npm@rollup/rollup-linux-riscv64-gnu4.59.0间接
npm@rollup/rollup-linux-riscv64-musl4.59.0间接
npm@rollup/rollup-linux-s390x-gnu4.59.0间接
npm@rollup/rollup-linux-x64-gnu4.59.0间接
npm@rollup/rollup-linux-x64-musl4.59.0间接
npm@rollup/rollup-openbsd-x644.59.0间接
npm@rollup/rollup-openharmony-arm644.59.0间接
npm@rollup/rollup-win32-arm64-msvc4.59.0间接
npm@rollup/rollup-win32-ia32-msvc4.59.0间接
npm@rollup/rollup-win32-x64-gnu4.59.0间接
npm@rollup/rollup-win32-x64-msvc4.59.0间接
npm@standard-schema/spec1.1.0间接
npm@tailwindcss/node4.3.3间接
npm@tailwindcss/oxide4.3.3间接
npm@tailwindcss/oxide-android-arm644.3.3间接
npm@tailwindcss/oxide-darwin-arm644.3.3间接
npm@tailwindcss/oxide-darwin-x644.3.3间接
npm@tailwindcss/oxide-freebsd-x644.3.3间接
npm@tailwindcss/oxide-linux-arm-gnueabihf4.3.3间接
npm@tailwindcss/oxide-linux-arm64-gnu4.3.3间接
npm@tailwindcss/oxide-linux-arm64-musl4.3.3间接
npm@tailwindcss/oxide-linux-x64-gnu4.3.3间接
npm@tailwindcss/oxide-linux-x64-musl4.3.3间接
npm@tailwindcss/oxide-wasm32-wasi4.3.3间接
npm@tailwindcss/oxide-win32-arm64-msvc4.3.3间接
npm@tailwindcss/oxide-win32-x64-msvc4.3.3间接
npm@tailwindcss/postcss4.3.3间接
npm@tybys/wasm-util0.10.3间接
npm@types/chai5.2.3间接
npm@types/deep-eql4.0.2间接
npm@types/estree1.0.8间接
npm@types/estree1.0.9间接
npm@types/statuses2.0.6间接
npm@vitest/expect3.2.6间接
npm@vitest/expect4.1.10间接
npm@vitest/mocker3.2.6间接
npm@vitest/mocker4.1.10间接
npm@vitest/pretty-format3.2.6间接
npm@vitest/pretty-format3.2.7间接
npm@vitest/pretty-format4.1.10间接
npm@vitest/runner3.2.6间接
npm@vitest/runner4.1.10间接
npm@vitest/snapshot3.2.6间接
npm@vitest/snapshot4.1.10间接
npm@vitest/spy3.2.6间接
npm@vitest/spy4.1.10间接
npm@vitest/utils3.2.6间接
npm@vitest/utils4.1.10间接
npmansi-regex5.0.1间接
npmansi-styles4.3.0间接
npmassertion-error2.0.1间接
npmcac6.7.14间接
npmchai5.3.3间接
npmchai6.2.2间接
npmcheck-error2.1.3间接
npmcli-width4.1.0间接
npmcliui8.0.1间接
npmcolor-convert2.0.1间接
npmcolor-name1.1.4间接
npmconvert-source-map2.0.0间接
npmcookie1.1.1间接
npmdebug4.4.3间接
npmdeep-eql5.0.2间接
npmdetect-libc2.1.2间接
npmemoji-regex8.0.0间接
npmenhanced-resolve5.24.3间接
npmes-module-lexer1.7.0间接
npmes-module-lexer2.3.1间接
npmesbuild0.28.1间接
npmescalade3.2.0间接
npmestree-walker3.0.3间接
npmexpect-type1.3.0间接
npmfdir6.5.0间接
npmfsevents2.3.2间接
npmfsevents2.3.3间接
npmget-caller-file2.0.5间接
npmgraceful-fs4.2.11间接
npmgraphql16.13.1间接
npmheaders-polyfill4.0.3间接
npmis-fullwidth-code-point3.0.0间接
npmis-node-process1.2.0间接
npmjiti2.7.0间接
npmjs-tokens9.0.1间接
npmlightningcss1.32.0间接
npmlightningcss1.33.0间接
npmlightningcss-android-arm641.32.0间接
npmlightningcss-android-arm641.33.0间接
npmlightningcss-darwin-arm641.32.0间接
npmlightningcss-darwin-arm641.33.0间接
npmlightningcss-darwin-x641.32.0间接
npmlightningcss-darwin-x641.33.0间接
npmlightningcss-freebsd-x641.32.0间接
npmlightningcss-freebsd-x641.33.0间接
npmlightningcss-linux-arm-gnueabihf1.32.0间接
npmlightningcss-linux-arm-gnueabihf1.33.0间接
npmlightningcss-linux-arm64-gnu1.32.0间接
npmlightningcss-linux-arm64-gnu1.33.0间接
npmlightningcss-linux-arm64-musl1.32.0间接
npmlightningcss-linux-arm64-musl1.33.0间接
npmlightningcss-linux-x64-gnu1.32.0间接
npmlightningcss-linux-x64-gnu1.33.0间接
npmlightningcss-linux-x64-musl1.32.0间接
npmlightningcss-linux-x64-musl1.33.0间接
npmlightningcss-win32-arm64-msvc1.32.0间接
npmlightningcss-win32-arm64-msvc1.33.0间接
npmlightningcss-win32-x64-msvc1.32.0间接
npmlightningcss-win32-x64-msvc1.33.0间接
npmloupe3.2.1间接
npmmagic-string0.30.21间接
npmms2.1.3间接
npmmsw2.12.10间接
npmmute-stream2.0.0间接
npmnanoid3.3.16间接
npmobug2.1.4间接
npmoutvariant1.4.3间接
npmpath-to-regexp6.3.0间接
npmpathe2.0.3间接
npmpathval2.0.1间接
npmpicocolors1.1.1间接
npmpicomatch4.0.5间接
npmplaywright1.58.2间接
npmplaywright-core1.58.2间接
npmpostcss8.5.23间接
npmrequire-directory2.1.1间接
npmrettime0.10.1间接
npmrolldown1.1.5间接
npmrollup4.59.0间接
npmsiginfo2.0.0间接
npmsignal-exit4.1.0间接
npmsource-map-js1.2.1间接
npmstackback0.0.2间接
npmstatuses2.0.2间接
npmstd-env3.10.0间接
npmstd-env4.2.0间接
npmstrict-event-emitter0.5.1间接
npmstring-width4.2.3间接
npmstrip-ansi6.0.1间接
npmstrip-literal3.1.0间接
npmtagged-tag1.0.0间接
npmtailwindcss4.3.3间接
npmtapable2.3.3间接
npmtinybench2.9.0间接
npmtinyexec0.3.2间接
npmtinyexec1.2.4间接
npmtinyglobby0.2.15间接
npmtinyglobby0.2.17间接
npmtinypool1.1.1间接
npmtinyrainbow2.0.0间接
npmtinyrainbow3.1.0间接
npmtinyspy4.0.4间接
npmtldts7.0.25间接
npmtldts-core7.0.25间接
npmtough-cookie6.0.1间接
npmtslib2.8.1间接
npmtype-fest5.4.4间接
npmtypescript5.9.3间接
npmuntil-async3.0.2间接
npmvite7.3.6间接
npmvite8.1.5间接
npmvite-node3.2.4间接
npmvitest3.2.6间接
npmvitest4.1.10间接
npmwhy-is-node-running2.3.0间接
npmwrap-ansi6.2.0间接
npmwrap-ansi7.0.0间接
npmy18n5.0.8间接
npmyargs17.7.2间接
npmyargs-parser21.1.1间接
npmyoctocolors-cjs2.1.3间接
Packagistmyclabs/deep-copy1.13.4间接
Packagistnikic/php-parser5.7.0间接
Packagistphar-io/manifest2.0.4间接
Packagistphar-io/version3.2.1间接
Packagistphpunit/php-code-coverage11.0.12间接
Packagistphpunit/php-file-iterator5.1.1间接
Packagistphpunit/php-invoker5.0.1间接
Packagistphpunit/php-text-template4.0.1间接
Packagistphpunit/php-timer7.0.1间接
Packagistphpunit/phpunit11.5.55间接
Packagistsebastian/cli-parser3.0.2间接
Packagistsebastian/code-unit3.0.3间接
Packagistsebastian/code-unit-reverse-lookup4.0.1间接
Packagistsebastian/comparator6.3.3间接
Packagistsebastian/complexity4.0.1间接
Packagistsebastian/diff6.0.2间接
Packagistsebastian/environment7.2.1间接
Packagistsebastian/exporter6.3.2间接
Packagistsebastian/global-state7.0.2间接
Packagistsebastian/lines-of-code3.0.1间接
Packagistsebastian/object-enumerator6.0.1间接
Packagistsebastian/object-reflector4.0.1间接
Packagistsebastian/recursion-context6.0.3间接
Packagistsebastian/type5.1.3间接
Packagistsebastian/version5.0.2间接
Packagiststaabm/side-effects-detector1.0.5间接
Packagisttheseer/tokenizer1.3.1间接
PyPIflit-core间接
PyPIhttpx间接
PyPIlangchain间接
PyPIlangchain-anthropic间接
PyPIlangchain-core间接
PyPImuninn-python间接
PyPIpytest间接
PyPIpytest-asyncio间接
PyPIpython-dotenv间接
PyPIrespx间接
依赖安全公告 3

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 329 个包,其中也包含从不交付的开发与测试版本固定:3 个存在已知公告,2 个为直接依赖。 有 10 个无法评估——没有已解析的版本、生态系统不受支持,或不在所列包清单之内。

软件包版本关系严重程度公告数修复版本
github.com/klauspost/compressv1.16.0直接未知11.18.7
golang.org/x/cryptov0.52.0直接未知1
golang.org/x/netv0.55.0间接未知10.56.0

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 15375,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Go": 8092025,
        "CSS": 19933,
        "PHP": 70222,
        "HTML": 257714,
        "Shell": 7310,
        "Swift": 66565,
        "Kotlin": 54796,
        "Python": 104262,
        "Makefile": 6829,
        "Dockerfile": 1990,
        "JavaScript": 148244,
        "PowerShell": 4965,
        "TypeScript": 62072
      },
      "pushed_at": "2026-07-31T21:34:21Z",
      "created_at": "2026-02-22T16:32:38Z",
      "owner_type": "User",
      "updated_at": "2026-08-01T01:45:20Z",
      "description": "The cognitive database. A new class of data storage. Not a vector store, not a graph DB, not a RAG wrapper. Ebbinghaus decay, Hebbian   learning, and Bayesian confidence are engine-native primitives. Memories evolve on their own. MCP-native. Single binary.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "develop",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Scrypster",
      "type": "User",
      "login": "scrypster",
      "company": null,
      "location": null,
      "followers": 38,
      "avatar_url": "https://avatars.githubusercontent.com/u/59214607?v=4",
      "created_at": "2019-12-25T02:14:45Z",
      "is_verified": null,
      "public_repos": 7,
      "account_age_days": 2410
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.9.0",
          "kind": "minor",
          "published_at": "2026-07-20T22:18:25Z"
        },
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-07-09T19:25:27Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-06-12T12:29:10Z"
        },
        {
          "tag": "v0.6.3",
          "kind": "patch",
          "published_at": "2026-06-11T12:36:50Z"
        },
        {
          "tag": "v0.6.2",
          "kind": "patch",
          "published_at": "2026-06-10T20:31:08Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2026-05-26T18:47:52Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-05-20T13:10:39Z"
        },
        {
          "tag": "v0.5.1",
          "kind": "patch",
          "published_at": "2026-05-06T12:36:38Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-04-27T22:53:19Z"
        },
        {
          "tag": "v0.4.12-alpha",
          "kind": "prerelease",
          "published_at": "2026-04-06T16:38:53Z"
        },
        {
          "tag": "v0.4.11-alpha",
          "kind": "prerelease",
          "published_at": "2026-04-05T15:02:34Z"
        },
        {
          "tag": "v0.4.10",
          "kind": "patch",
          "published_at": "2026-04-02T22:17:34Z"
        },
        {
          "tag": "v0.4.9-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-30T15:38:45Z"
        },
        {
          "tag": "v0.4.8-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-29T15:49:17Z"
        },
        {
          "tag": "v0.4.7-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-26T15:45:19Z"
        },
        {
          "tag": "v0.4.6-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-22T03:11:14Z"
        },
        {
          "tag": "v0.4.5-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-18T03:52:22Z"
        },
        {
          "tag": "v0.4.4-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-17T03:21:06Z"
        },
        {
          "tag": "v0.4.3-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-16T03:51:21Z"
        },
        {
          "tag": "v0.4.2-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-15T03:41:42Z"
        },
        {
          "tag": "v0.4.1-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-14T00:26:45Z"
        },
        {
          "tag": "v0.4.0-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-13T02:02:12Z"
        },
        {
          "tag": "v0.3.15-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-11T14:42:07Z"
        },
        {
          "tag": "v0.3.14-alpha-1",
          "kind": "prerelease",
          "published_at": "2026-03-10T00:30:20Z"
        },
        {
          "tag": "v0.3.14-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-09T23:19:05Z"
        },
        {
          "tag": "v0.3.13-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-09T16:00:45Z"
        },
        {
          "tag": "v0.3.12-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-09T04:13:08Z"
        },
        {
          "tag": "v0.3.11-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-07T22:52:56Z"
        },
        {
          "tag": "v0.3.10-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-07T16:01:34Z"
        },
        {
          "tag": "v0.3.9-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-06T20:09:28Z"
        },
        {
          "tag": "v0.3.8-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-06T15:47:21Z"
        },
        {
          "tag": "v0.3.7-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-06T04:08:40Z"
        },
        {
          "tag": "v0.3.6-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-05T19:46:28Z"
        },
        {
          "tag": "v0.3.5-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-05T14:30:56Z"
        },
        {
          "tag": "v0.3.4-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-05T03:01:20Z"
        },
        {
          "tag": "v0.3.3-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-04T17:15:43Z"
        },
        {
          "tag": "v0.3.2-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-03T22:16:07Z"
        },
        {
          "tag": "v0.3.1-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-03T21:35:36Z"
        },
        {
          "tag": "v0.3.0-alpha",
          "kind": "prerelease",
          "published_at": "2026-03-02T22:38:22Z"
        },
        {
          "tag": "v0.2.6",
          "kind": "patch",
          "published_at": "2026-02-28T19:27:31Z"
        },
        {
          "tag": "v0.2.5",
          "kind": "patch",
          "published_at": "2026-02-27T22:08:45Z"
        },
        {
          "tag": "v0.2.4",
          "kind": "patch",
          "published_at": "2026-02-27T04:33:14Z"
        },
        {
          "tag": "v0.2.3",
          "kind": "patch",
          "published_at": "2026-02-26T20:16:17Z"
        },
        {
          "tag": "v0.2.2",
          "kind": "patch",
          "published_at": "2026-02-26T00:24:29Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2026-02-25T23:58:27Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-02-25T23:02:39Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-02-24T02:01:01Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "e24b5dcfd3c4a756f3cfbe51f0e36f4351fd14cb",
          "body": "…easured recall ceiling (#757)\n\n* fix(storage): weight exactly 1.0 round-tripped to 0 — full-confidence declarations were destroyed\n\nTHE BUG. WeightComplement computed uint32(weight * float32(math.MaxUint32)).\nfloat32(MaxUint32) rounds UP to 2^32 (4294967295 is not representable in\nfloat32), so for \n[…]\nard gap noted for a\nseparate increment), and replication coherence of the compat deletes. G6 is\nsatisfied by the two passes together.\n\n---------\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: full-confidence weight destruction, evolve provenance, and the m…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T21:34:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "88c4d9fb830f8893c8527c58ea43e25394b8d0db",
          "body": "…adictions surface, and the write-effort cliff (#754)\n\n* fix(engine): consolidate archived its own survivor and destroyed the fact\n\nConsolidate writes the merged content as a new engram, then soft-deletes every\ninput id. But Write is exact-content deduplicated: when mergedContent matches an\ninput by\n[…]\nrong.\n\nFourth of its shape this week (#744 latency budget, the import-cleanup silent\ntimeout, the abstention harness determinism). Each: a timing assumption that\nreports the wrong cause when violated.",
          "is_bot": false,
          "headline": "fix: solid ground — consolidate data loss, inverted abstention, contr…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T18:46:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3808189c69f4f46b4e2a6bd32ebf205c470eb34e",
          "body": "…a timeout as a cleanup bug (#753)\n\nThe wait loop exited silently when its 10s deadline passed and the test then\nasserted that the orphaned vault had been cleaned up — but cleanup only runs\nonce the import job reaches StatusError. On a loaded runner the job had not\nfailed yet, so the assertion fired\n[…]\nflake found this week, after the currency latency budget\n(#744) and the abstention measurement harness. Same root shape each time: a\ntiming assumption that reports the wrong cause when it is violated.",
          "is_bot": false,
          "headline": "test(engine): stop TestStartImport_OrphanedVaultCleanup misreporting …",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T16:21:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ebdc1a12710366aa78b9de13dd99e8993fee2737",
          "body": "…premise (#751)\n\nFour independent attempts to make the feature fire, each measured on real data.\nThe mechanism is refuted at its PREMISE rather than at its tuning.\n\n  pass 1  does it fire?          0 fires / 37,296 candidate edges (focality\n                                 assumed always-true; still\n[…]\nire') was stated confidently and is refuted by pass 3 — capture quality is\na precondition worth fixing on its own merits, not the lever.\n\nFiled alongside ambient push (#609) in the do-not-reopen list.",
          "is_bot": false,
          "headline": "docs(decision-record): associative surprise — killed, refuted at its …",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T13:30:47Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "887038b0d1895dcafa0243ef398555e6b5cdef6e",
          "body": "* fix(cli): handle stale PID file in 'muninn stop'\n\nWhen the daemon crashed or was killed with SIGKILL without cleanup, its\nPID file was left behind pointing at a dead PID. 'muninn stop' then called\nos.FindProcess + Signal on that PID, which on Unix returns \"process already\nfinished\" (kill(2) ESRCH \n[…]\na-bot@users.noreply.github.com>\n\n---------\n\nSigned-off-by: ad-astra-bot <263242209+ad-astra-bot@users.noreply.github.com>\nCo-authored-by: ad-astra-bot <263242209+ad-astra-bot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(cli): handle stale PID file in 'muninn stop' (#650)",
          "author_name": "ad-astra-bot",
          "author_login": "ad-astra-bot",
          "committed_at": "2026-07-31T13:20:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6f00ea1a354e9fd3d4bd6e4460e389b38b6b9460",
          "body": "…es (#747)\n\nmuninn_link(relation=contradicts) applied the confidence penalty TWICE: once\ninside the ContradictWorker's OnFound callback (idempotent per pair since #746),\nand again directly and unconditionally in Link itself. The direct submit was a\nshortcut for immediacy — its comment says 'without \n[…]\nd: the worker timing makes a\nhermetic unit test for this unreliable, so the proof is the live end-to-end run\nabove plus the existing idempotency tests from #746. Full suite green, vet and\ngofmt clean.",
          "is_bot": false,
          "headline": "fix(engine): declaring a contradiction no longer destroys both memori…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T13:05:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bc276d39b57a7d17f947951902acf270488c9b9f",
          "body": "…nd by hands-on AI evaluation (#746)\n\n* fix(cognitive): make the contradiction confidence penalty idempotent per pair (partial)\n\nPARTIAL FIX — the end-to-end bug is NOT yet closed; see the measurement below.\n\nReproduced against a live server: two opposing memories linked with\nmuninn_link(relation=co\n[…]\nsary but nowhere near sufficient, and the\nearlier 'the moat is typed + entity-tagged memories' conclusion was too strong.\n\n---------\n\nCo-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: agent-experience hardening — six silent-substitution defects fou…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T12:28:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4310d8ef0b6883accf72a1d9e77d02e70150ea56",
          "body": "muninn_link's `relation` argument was silently coerced to relates_to when it\nwas not one of the 16 recognized names — the same silent-substitution class as\nthe memory-type downgrade fixed in #742, still live on the verb declarations\ndepend on most.\n\nrelates_to is INERT: it is the one relation with n\n[…]\nid relation\nis ever reported unknown — adding a RelType cannot create a new class of\nsilently-discarded declaration.\n\nRED-sanity checked: the tests fail to build/pass with the handler change\nreverted.",
          "is_bot": false,
          "headline": "fix(mcp): never silently discard an unrecognized link relation (#745)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-31T00:43:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b1c940739c48d2b6ec59a99776bfe351d159f57",
          "body": "…p of entity coverage) (#743)\n\nmuninn_remember's entities[].type carried a strict 14-value JSON-Schema enum\n(added 2026-06-11). Server-side it was dead weight — normalizeEntityType coerces\nany unrecognized value to \"other\" on every user-facing write path, so the enum\nnever changed what was stored. C\n[…]\n. entity_state/_batch KEEP the enum — those correct the type of an entity\nthat already exists, so there is no capture to suppress.\n\nRED-sanity checked: both tests fail with the schema change reverted.",
          "is_bot": false,
          "headline": "fix(mcp): drop the entity-type enum from the write paths (it cost 64p…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T23:55:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "728b491c6c7aa94e86440b8668fba588605890ab",
          "body": "An explicit `type` argument that is not a recognized MemoryType enum name was\nsilently downgraded to TypeFact — the caller's string kept as a cosmetic\nTypeLabel, the memory filed as a plain fact, and nothing told the writer their\ntype had been discarded. That is principle #1 (\"explicit config is nev\n[…]\n is ever reported unknown — so\nadding an enum member cannot silently create a new class of swallowed write\n(principle #6).\n\nRED-sanity checked: the tests fail to build/pass without the handler change.",
          "is_bot": false,
          "headline": "fix(mcp): never silently swallow an unrecognized memory type (#742)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T23:47:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dc8e7b5f85a7bd8708fdf871efcd2635faaa9800",
          "body": "…r noise (#744)\n\nThe budget is a complexity-blowup detector, not a performance benchmark: it\nexists to catch an accidental O(K^2)-or-worse rewrite of\napplyCurrencyAnnotation, which shows up as orders of magnitude, not percent.\nSet tight, it could only ever report on the runner.\n\nIt duly flaked, fail\n[…]\nlonger can. The failure message now says which of the two it means.\n\nAlso logs the measurement unconditionally, so slow drift stays visible in CI\nlogs while the budget itself stays deliberately loose.",
          "is_bot": false,
          "headline": "test(engine): stop TestCurrencyAnnotation_Latency flaking on CI runne…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T23:47:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4fc9da8ac5fcafd0dc182808cf36568e8c8af50b",
          "body": "…ile at write (#741)\n\nThe auto-surfaced MCP instructions (internal/mcp/context.go) and muninn_guide now\nprime every connecting LLM to treat the vault as living memory, not a static store:\nthe moment you write is the moment you know something, so it's the moment to\nreconcile — recall the neighborhood\n[…]\nd; coexisting variants stay). Guidance text only — no\nlogic, no regression, cleanly reversible. World-class behavior does not depend on\nany skill; the reflex ships in the universal on-connect surface.",
          "is_bot": false,
          "headline": "feat(guide): curator reflex — treat MuninnDB as living memory, reconc…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T23:42:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c111f954683587018c9b33fdd6400c4070fd4f2",
          "body": "…(#740)\n\n* fix(recall): degrade LOUDLY on embedding failure (semantic_degraded)\n\nphase6Score's post-load cosine fallback swallowed GetEmbeddings errors silently\n(candidates stayed vectorScore=0, no WARN); phase1 treated an err==nil empty/all-zero\nquery vector identically to a valid one. Both now WAR\n[…]\now-up, kept out to stay a minimal\nincrement); and tighten the field doc (query-granular + coarse: set on any failure\neven if primary vector search worked; caller-supplied embeddings not zero-checked).",
          "is_bot": false,
          "headline": "fix(recall): degrade loudly on embedding failure (semantic_degraded) …",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T18:41:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6ba222063518e26f96c0dd56551b48e95c693a8b",
          "body": "…d create (#739)\n\nEvolveAt queued its successor engram via batch.WriteEngram, recording provenance\nOperation:\"create\" for every muninn_evolve. Add StoreBatch.WriteEngramOp(op) so the\nverb is threaded through; EvolveAt now records \"evolve\". Plain remember/tree writes\nare genuine creates and stay \"cre\n[…]\nive, non-behavioral outside provenance.\nRED-first: TestStoreBatch_WriteEngramOp_RecordsRealOperation (failed to compile before\nthe method existed) + a non-regression pin for plain create. -race green.",
          "is_bot": false,
          "headline": "feat(provenance): record real write verb (evolve) instead of hardcode…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T18:41:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90a60f89ae9614ff49bc37a0c8566ad609afb272",
          "body": "…OG-25) (#738)\n\n* feat(currency): recall-time advisory version-cluster (#712, COG-25) — port + COG-25 leak fix\n\nPort engine_currency.go + test onto clean origin/develop (the prior branch was\n18 commits stale and would have reverted merged work). Wire the four advisory\nannotation fields (possibly_sup\n[…]\nith anchors + all pin-test names), and a\ndrift-and-obligations row recording the MCP+MBP-only annotation surface scope so the\nfields aren't wired into proto/SDK as unpopulated (silently-wrong) schema.",
          "is_bot": false,
          "headline": "feat(recall): advisory version-cluster annotation — currency (#712, C…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T18:41:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dc3c15a04e4502a7135072585d6548bd07edca92",
          "body": "… recall ranking (#713) (#735)\n\nAdds an optional per-vault ExcludeTags list (PlasticityConfig -> ResolvedPlasticity\n-> ActivateRequest). Candidates carrying an excluded tag are dropped from recall\nRANKING before scoring. Ranking-only: the engram is not deleted, not hidden from\ndirect-id or as_of-by-\n[…]\n tag overrides the standing exclude for that\nrequest (caller intent wins). Reuses the existing tag-filter extraction path\n(principle #7). Addresses near-duplicate / auto-generated-tag recall crowding.",
          "is_bot": false,
          "headline": "feat(recall): per-vault exclude-tags knob — drop configured tags from…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T12:01:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "60ed37b1005e113cf26a0a367e0a25725957349c",
          "body": "…iers (#734)\n\nReplace vault-derived test fixture names and vault-name references with\nneutral placeholders. No functional change.",
          "is_bot": false,
          "headline": "chore(test,docs): use neutral fixtures, remove vault-specific identif…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-30T11:35:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2265b69ea33c048f1d98c219f5712343582019d",
          "body": "…g (#722 lessons) (#727)\n\nPromotes the multi-round CI-flake hunt from PR #722 into a permanent guide:\nthe five async sources on the write/scoring path that a test asserting on\nrecall/score/count must drain deterministically (never time.Sleep), the\nWaitGroup discipline for adding a new drain, and the\n[…]\nWires a\nstanding obligation into drift-and-obligations.md (#12) so new async workers\nget a drain seam and a table entry, and adds a one-line pointer from\nCLAUDE.md's RED-sanity-check step.\n\nRefs #722.",
          "is_bot": false,
          "headline": "docs(internals): test hermeticity guide — drain async before assertin…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T21:10:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d1d88e81110900307ed74a8089ea36424ccd5601",
          "body": "…dings (#714) (#722)\n\n* fix(recall): compute cosine for FTS-only candidates (semantic evidence was silently dropped)\n\nCandidates that entered the result pool only via the FTS path (ftsScore>0)\nkept vectorScore=0 for their entire life in the pipeline: phase3RRF's FTS\nloop never sets vectorScore (only\n[…]\n (previously ~1-3/50 with only the\nlog-drain half of this fix, and failing before any fix). Full package\n`-race` suite and `go build/vet -tags localassets ./...` + `gofmt -l .`\nclean.\n\nRefs #722, #22.",
          "is_bot": false,
          "headline": "fix(recall): restore post-load cosine — GetEngrams omits ERF v2 embed…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T20:56:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3f9091d5da42f9680fd1bc138787cfe1967674ac",
          "body": "…g facts to keep recall clean (#723)\n\nRepeated muninn_remember for the same evolving fact creates unlinked\nengrams with no RelSupersedes edge, so applySupersession has nothing\nto demote and every stale copy stays fully active in recall. Add\nguidance to muninn_guide, the Tips section, and the muninn_remember /\nmuninn_evolve tool descriptions so agents and bulk write pipelines\nevolve instead of re-remembering when a fact is being updated or\nre-asserted.\n\nRefs #713.",
          "is_bot": false,
          "headline": "docs(guide): use muninn_evolve (not repeated remember) for supersedin…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T18:56:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcb713f1e4da3768d9083c132dab3c3cf063f72d",
          "body": "…e (COG-26) (#718)\n\n* feat(recall): semantic-abstention floor — baseline-rescaled cosine (COG-26)\n\nbge-small-en-v1.5 is strongly anisotropic on real text: an out-of-domain\nquery/passage pair still lands at cosine ~0.45-0.60, not ~0 (measured: 432\nnonsense-query x real-passage pairs, mu=0.450, sigma=\n[…]\nnsense query at cosine ~0.545 abstains — a failure mode\na large, lexically-overlapping battery can't see. Updated all b=0.558 pins\n(baseline_test.go, semantic_baseline_test.go, actr_test.go) to 0.520.",
          "is_bot": false,
          "headline": "feat(recall): semantic-abstention floor — anisotropy-calibrated cosin…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T16:07:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe5ebf5dc5a05ab3572ec8ebfe19c6e2c00c7e06",
          "body": "…nciple #11) (#717)\n\nRecords the lesson from the reliable-colleague work: a threshold/baseline/\nvocabulary a feature needs must be derived from each vault's OWN data\n(self-calibrating, like #711's per-corpus IDF) or exposed as a per-vault\noverride — with model/cold-start defaults as hints, never fix\n[…]\nver for baking a constant into the\nproduct. Adds principle #11 to CLAUDE.md and a decision-record entry\n(semantic-abstention floor self-calibration; #712 currency held for\none-vault-specific markers).",
          "is_bot": false,
          "headline": "docs: calibration is per-vault and self-derived, never hardcoded (pri…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T16:00:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ae6b626932b847d99b53f56b05e018bb382400d6",
          "body": "…ersession substitutes atomically under the caller's view (#701)\n\n* fix(engine): factor the shared visibility gate; supersession substitutions become atomic and gated\n\nPost-pipeline injectors have re-opened phase-6 holes three times (#654 meta\nfilters; the #570 review rounds: trust, then lease and v\n[…]\nly.\n\nCo-authored-by: isaac-ranger <isaac-ranger@users.noreply.github.com>\n\n---------\n\nCo-authored-by: MJ Bonanno <mj@scrypster.com>\nCo-authored-by: isaac-ranger <isaac-ranger@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(engine): shared visibility gate for post-pipeline injections; sup…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-29T14:37:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bd6c08f56a34bc3d80e6f8a09b3e1e52b6d36b8d",
          "body": "…threshold default (#704) (#710)\n\nRecall-mode presets were a SECOND threshold decider after R1's COG-6 coerce:\ntransports stamped ACT-R-calibrated preset thresholds (semantic 0.3, recent\n0.2, deep 0.1) into the request, and the engine's vault-default recall_mode\nblock overrode the leave-0-for-rrf de\n[…]\ne overlay: recency-polluted results);\nACT-R controls byte-identical; DisableHops guard RED-verified; transport\nwire pins for MCP and REST; COG-6 amended.\n\nCo-authored-by: Cairn <cairn@strixhalo.local>",
          "is_bot": false,
          "headline": "fix(recall): recall-mode presets no longer bypass the rrf mode-aware …",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-29T14:11:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fd9dddb633724c132312b86135402010e629a053",
          "body": "…colleague #711) (#715)\n\n* fix(recall): calibrated FTS relevance replaces tanh(raw BM25) — real abstention (#711)\n\nRoot cause: full_text_relevance was math.Tanh(raw unbounded BM25) at three\nsites in internal/engine/activation/engine.go (computeComponents, computeACTR,\nthe RRF-path reporting site). R\n[…]\ny guarantees [0,1], so revert to the exact state the\nrefute verdict STANDS covered rather than change core-recall tests to\naccommodate optional insurance. Design doc from the prior commit is retained.",
          "is_bot": false,
          "headline": "fix(recall): calibrated FTS relevance → recall can abstain (reliable-…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T13:50:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cdbe355a9592729d5b5d650231916ea802652b05",
          "body": "…ype/different-target shape (ranking-honesty R2) (#707)\n\n* fix(contradict): stop fabricating contradictions from same-RelType/different-target writes\n\ninternal/cognitive/contradict.go's processBatch synthesized a 0.8-severity\ncontradiction for ANY two same-RelType associations from one engram to two\n[…]\nams is not reversed (BayesianUpdate not safely invertible\n  without the un-persisted pre-penalty value), and why auto-cleanup of stale\n  0x0A markers is unsafe (no severity/type/provenance persisted).",
          "is_bot": false,
          "headline": "fix(contradict): stop fabricating contradictions from same-relation-t…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T03:33:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10ec9293ce36d04c1f34b22518102baac1fd3607",
          "body": "…l (ranking-honesty R1) (#705)\n\n* fix(recall): make the default recall threshold mode-aware (RRF vaults were silently empty)\n\nactivateCore coerced Threshold==0 -> 0.1 on every path BEFORE\nactivation.Run() ever saw the request, making #590's mode-aware default\n(rrf -> 0.001) dead code on every produc\n[…]\n; Go sends 0 (unset). ACT-R\n   users are unaffected (0 → engine coerce → 0.1, identical); rrf users now get\n   0.001.\n\nAlso: COG-18 pin citation clarified (test lives in engine_rrf_threshold_test.go).",
          "is_bot": false,
          "headline": "fix(recall): RRF vaults no longer return silently-empty default recal…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T03:07:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e6c05d3a7e6236e62a4fac8dffcb101a66103a39",
          "body": "…n focality (#703)\n\nNoticesForRecall computed focality from ALL recall results, including an\narmed intention's own engram — a TypeGoal engram that carries its own cue\nas a first-class entity (Intend writes the cue as an inline entity). That\nlet an intention self-satisfy its own focality two ways: (a\n[…]\norage/mcp unit+race suites green). Needs a follow-up:\neither make the fixture's genuine memories unambiguously discriminative,\nor make topIdx tie-break deterministic and load-independent.\n\nCloses #693",
          "is_bot": false,
          "headline": "fix(prospective): exclude an armed intention's own engram from its ow…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T02:34:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e9cd4e19fa41c46c474cdd2a3d9b11abc4353a60",
          "body": "…cores (#698) (#699)\n\n* fix(recall): deterministic tie-break in final result ordering\n\nsort.Slice orders phase6Score's final scored candidates at every scoring\nmode (RRF, CGDN, ACT-R, legacy weighted-sum), comparing only on the\n`final` score. sort.Slice is NOT a stable sort and none of these sites\nh\n[…]\ne\noutput is independent of map order. RED-checked: reverting the comparator\nmakes TestEntityBoost_TiedInjectionsDeterministic fail with the exact\n\"order changed across identical calls\" nondeterminism.",
          "is_bot": false,
          "headline": "fix(recall): deterministic top-N ordering — ULID tie-break at equal s…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T02:10:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "af4ffff000988a6b7a2964ca28e165983f5582b4",
          "body": "…697)\n\nTriggerWorker.vaultWS() reconstructed the Pebble workspace prefix used\nfor store lookups from only the 4-byte routing VaultID, zeroing bytes\n4-7. Real vault prefixes are the full 8-byte SipHash output of\nkeys.VaultPrefix, so any vault whose prefix has non-zero trailing\nbytes caused handleCogn\n[…]\nhas a\nnon-zero tail, writes an engram under it, and asserts a\nThreshold-crossed push is delivered; against the unfixed code it\nfailed because the truncated lookup key missed the metadata.\n\nCloses #692",
          "is_bot": false,
          "headline": "fix(trigger): carry the full 8-byte vault prefix on trigger events (#…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T01:39:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9b81c1e5bf40196fd59a3e7543d16f8cec5cddae",
          "body": "…over MCP (#694)\n\nProspective memory: memory that speaks first, without ever polling.\n\n- storage: new 0x2D armed-intention index (ProspectiveIntent; the design\n  doc's 0x2C was taken by RawTagRange first). One key per (intention, cue\n  entity): ArmIntention / ScanArmedForEntity / MarkIntentionFired \n[…]\nuninn_decide;\nworking-buffer focal cues; semantic (non-entity) cues; notices on\nremember_batch/where_left_off/find_by_entity; contradiction auto-clear;\ngRPC/MBP intention parity; export/clone of 0x2D.",
          "is_bot": false,
          "headline": "feat(prospective): THE PUSH increment 1 — armed intentions + notices …",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T01:19:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "28345a98aae4cde6fb18a00fa4e088b781e12f16",
          "body": "…rd (#570 follow-up) (#691)\n\nPR #570's entity-boost injection guard fails closed when the lease read\nerrors, but had no covering test since the real store only errors on a\ngenuine read/decode failure, never a missing lease. Adds a minimal\nfault-injection seam (getLeaseForInjection, a package-level func var\ndefaulting to the real GetLease call) so a test can force a lease-read\nerror and assert the candidate is not injected.",
          "is_bot": false,
          "headline": "test(engine): cover entity-boost injection lease-read fail-closed gua…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T00:24:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d31f58de23bfef6b8f904dd35ab6d48bd88b52d7",
          "body": "…first build, vet, adversarial refute, measure, land) (#690)\n\nPersists the loop we've been running so it's repeatable in a new session without\nprompting: measure-don't-claim, defer-if-buggy, honest negative results, Tier-3\nOpus refute, non-gameable acceptance gates, contributor-PR handling, labs-vs-live\ndeploy discipline. Complements review-pr and merge-orchestration.",
          "is_bot": false,
          "headline": "docs(skill): add /increment — the repeatable build loop (design, RED-…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-29T00:11:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24f3b464da916861111b67fb228afd5a1a610d5c",
          "body": "…atomic, funded, watermarked (#681)\n\n* fix(engine): carry entity links and relationships across evolve, funding the mention ledgers\n\nFixes #622. Evolve inherited Concept and Tags but wrote no 0x20/0x23 entity\nlinks and no 0x21/0x26 relationship records for the successor, so every\nevolved memory sile\n[…]\nees (protected survive,\nprunable pruned, WARN fires) instead of exact counts. 0/12 flakes after.\n\n---------\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: MJ Bonanno <mj@scrypster.com>",
          "is_bot": false,
          "headline": "fix(engine,storage): startup repair for evolve-stripped successors — …",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-28T23:38:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59f2959c6d603ae52c39335103ae54dc862b37f5",
          "body": "…arried set (#680)\n\n* fix(engine): carry entity links and relationships across evolve, funding the mention ledgers\n\nFixes #622. Evolve inherited Concept and Tags but wrote no 0x20/0x23 entity\nlinks and no 0x21/0x26 relationship records for the successor, so every\nevolved memory silently vanished fro\n[…]\nions cannot pass vacuously), and the inline evolve yields the\nreplacement set only, not a merge.\n\n---------\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: MJ Bonanno <mj@scrypster.com>",
          "is_bot": false,
          "headline": "feat(mcp,engine): optional inline entities on evolve, replacing the c…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-28T22:56:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dd640dc0b9ee9ed633963489dfef0321ea7274b0",
          "body": "* feat(cognition): importance dimension + two-strength decay (increment 1)\n\nImportance is the caller-asserted priority axis (0-1), orthogonal to\nConfidence (truth) and AccessCount (use). Increment 1 of the two-strength\n(Bjork storage/retrieval strength) decay design.\n\nWrite path:\n- mbp.WriteRequest.\n[…]\nCT-R vs weighted_sum vs RRF)\nand must not lower fresh-memory B(M). Also deferred: gRPC proto field and\nweb-console importance display (valid-time #688 set the identical\ngRPC-proto-deferred precedent).",
          "is_bot": false,
          "headline": "feat(cognition): importance dimension + pruning protection (#689)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-28T22:23:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ec058c53577ebc67d7c78f02fdf19ba8d164e5d9",
          "body": "…tion on threshold (#570)\n\n* fix(engine): rarity-weight entity boost, cap accumulation, gate injections on threshold and meta filters, vault-local n\n\nSquash-rebase of the three reviewed commits (416bbc8, 17e4836, d9c1449)\nonto current develop, reconciling with the reflex stack (#685/#688):\n\n- applyE\n[…]\n recall,\nsilent admission via entity boost. Skipping the injection is the safe\ndegrade; a missing lease record is not an error on either path.\n\n---------\n\nCo-authored-by: Cairn <cairn@strixhalo.local>",
          "is_bot": false,
          "headline": "fix(engine): rarity-weight entity boost, cap accumulation, gate injec…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-28T22:14:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fb77813d8dad4ff0347a742975279c2086ff2723",
          "body": "…ware recall, valid-time (#688)\n\n* feat(auth): append-only credential mode (read + create-new; no evolve/forget)\n\nAdds auth.ModeAppend: a credential that can recall and remember/remember_batch\nbut is refused any operation that modifies or deletes an existing engram\n(evolve, forget, trust, merge, lin\n[…]\n fact true for a past interval,\ninvalidated later) — real MCP usage invalidates a fact from an earlier session,\nso not_true_since > CreatedAt.\n\n-race clean (engine/storage/mcp); build/vet/gofmt clean.",
          "is_bot": false,
          "headline": "Land reflex stack: append-mode, tag_filter, dedup-guard, supersedes-a…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-28T20:59:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8f8366bb31db898599553306f857d41b00dca3df",
          "body": "…eminders, trust tiering (S0-S8) (#685)\n\n* feat(activation): tag-range index + threshold bypass for filter matches (S1)\n\nAn explicit tag filter defines the candidate SET; the relevance threshold\nonly RANKS within it. Add a RawTagRange (0x2B) index so tag_prefix range\nfilters seed candidates, and byp\n[…]\n(TestEntityBoost_BelowThresholdSeedDoesNotSpread). Interacts with #570's\n  entity-boost rework, which rebases on top.\n\nFull build/vet/gofmt clean; -race green across engine/storage/mcp/auth/transport.",
          "is_bot": false,
          "headline": "feat(reflex): session-start orientation primitives — reinforcement, r…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-28T13:42:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "02890fb6fbef2f9c53a352ea6322ecd4784160d1",
          "body": "…ing the mention ledgers (#646)\n\nFixes #622. Evolve inherited Concept and Tags but wrote no 0x20/0x23 entity\nlinks and no 0x21/0x26 relationship records for the successor, so every\nevolved memory silently vanished from FindByEntity and entity scoring from\nthe moment it was evolved.\n\nEvolve now reads\n[…]\nhe predecessor returns 1 with the pair key still present. Carry tests fail on\nthe pre-fix Evolve; the conservation test also fails with funding disabled.\n\nCo-authored-by: Cairn <cairn@strixhalo.local>",
          "is_bot": false,
          "headline": "fix(engine): carry entity links and relationships across evolve, fund…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-28T13:14:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d5f36e395b1960a70db0d83c6c19866725fb7df0",
          "body": "web/ has carried vitest suites for a while — time-utils, plugin-config-utils,\nand worker-status-utils arriving in #645 — that nothing ever executed. CI runs\n`npm run test:e2e` for Playwright but never plain `npm test`, so the JS unit\ncoverage was decorative. It surfaced while reviewing #645, whose n\n[…]\n drift-and-obligations.md, which had itself\ndrifted — it still described govulncheck as unpinned and flagged the Windows\nwrong-model issue, both fixed in #666, and predated the node-sdk job from #672.",
          "is_bot": false,
          "headline": "ci: run the web console's vitest suite (#679)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T21:00:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ac34f54c5c3dccdb18db6f62d5860e6043c96cec",
          "body": "Co-authored-by: ferkans-amir <amir.rezaei@tu-berlin.de>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: fix Title Case heading capitalization in CONTRIBUTING.md (#652)",
          "author_name": "amir-rezaei",
          "author_login": "amir-rezaei",
          "committed_at": "2026-07-27T19:59:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ea3771b4e26ed2949159393e1ab2072f0dc4b4f",
          "body": "Evolve's successor constructor explicitly inherited Concept and Tags but never\nset MemoryType or TypeLabel. Evolve exposes no parameter for either, so they\ntook the Go zero value: MemoryType became Fact. A stored decision or procedure\nwas silently relabelled a fact, and the loss compounded at every \n[…]\nsor's Summary is empty is a regression guard against\nre-introducing the inheritance; it does not fail without the fix.\n\nFixes #653\n\nCo-authored-by: isaac-ranger <isaac-ranger@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(engine): inherit MemoryType and TypeLabel across evolve (#655)",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-27T19:25:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1af77be6b56fee1e932ff9a17d47ccf7f3442cf0",
          "body": "… (#678)\n\nThe presets are hand-duplicated between the Go table and four separate places\nin web/ (_plasticityData, _plasticityColors, plasticityPresetDescription, and\nthe preset cards in index.html). Nothing generates one from the other and\nnothing checked them — drift-and-obligations.md tracks it as\n[…]\nr\nsites, and a preset added to the UI is reported as undefined in Go. Extraction\nfailure is a hard error rather than a silent pass, so the test cannot become\nvacuous if the web files are restructured.",
          "is_bot": false,
          "headline": "test(auth): pin plasticity preset names across Go and the web console…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T19:06:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "89d69980b2d20c55b85a57ae751a9981b0df74a7",
          "body": "…es (#677)\n\nThe live-drift list in drift-and-obligations.md flagged two wrong comments and\ntwo items that are already fixed. Verified each against the code:\n\n- middleware.go said write-only API keys \"cannot authenticate to MCP at all\".\n  False: internal/mcp/server.go switches on ModeObserve/ModeWrit\n[…]\ndoc-drift entry itself are marked fixed in the\n  live-drift list; the pin landed in #666.\n\nComments only — no behaviour change. Build, vet, gofmt clean; internal/auth and\ninternal/mcp pass with -race.",
          "is_bot": false,
          "headline": "docs: correct two stale code comments and close out fixed drift entri…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T18:56:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "415179a3729ba98b77161870950de5fd002a3edf",
          "body": "awaitFTS was named for a wait it did not perform: it stopped the FTS worker,\nrelied on Stop()'s drain as an implicit flush, and installed a replacement.\nThat was indirect, discarded a live worker pool 52 times per engine suite run,\nand was silently wrong until #675 — a Stop() racing worker startup s\n[…]\n.., internal/storage, internal/mcp all pass with -race.\n  - Engine suite runtime is unchanged (31.2s vs ~33.8s baseline) — Flush costs\n    less than tearing down and rebuilding a worker pool 52 times.",
          "is_bot": false,
          "headline": "refactor(fts): add Worker.Flush and make awaitFTS actually await (#676)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T18:46:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8ac93e9bca63e717e9935aa72f1fb6baf8fd8007",
          "body": "…ed (#675)\n\nWorker.Stop() is documented to \"drain the queue and shut down all worker\ngoroutines\", but it did not always drain. Stop sets `stopped` and only then\ncloses stopCh, while runLoop checked `!stopped` at the *top* of its loop:\n\n    for !w.stopped.Load() {\n        ... w.run() ...\n    }\n\nA gor\n[…]\n with -race.\n\nThis is not test-only. Any Stop() racing worker startup could lose queued index\njobs in production — the same class of silently-wrong result the project treats\nas its worst failure mode.",
          "is_bot": false,
          "headline": "fix(fts): Stop() must drain the queue even before workers are schedul…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T18:19:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f1fee4da908afbda477d19b3ab283a9a68a69e1c",
          "body": "Every action in every workflow targeted Node 20 and was being force-run on\nNode 24 by the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 env in ci.yml. That shim was\nadded deliberately ahead of the forced migration, but it only silenced the\nwarning in ci.yml — release.yml, publish-sdk.yml, and docker-publish.ym\n[…]\natched.\n\nThe FORCE env is removed since nothing needs it now.\n\nNote: these majors require Actions Runner >= 2.327.1. GitHub-hosted runners are\nwell past that; a self-hosted runner would need checking.",
          "is_bot": false,
          "headline": "ci: move GitHub Actions to their Node 24 runtimes (#674)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T17:00:52Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4ebeadd429202d1d7a2caf28fe75231bce6f92b5",
          "body": "…ts (#673)\n\n.gitignore listed .claude/maintainer/, .claude/skills/triage-issue/, and\n.claude/skills/review-pr/, but not .claude/skills/merge-orchestration/. That\nskill was covered only by .git/info/exclude, which is local and does not\nsurvive a fresh clone — so a re-cloned working copy would have of\n[…]\nn output and screenshots at the workspace root rather than in\nany project, but nothing enforces that from inside this repo.\n\nNo behaviour change for contributors: none of these paths exist in a clone.",
          "is_bot": false,
          "headline": "chore: ignore the third maintainer-private skill, and scratch artifac…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T16:37:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "317054b57626de1bf38f2bdc7b83e8ed93d9f8b4",
          "body": "* fix(sdk/node): patch transitive vite, postcss, and esbuild advisories\n\nCloses the last nine open Dependabot alerts, all of them transitive under\nvitest — sdk/node declares only typescript, vitest, and msw.\n\n  vite     7.3.1  → 7.3.6   (3 high, 1 medium: path traversal in optimized-dep\n            \n[…]\nhich keeps the pipeline inside its ~10 minute budget.\n\nFound while patching the sdk/node advisories in the previous commit: that\nlockfile change would otherwise have landed with no CI coverage at all.",
          "is_bot": false,
          "headline": "Clear the last 9 Dependabot alerts, and gate the Node SDK in CI (#672)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T16:13:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7a23665e4e2d439044063de3ba10fc5cf1b9d317",
          "body": "* build(web): migrate Tailwind v3 to v4 (#662)\n\nDependabot's tailwindcss bump (#662) broke the web build, which in turn failed\nthe Go and Windows CI jobs since both run `npm run build`. v4 is a major with a\nmigration, not a version bump: tailwindcss can no longer be used directly as a\nPostCSS plugin\n[…]\n test:e2e`, never vitest for\nweb/. Locally it made a green suite look broken, which is how real failures get\nignored.\n\nNow 2 files, 33 tests, no failures. Playwright still runs via `npm run test:e2e`.",
          "is_bot": false,
          "headline": "Migrate Tailwind v3 → v4, unblocking #662 (#671)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T15:52:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "72822c0b2f2ae65b0900c9bb88a21846b53d1464",
          "body": "Bumps [golang.org/x/net](https://github.com/golang/net) from 0.54.0 to 0.55.0.\n- [Commits](https://github.com/golang/net/compare/v0.54.0...v0.55.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/net\n  dependency-version: 0.55.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 (#669)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T15:39:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a14cd1cc4b01e05d3f5f47b7082927befaedd3a2",
          "body": "Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.79.3 to 1.82.1.\n- [Release notes](https://github.com/grpc/grpc-go/releases)\n- [Commits](https://github.com/grpc/grpc-go/compare/v1.79.3...v1.82.1)\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/grpc\n  dependency-version: 1.82.1\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): bump google.golang.org/grpc from 1.79.3 to 1.82.1 (#668)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T15:29:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38e08aba7b8a37e177d158747fe12a0d5ed25dc8",
          "body": "Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.5.\n- [Release notes](https://github.com/micromatch/picomatch/releases)\n- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.\n[…]\ntch\n  dependency-version: 4.0.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps-dev): bump picomatch from 4.0.3 to 4.0.5 in /sdk/node (#670)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T15:24:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d337788233de6a54f314e963857940483aa43550",
          "body": "Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.2.4 to 3.2.6.\n- [Release notes](https://github.com/vitest-dev/vitest/releases)\n- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)\n- [Commits](https://github.com/vitest-dev/vitest/commits\n[…]\nndency-version: 3.2.6\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps-dev): bump vitest from 3.2.4 to 3.2.6 in /sdk/node (#665)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T15:22:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "feab297a354fbf610332b08344765184f844e17a",
          "body": "Removes [esbuild](https://github.com/evanw/esbuild). It's no longer used after updating ancestor dependencies [esbuild](https://github.com/evanw/esbuild), [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). Thes\n[…]\ndency-version: 4.1.10\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump esbuild, vite and vitest in /web (#664)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T15:22:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c0e28610498c400abb2c039b96e96c978f061198",
          "body": "Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.50.0 to 0.52.0.\n- [Commits](https://github.com/golang/crypto/compare/v0.50.0...v0.52.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/crypto\n  dependency-version: 0.52.0\n  dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): bump golang.org/x/crypto from 0.50.0 to 0.52.0 (#667)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T15:20:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80983104d39a78ff0474737add28dcd8a29def6d",
          "body": "Close three documented gaps: upgrade checksums (#600), Windows CI model drift, and drift guards that never ran",
          "is_bot": false,
          "headline": "Merge pull request #666 from scrypster/feat/drift-guard-hooks",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T15:08:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1e6adef8561068b9667fde3e6f42812a85906734",
          "body": "…heck\n\nci.yml's Windows job fetched all-MiniLM-L6-v2 while release.yml ships\nbge-small-en-v1.5 for windows/amd64, so the Windows gate was green against a\nmodel no user ever runs. Both are 384-dimensional, so no dimension guard\ntripped and nothing failed. That is why it survived: the only symptom was\n[…]\nl three YAML files parse, both HuggingFace URLs resolve, and\ngolang.org/x/vuln@v1.6.0 exists on the module proxy. Every embed-asset cache\nkey across ci.yml and release.yml now names bge-small-en-v1.5.",
          "is_bot": false,
          "headline": "ci: test Windows against the model it actually ships, and pin govulnc…",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T14:44:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aed3aec4d25bb765a7a7d372eab69a07bd78f3a6",
          "body": "`muninn upgrade` downloaded a release archive and installed it without ever\nchecking it against the `checksums.txt` that release.yml already publishes.\ninstall.sh has verified checksums all along, so the curl|sh path was covered\nand the self-update path was not.\n\nThe ordering made it worse than a mi\n[…]\ned: new tests fail without the fix (compile error), pass with it; the\ndrain test fails when the drain is removed and passes when restored; full\ncmd/muninn suite green under -race; gofmt and vet clean.",
          "is_bot": false,
          "headline": "fix(cli): verify release checksums before installing an upgrade (#600)",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T14:41:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22dc4620ffff23300a2bf1c0a20d76ef04bceaf5",
          "body": "…e weakness map\n\nUntil now the only way to report a vulnerability was a public GitHub issue:\nno SECURITY.md, no published contact, and GitHub's private vulnerability\nreporting was disabled. Full disclosure was the default path, by construction.\n\nPrivate vulnerability reporting and Dependabot securit\n[…]\nocs in them were tracked. Both describe features\nthat shipped (association archiving, the Playwright E2E suite), so the comment\nnow says what is actually true instead of the rule quietly not applying.",
          "is_bot": false,
          "headline": "docs(security): add a security policy and stop signposting the privat…",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T14:17:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aa5316b5b8af75e0e04bfe5e355ec3b9295b4248",
          "body": "They build ./cmd/eval-bible/... and run scripts/eval-bible-setup.sh, neither\nof which ships in the repo (cmd/eval*/ and scripts/eval-* are gitignored as\ninternal tooling). From a fresh clone all six targets fail. Advertising a\ntarget that cannot run is worse than not listing it.\n\nRestore them alongside the harness if it is ever published.",
          "is_bot": false,
          "headline": "build: drop the eval-bible targets from the public Makefile",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T14:03:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e44a801a9f7e34cedae2ca86bafb574ab3d400cc",
          "body": "The two .claude/hookify.*.local.md rule files had never fired. The hookify\nplugin is not installed and the repo has no settings.json, so nothing ever\nexecuted them. drift-and-obligations.md #3 cited the sdk-types file as its\nonly protection against SDK drift, which meant that obligation was unguarde\n[…]\n and would have\n  missed any new handler file.\n- CLAUDE.md section 3 told you to build with `go build ./...`, contradicting\n  obligation #9 and every CI step, which use `-tags localassets`. Corrected.",
          "is_bot": false,
          "headline": "chore(tooling): make the drift guards actually run",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-27T14:03:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "df93f5d869f8a8340978a18456863bfe25f082cb",
          "body": "…(#559) (#625)\n\n* feat(proto): add AdjustConfidence RPC (#559)\n\n* feat(storage): atomic UpdateConfidenceWithContradiction (#559)\n\n* feat(engine): AdjustConfidence mirrors OnFound (#559)\n\n* feat(grpc): wire AdjustConfidence RPC (#559)\n\n* fix(grpc): map storage.ErrNotFound to NotFound in AdjustConfide\n[…]\n, the\nabsolute-path analogue of the delta-path resurrection test: it fails\n~reliably under -race -count=3 without the lock and passes with it.\n\n---------\n\nCo-authored-by: MJ Bonanno <mj@scrypster.com>",
          "is_bot": false,
          "headline": "feat(grpc,engine): AdjustConfidence RPC with contradiction signaling …",
          "author_name": "Stephen Eaton",
          "author_login": "madeinoz67",
          "committed_at": "2026-07-22T15:04:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d9bef43566d6963cdf9252a74230f4fe7296c244",
          "body": "* fix(enrich): preserve transient provider failures\n\n* fix(enrich): classify content 4xx as permanent per-engram to prevent retroactive wedge (#587)\n\n---------\n\nCo-authored-by: MJ Bonanno <mj@scrypster.com>",
          "is_bot": false,
          "headline": "fix(enrich): preserve transient provider failures (#643)",
          "author_name": "Derek Pearson",
          "author_login": "dpearson2699",
          "committed_at": "2026-07-22T15:03:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e7652a956a21ee0cf2a7830e55a191ee38bacef",
          "body": "govulncheck flagged GO-2026-5970 (infinite loop on invalid input in\ngolang.org/x/text < v0.39.0), reachable via keys.NormalizeEntityName ->\nnorm.Form.String. Bump x/text v0.36.0 -> v0.39.0 (go mod tidy pulls a\ntransitive x/sync v0.20.0 -> v0.21.0). govulncheck now reports no called\nvulnerabilities; build and storage/keys/query suites green.",
          "is_bot": false,
          "headline": "chore(deps): bump golang.org/x/text to v0.39.0 for GO-2026-5970 (#649)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-22T14:54:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5df82d6cfafe6caaebe755e7c3372eb4f515f5ca",
          "body": "chore: reconcile main into develop (close the changelog merge-back gap)",
          "is_bot": false,
          "headline": "Merge pull request #637 from scrypster/chore/reconcile-main-into-develop",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-20T22:07:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d72e89203ffe35461ded05fd932c200a6a7e3b17",
          "body": "…into-develop",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into chore/reconcile-main-…",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-20T21:54:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e60f5bdbd358b6b5cf385b75cb09b60815f41e7b",
          "body": "- Restore the [0.8.0] section that never merged back to develop, with the\n  originally-tagged wording, and remove the false entity-boost recall-flood\n  entry (#569 did not make the 0.8.0 cut; PR #570 is still open) — resolves\n  #602. Add the missed Google-enrichment truncation fix and file the Go 1.\n[…]\neshold (#590), DeleteEngram race (#594).\n\nNo breaking changes: verified no proto/REST/CLI/wire removals or renames since\nv0.8.0. Every entry maps to a merged PR (independently verified).\n\nCloses #602.",
          "is_bot": false,
          "headline": "docs(changelog): reconcile 0.8.0 and add 0.9.0 (#635)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-20T21:52:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "979b0f742f61ff39bc1c454674dbde7bb714799a",
          "body": "Post-merge Opus audits of #617 (SSE mk_ re-validation) and #618 (auth\nprefix relocation) confirmed both are safe as merged, but surfaced that\nthese merges left the source-of-truth docs stale. Correcting:\n\n- SEC-10: the mk_ SSE re-validation gap is CLOSED (#617). Both cap_ and\n  mk_ cached SSE creden\n[…]\ness tests (no storageMaxPrefix).\n- 0x0C tag index: no longer dead weight, #619 wired ListByTagInRange /\n  ListByTagsAllInRange as readers on the tag-scoped recall path.\n\nDocs-only. No behavior change.",
          "is_bot": false,
          "headline": "docs: sync internals after #617, #618, #619 merged (#633)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-20T15:03:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "eb929604ec156c659f639031e4b0439f4a694abe",
          "body": "…(#610) (#613)\n\nA thin client for POST /api/engrams, the online counterpart of the\noffline-only `muninn exec remember`:\n\n    muninn remember --concept \"...\" (--content \"...\" | --content-file <path>)\n        [--summary ...] [--tags a,b] [--entities Name:type,...]\n        [--vault NAME] [--op-id KEY] \n[…]\nore defaults to a sibling file ~/.muninn/api.key with the\nsame 0600 handling rather than reusing mcp.token; the 401 hint text\nspells out the distinction.\n\nCo-authored-by: Cairn <cairn@strixhalo.local>",
          "is_bot": false,
          "headline": "feat(cli): `muninn remember` — store a memory via the running daemon …",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-20T14:59:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d657db0021eea7a384299ea0059ae0f25b25c88e",
          "body": "…d_by_entity (#616)\n\n* fix(mcp): expose stored memory type on read/recall/where_left_off/find_by_entity\n\nThe engine stores MemoryType and TypeLabel with every engram and the write\npath binds them (muninn_remember 'type'), but no MCP read surface returned\nthem: the mcp.Memory struct had no type field\n[…]\n8 enums). Verified 1:1 against the struct's json tags in both\ndirections.\n\n---------\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: Isaac Ranger <isaac-ranger@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(mcp): expose stored memory type on read/recall/where_left_off/fin…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-20T14:59:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ff4a43425c24199c7bb8da64bc98492705e00930",
          "body": "Adds docs/internals/review-rubric.md, the gated protocol behind the\ncode-reviewer agent, designed so a review is trustworthy regardless of\nhow strong the model running it is. Judgment is offloaded to mechanical\nevidence (compiler, race detector, RED-sanity revert-and-observe) and to\nobjective routin\n[…]\n issue it missed (a type-alias\npropagation) is now a mechanical grep in G5 so a weak model catches it\ndeterministically. Wires code-reviewer.md to follow the rubric as hard\ngates bounded by the floor.",
          "is_bot": false,
          "headline": "docs: add the review rubric that makes AI code review dependable (#624)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-20T14:16:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c05b35b1e70ac55594793610e73d696b883c2ea4",
          "body": "…ts (#574)\n\n* feat(storage,engine): persist per-recall surfaced sets as recall events (#573)\n\nEvery recall builds the set of surfaced engrams but discards it after\nthe Hebbian worker folds it into aggregate co-activation weights\n(hebbian.go: \"reserved for future persistence\"). That per-event set is\n\n[…]\n(now in the tree, kept in ClearVault's\nlist) and 0x29 remaining free for recall events.\n\n---------\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(storage,engine): persist per-recall surfaced sets as recall even…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-20T14:10:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9868c625047b5c3580ea8199ac4e2cd989022e8b",
          "body": "…#607) (#619)\n\n* fix(storage): tag-index scans for tag-scoped recall (newest-first + K-way AND)\n\nTwo changes to the tag index (0x0C) so tag-filtered recall can seed\ncandidates from it instead of relying on FTS/HNSW/decay pools (#607):\n\n- ListByTagInRange now iterates newest-first (Last->Prev) so a t\n[…]\ne ULIDs from CreatedAt (as PebbleStore.WriteEngram does)\nso their tag/time index ordering matches production.\n\n---------\n\nCo-authored-by: ad-astra-bot <263242209+ad-astra-bot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(recall): seed tag-index candidates for tags_all/tags_any recall (…",
          "author_name": "ad-astra-bot",
          "author_login": "ad-astra-bot",
          "committed_at": "2026-07-18T22:54:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c5465d503a33edf3a04a4511314b872307e86638",
          "body": "…ation (#611) (#618)\n\n* feat(prefix): cross-package prefix registry (source of truth) (#611)\n\n* fix(auth): relocate auth prefixes 0x11–0x14 → 0x42–0x45 (#611)\n\n* refactor(storage/keys): source prefix bytes from the registry (#611)\n\n* refactor(storage): replace ALL raw prefix-byte literals with regis\n[…]\nuthKey length-collision orphan + recovery refuse-newer (#611)\n\n* fix(migrate): use exact value-length gate in isAuthKey + correct comment (#611)\n\n* style: gofmt prefix.go + migrate.go (CI gate) (#611)",
          "is_bot": false,
          "headline": "fix(storage/auth): relocate auth prefixes + prefix registry + v3 migr…",
          "author_name": "Stephen Eaton",
          "author_login": "madeinoz67",
          "committed_at": "2026-07-18T22:53:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b8b273df49efef6024080df5fb7b355f7c7acb69",
          "body": "…val (RFC #597 inc 3) (#617)\n\n* test(mcp): cover workflow-vault 'already exists' rejection (#614)\n\nfakeEngine.VaultNameExists becomes map-backed (nil-safe) so the handler's\nexistence-guard branch is reachable from tests; new\nTestCreateWorkflowVault_RejectsExistingVault asserts the -32602 rejection.\n\n[…]\ns connect-once vault binding). Removes the\ndead code + its tests; PRESERVES the 6 TestResolveVault_* tests and the live\nmcpSessionHeader constant. Revival (if ever needed) is preserved in git history.",
          "is_bot": false,
          "headline": "fix(mcp): SSE mk_ re-validation + vault-exists test + session.go remo…",
          "author_name": "Stephen Eaton",
          "author_login": "madeinoz67",
          "committed_at": "2026-07-18T22:51:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "30d1c527e1f59f703495b924e07b07776c2f43d6",
          "body": "…in prune, repair small orphan sets on load (#620) (#621)\n\nTwo-part fix for incrementally-inserted nodes accumulating zero in-edges\nand becoming permanently unreachable (recall silently misses them while\nFTS and status stay green):\n\n* Insert: pruneNeighbors now always retains the just-appended edge.\n[…]\nn-disk orphan set that must come back reachable —\nincluding on a second load (repair persistence).\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(hnsw): keep late inserts reachable — protect the fresh back-edge …",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-18T22:45:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "839682b5ad9caeb1e1ed66ed0120cf9024da34bd",
          "body": "…w agent (#623)\n\nAdds a repo-resident guardrail layer so contributions stay grounded in\nMuninnDB's core principles and invariants as the project grows.\n\n- CLAUDE.md — the constitution: what MuninnDB is, the core principles\n  (each traced to the PR/issue that established it), the verify-don't-assume\n\n[…]\ne review; an independent\nadversarial pass corrected one wrong invariant (the ACT-R content gate is\nweight-driven, defaults 0.35/0.25 — not a fixed constant) and hardened the\nreview agent's guardrails.",
          "is_bot": false,
          "headline": "docs: add AI-agent working guide, internals reference, and code-revie…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-18T22:11:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d7c4a4aa2c66e2933643519926227cad9a15b3bb",
          "body": "…tion header override (#588) (#604)\n\n* feat(mcp): toolset profiles for tools/list — trim per-session schema overhead (#588)\n\nThe MCP transport advertises all 39 tools on every tools/list: ~41KB of\nschema (~10.3k tokens) loaded into every bounded-context MCP client at\nconnect, used or not. In our dep\n[…]\n@anthropic.com>\n\n---------\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(mcp): toolset profiles for tools/list — env default + per-connec…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-16T17:41:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ccefd53dc8ea9341b4142752bafe0bac42e2aac1",
          "body": "…) (#612)\n\n* feat(auth): add cap_ capability credential primitive (RFC #597)\n\nMirrors APIKey/keys_store.go with new Pebble prefixes 0x15/0x16.\nCapabilities are scoped (vault+mode), revocable, and require an ExpiresAt\n(bounded lifetime). Distinct credential type from mk_ keys — the foundation\nfor mun\n[…]\nlt tool legitimately returns -32001 'agent vault creation\ndisabled' under the smoke daemon's static-token + opt-in-off setup. Switch to\nmcpToolNoFail and assert the expected opt-in-disabled rejection.",
          "is_bot": false,
          "headline": "feat(mcp): capability tokens + muninn_create_workflow_vault (RFC #597…",
          "author_name": "Stephen Eaton",
          "author_login": "madeinoz67",
          "committed_at": "2026-07-16T14:34:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4b09b33202adfd9faa90f751d917b451d1d571da",
          "body": "… Scoring in UI (#590)\n\nmuninndb-8h7: Run() now applies a mode-appropriate default threshold only\non the no-threshold path (RRF=0.001, ACT-R=0.05) and never tramples an\nexplicit user value. Adds a 'Search Scoring' (scoring_fusion) card selector\nto the vault Plasticity panel, wired through loadPlasti\n[…]\nity/\nonPlasticityPresetChange.\n\nCo-authored-by: Awesome <awesome@ai.com>\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(activation): preserve explicit threshold under RRF; expose Search…",
          "author_name": "jiessie",
          "author_login": "gitssie",
          "committed_at": "2026-07-15T02:27:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "29faa922b8194430e6ec2713d66039f37a8c80b2",
          "body": "… (#594)\n\nDeleteEngram did not take the per-engram casLocks stripe lock that\nCompareAndSet holds across its read-compare-write. A concurrent CAS\ncould read the engram, DeleteEngram could commit its delete batch, and\nthe CAS's later UpdateMetadata/putLease would then land after the delete\n— resurrect\n[…]\na -race resurrection-invariant test.\n\nFixes #586\n\nCo-authored-by: ad-astra-bot <263242209+ad-astra-bot@users.noreply.github.com>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(storage): serialize DeleteEngram with CompareAndSet's stripe lock…",
          "author_name": "ad-astra-bot",
          "author_login": "ad-astra-bot",
          "committed_at": "2026-07-15T02:27:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a455c6f423388fdc1b9d4c7fba5292700aa6f503",
          "body": "…l bge-small-en-v1.5 (#601) (#603)\n\nThe four darwin/linux matrix cache_key literals in release.yml and the\nfour linux job keys in ci.yml still said 'minilm-v2', but 'make\nfetch-model' has cached bge-small-en-v1.5 under those keys since the\nmodel swap; release.yml's Windows job already uses the corre\n[…]\nthe adjacent\ncomment), and ci.yml's Windows key, whose job genuinely downloads\nall-MiniLM-L6-v2 so its label matches its bytes.\n\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "ci: rename embed-asset cache keys from stale 'minilm-v2' to the actua…",
          "author_name": "Johannes Hauer",
          "author_login": "johanneshauer",
          "committed_at": "2026-07-15T02:17:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "922b71ae95e5ba3f3e3f141585dab5f898b18323",
          "body": "* feat(auth): add working plasticity preset (RFC #597)\n\nDefault-derived cognition (Hebbian + PAS on) with RetentionDays:7 so a\nshared workflow vault auto-evaporates via the existing 60s pruner, and\nBehaviorMode:selective for transient-vault guidance. Purely additive;\nValidPlasticityPreset auto-accep\n[…]\nulti_user pairing, consistent with docs/auth.md. Previously the bullet\nmentioned 'shared workflow scratch vaults' generically; now it explicitly\ndirects operators to pair with multi_user per RFC #597.",
          "is_bot": false,
          "headline": "feat(auth): add working plasticity preset (RFC #597) (#599)",
          "author_name": "Stephen Eaton",
          "author_login": "madeinoz67",
          "committed_at": "2026-07-15T01:58:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e7f4ee5f59d020af35f7f5bf3164f4a677de5f45",
          "body": "All CI green. Merging via admin — self-review not permitted for the author's own PR.",
          "is_bot": false,
          "headline": "Merge pull request #593 from scrypster/chore/stamp-v0.8.0",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-09T19:22:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdf52a7176d12403b98a5796c53720d4473a743c",
          "body": null,
          "is_bot": false,
          "headline": "docs(changelog): stamp v0.8.0 release",
          "author_name": "MJ Bonanno",
          "author_login": "scrypster",
          "committed_at": "2026-07-09T19:15:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f67ae4ce682eceee3598053ef092a9009b219e7",
          "body": "All CI green on develop HEAD. Merging via admin — self-review not permitted for the author's own PR.",
          "is_bot": false,
          "headline": "Merge pull request #592 from scrypster/develop",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-09T19:13:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58df2652d8f12ed425acafd6b90f39f81c5da3a9",
          "body": "All CI checks pass, including Vulnerability scan (confirms GO-2026-5856 fix). Merging via admin — self-review not permitted for the author's own PR.",
          "is_bot": false,
          "headline": "chore(deps): bump Go toolchain to 1.26.5 (#591)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-09T19:05:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "639f45b5c532e9806c50d9b1c7df447c2a302f58",
          "body": "…model (#583) (#589)\n\nVerified both features are correct, safe, and well-tested. Merging.",
          "is_bot": false,
          "headline": "feat(embed): vault dimension guard (#582) + user-supplied local ONNX …",
          "author_name": "Johannes Hauer",
          "author_login": "johanneshauer",
          "committed_at": "2026-07-09T18:48:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31da86e72fbe204cd6cbdfbf071ca9c54b5e439e",
          "body": "… (#579)\n\nVerified fix is correct and complete, no regressions (see review). Merging via admin — self-review not permitted by GitHub since this is the author's own PR.",
          "is_bot": false,
          "headline": "fix(web): reset advanced plasticity overrides when panel is collapsed…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-09T18:48:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f7347657e210b8557fbbe04cb728f3de51ca262",
          "body": "… semantics) (#576)\n\nVerified the two lease-cleanup fixes and re-ran the full suite + race detector on the concurrency-sensitive tests in an isolated worktree — all clean, rebased on develop. Merging.",
          "is_bot": false,
          "headline": "feat: atomic compare-and-set + ownership lease on engrams (work-queue…",
          "author_name": "ad-astra-bot",
          "author_login": "ad-astra-bot",
          "committed_at": "2026-07-09T18:32:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e17df99010939bba26b0e0f8df574b5a572ff651",
          "body": "parseSubcommand joins any two non-flag words (exec read -> exec:read), but\nmain.go's switch only matched bare exec/logs, so every documented two-word\nform of exec and logs died as Unknown command. cluster: already had the\nprefix route; exec: and logs: now match the same pattern. Regression cases\nadd\n[…]\nstore drill (board #1486).\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(cli): route joined exec:/logs: tokens to their handlers (#580)",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-04T01:37:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1e0e251be5788fc1bd9a15cc7844b4c746e03476",
          "body": "#572 (fixing #571) added a fuzzy fallback to muninn_find_by_entity that\nresolves token-level variants of a known entity name (dropped/added\narticles, split/joined words). Its match gate was \"shares at least one\nnon-stopword token with the query\" — permissive enough that a query\nsharing only one toke\n[…]\ne #572 fixed,\nand rejects coincidental single-token overlap on otherwise unrelated\nnames. Jaccard ranking and the lexicographic tie-break are unchanged.\n\nFixes the gap identified during #572's review.",
          "is_bot": false,
          "headline": "fix(engine): tighten fuzzy entity match to token-set containment (#581)",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-04T01:13:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9980f6a922ad01848db17f693c1b49c0ce8cc546",
          "body": "…igured provider (#585)\n\nIssue #582: when plugin_config.json names a specific embed provider (e.g.\nollama) and that provider is unreachable at boot, buildEmbedder silently\nfell through to the bundled 384-dim bge-small-en-v1.5 local ONNX model\ninstead of the safe noop (\"semantic similarity disabled\")\n[…]\na real\nlocal-ONNX init; full end-to-end behavior (a real bge-small-en-v1.5\ninit that must not happen) is covered by CI, which builds and tests\nwith -tags localassets and real model assets.\n\nFixes #582",
          "is_bot": false,
          "headline": "fix(embed): never substitute a different model for an explicitly conf…",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-04T01:12:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ddefabd35ace164a3a8fcee10f6ed6b68f2c59de",
          "body": "…only language coverage (#584)\n\nThree docs still named the pre-#455 model (all-MiniLM-L6-v2); the actual\nbundled model has been bge-small-en-v1.5 since the label fix shipped in\nv0.6.3. Correct the name in plugins.md, quickstart.md, and self-hosting.md,\nand add a 'Language Coverage' section documenti\n[…]\nsents on non-English vaults, a\nfive-minute self-test, and how to switch to a multilingual external provider\n(including the reembed requirement).\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(embed): correct the bundled model name and document its English-…",
          "author_name": "Johannes Hauer",
          "author_login": "johanneshauer",
          "committed_at": "2026-07-04T00:29:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b82af1a933abaeec040f1ffe7c061fc1d14b176a",
          "body": "…okup (#571) (#572)\n\nfind_by_entity resolves through the entity name hash (NFKC + trim +\nlowercase + SipHash), so any token-level variant of a known entity\nreturns zero results: `knock` misses `The Knock`, `dream-cycle` misses\n`dream cycle`, `TokenArcade` misses `Token Arcade`. A hash index cannot\na\n[…]\nn_0168DVnQZuH6WNWXqxxjweq2\n\nCo-authored-by: Cairn <cairn@strixhalo.local>\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(engine,mcp): fuzzy entity resolve behind exact find_by_entity lo…",
          "author_name": "isaac-ranger",
          "author_login": "isaac-ranger",
          "committed_at": "2026-07-03T21:19:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3474687be654b4a62d3f006dcc642140a0f1012f",
          "body": "…32602 messages (#578)\n\nWhen the embedding backend returns connection refused or times out, phase1()\npreviously returned an error that aborted the entire recall. Sessions saw zero\nresults instead of the FTS+decay results that are always available. Fix: log a\nwarning and return the query without an e\n[…]\nthat 'content' must be a non-empty string.\n\nFixes #577\n\nCo-authored-by: schurabot <263242209+schurabot@users.noreply.github.com>\nCo-authored-by: Scrypster <59214607+scrypster@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(recall): BM25 fallback when embed backend unreachable + precise -…",
          "author_name": "schurabot",
          "author_login": "ad-astra-bot",
          "committed_at": "2026-07-03T20:47:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bf57ac9b0fa5a6b567046d140b8aafb4531fef5d",
          "body": "… (#575)\n\nAll guidance surfaces (initialize instructions, muninn_guide, tool\ndescriptions, recall hints) steer clients to muninn_where_left_off at\nsession start. Right for a single-user vault; wrong for a vault shared\nby multiple users or agents, where where_left_off/muninn_session return\nvault-glob\n[…]\nw\nmulti_user). The panel merges the loaded raw config into the payload.\n\nDocs: feature-reference + auth tables, openapi PlasticityConfig schema.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vault): multi_user setting — shared-vault session-start guidance…",
          "author_name": "Johannes Hauer",
          "author_login": "johanneshauer",
          "committed_at": "2026-07-03T20:27:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "423dceb838a52781aa7cc01894e110b76fe66a7c",
          "body": "test(storage): fix flaky TestWALSyncer_SyncCountAccurate with onSync hook",
          "is_bot": false,
          "headline": "Merge pull request #568 from scrypster/fix/wal-syncer-flaky-test",
          "author_name": "Scrypster",
          "author_login": "scrypster",
          "committed_at": "2026-07-01T18:35:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 47,
      "commits_last_year": 1035,
      "latest_release_at": "2026-07-20T22:18:25Z",
      "latest_release_tag": "v0.9.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 21,
      "days_since_latest_release": 11,
      "mean_days_between_releases": 11.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 85,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/scrypster/muninndb",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/scrypster/muninndb",
          "is_deprecated": false,
          "latest_version": "v0.9.0",
          "repository_url": "https://github.com/scrypster/muninndb",
          "versions_count": 47,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-20T22:15:02Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 11
        }
      ]
    },
    "popularity": {
      "forks": 75,
      "stars": 318,
      "watchers": 12,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-03",
            "count": 3
          },
          {
            "date": "2026-03-04",
            "count": 8
          },
          {
            "date": "2026-03-05",
            "count": 12
          },
          {
            "date": "2026-03-06",
            "count": 7
          },
          {
            "date": "2026-03-07",
            "count": 5
          },
          {
            "date": "2026-03-08",
            "count": 4
          },
          {
            "date": "2026-03-09",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 2
          },
          {
            "date": "2026-03-12",
            "count": 1
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-17",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 4
          },
          {
            "date": "2026-03-28",
            "count": 3
          },
          {
            "date": "2026-03-30",
            "count": 1
          },
          {
            "date": "2026-04-02",
            "count": 1
          },
          {
            "date": "2026-04-05",
            "count": 1
          },
          {
            "date": "2026-04-06",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 2
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-04-30",
            "count": 1
          },
          {
            "date": "2026-05-06",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 1
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-05-27",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 1
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-23",
            "count": 1
          },
          {
            "date": "2026-07-30",
            "count": 1
          },
          {
            "date": "2026-07-31",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 74,
        "total_forks": 75
      },
      "star_history": null,
      "open_issues_and_prs": 78
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [
        "internal/transport/rest/openapi.yaml",
        "proto/muninn/v1/service.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "sdk/node/tsconfig.json"
      ],
      "toolchain_manifests": [
        "go.mod",
        "sdk/go/muninn/go.mod",
        "sdk/kotlin/build.gradle.kts"
      ],
      "largest_source_bytes": 178827,
      "source_files_sampled": 894,
      "oversized_source_files": 13,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 10233
    },
    "dependencies": {
      "manifests": [
        "go.mod",
        "web/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "github.com/klauspost/compress",
            "direct": true,
            "version": "v1.16.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5841"
            ],
            "fixed_version": "1.18.7",
            "advisory_count": 1,
            "oldest_advisory_days": 4
          },
          {
            "name": "golang.org/x/crypto",
            "direct": true,
            "version": "v0.52.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5932"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 24
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.55.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5942"
            ],
            "fixed_version": "0.56.0",
            "advisory_count": 1,
            "oldest_advisory_days": 17
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "unknown": 3
        },
        "advisory_count": 3,
        "affected_count": 3,
        "assessed_count": 329,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 10,
        "direct_affected_count": 2
      },
      "ecosystems": [
        "go",
        "npm"
      ],
      "dependencies": [
        {
          "name": "github.com/bits-and-blooms/bloom/v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.7.1"
        },
        {
          "name": "github.com/cockroachdb/pebble",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.5"
        },
        {
          "name": "github.com/dchest/siphash",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.2.3"
        },
        {
          "name": "github.com/google/uuid",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.6.0"
        },
        {
          "name": "github.com/hashicorp/golang-lru/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.0.7"
        },
        {
          "name": "github.com/klauspost/compress",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.16.0"
        },
        {
          "name": "github.com/kljensen/snowball",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.10.0"
        },
        {
          "name": "github.com/oklog/ulid/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.1.1"
        },
        {
          "name": "github.com/pelletier/go-toml/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.2.4"
        },
        {
          "name": "github.com/prometheus/client_golang",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.15.0"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.0"
        },
        {
          "name": "github.com/sugarme/tokenizer",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.3.0"
        },
        {
          "name": "github.com/vmihailenco/msgpack/v5",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v5.4.1"
        },
        {
          "name": "github.com/yalue/onnxruntime_go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.26.0"
        },
        {
          "name": "golang.org/x/crypto",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.52.0"
        },
        {
          "name": "golang.org/x/sync",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.21.0"
        },
        {
          "name": "golang.org/x/sys",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.45.0"
        },
        {
          "name": "golang.org/x/term",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.43.0"
        },
        {
          "name": "golang.org/x/text",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.39.0"
        },
        {
          "name": "golang.org/x/time",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.3.0"
        },
        {
          "name": "google.golang.org/grpc",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.82.1"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "github.com/bits-and-blooms/bloom/v3",
            "direct": true,
            "version": "v3.7.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cockroachdb/pebble",
            "direct": true,
            "version": "v1.1.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dchest/siphash",
            "direct": true,
            "version": "v1.2.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/uuid",
            "direct": true,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/hashicorp/golang-lru/v2",
            "direct": true,
            "version": "v2.0.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/klauspost/compress",
            "direct": true,
            "version": "v1.16.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kljensen/snowball",
            "direct": true,
            "version": "v0.10.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/oklog/ulid/v2",
            "direct": true,
            "version": "v2.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pelletier/go-toml/v2",
            "direct": true,
            "version": "v2.2.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/client_golang",
            "direct": true,
            "version": "v1.15.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stretchr/testify",
            "direct": true,
            "version": "v1.10.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sugarme/tokenizer",
            "direct": true,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/msgpack/v5",
            "direct": true,
            "version": "v5.4.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/yalue/onnxruntime_go",
            "direct": true,
            "version": "v1.26.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": true,
            "version": "v0.52.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sync",
            "direct": true,
            "version": "v0.21.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": true,
            "version": "v0.45.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/term",
            "direct": true,
            "version": "v0.43.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": true,
            "version": "v0.39.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/time",
            "direct": true,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/grpc",
            "direct": true,
            "version": "v1.82.1",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/yaml.v3",
            "direct": true,
            "version": "v3.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/beorn7/perks",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/bits-and-blooms/bitset",
            "direct": false,
            "version": "v1.24.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cespare/xxhash/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cockroachdb/errors",
            "direct": false,
            "version": "v1.11.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cockroachdb/fifo",
            "direct": false,
            "version": "v0.0.0-20240606204812-0bbfbd93a7ce",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cockroachdb/logtags",
            "direct": false,
            "version": "v0.0.0-20230118201751-21c54148d20b",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cockroachdb/redact",
            "direct": false,
            "version": "v1.1.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cockroachdb/tokenbucket",
            "direct": false,
            "version": "v0.0.0-20230807174530-cc333fc44b06",
            "ecosystem": "go"
          },
          {
            "name": "github.com/datadog/zstd",
            "direct": false,
            "version": "v1.4.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/davecgh/go-spew",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/emirpasic/gods",
            "direct": false,
            "version": "v1.18.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/getsentry/sentry-go",
            "direct": false,
            "version": "v0.27.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gogo/protobuf",
            "direct": false,
            "version": "v1.3.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/protobuf",
            "direct": false,
            "version": "v1.5.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/snappy",
            "direct": false,
            "version": "v0.0.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kr/pretty",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kr/text",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/matttproud/golang_protobuf_extensions",
            "direct": false,
            "version": "v1.0.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mitchellh/colorstring",
            "direct": false,
            "version": "v0.0.0-20190213212951-d06e56a500db",
            "ecosystem": "go"
          },
          {
            "name": "github.com/patrickmn/go-cache",
            "direct": false,
            "version": "v2.1.0+incompatible",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pkg/errors",
            "direct": false,
            "version": "v0.9.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pmezard/go-difflib",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/client_model",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/common",
            "direct": false,
            "version": "v0.42.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/prometheus/procfs",
            "direct": false,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rivo/uniseg",
            "direct": false,
            "version": "v0.4.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rogpeppe/go-internal",
            "direct": false,
            "version": "v1.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/schollz/progressbar/v2",
            "direct": false,
            "version": "v2.15.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sugarme/regexpset",
            "direct": false,
            "version": "v0.0.0-20200920021344-4d4ec8eaf93c",
            "ecosystem": "go"
          },
          {
            "name": "github.com/vmihailenco/tagparser/v2",
            "direct": false,
            "version": "v2.0.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/exp",
            "direct": false,
            "version": "v0.0.0-20230626212559-97b1e661b5df",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": false,
            "version": "v0.55.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genproto/googleapis/rpc",
            "direct": false,
            "version": "v0.0.0-20260414002931-afd174a4e478",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.11",
            "ecosystem": "go"
          },
          {
            "name": "@alloc/quick-lru",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/ansi",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/confirm",
            "direct": false,
            "version": "5.1.21",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/core",
            "direct": false,
            "version": "10.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/figures",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/type",
            "direct": false,
            "version": "3.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/remapping",
            "direct": false,
            "version": "2.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@mswjs/interceptors",
            "direct": false,
            "version": "0.41.3",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/deferred-promise",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/logger",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@open-draft/until",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.139.0",
            "ecosystem": "npm"
          },
          {
            "name": "@playwright/test",
            "direct": false,
            "version": "1.58.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/node",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-android-arm64",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-darwin-arm64",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-darwin-x64",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-freebsd-x64",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-arm64-gnu",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-arm64-musl",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-x64-gnu",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-x64-musl",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-wasm32-wasi",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-win32-arm64-msvc",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-win32-x64-msvc",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/postcss",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/statuses",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "5.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "check-error",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "cli-width",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "deep-eql",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.24.3",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "graphql",
            "direct": false,
            "version": "16.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "headers-polyfill",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-node-process",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.33.0",
            "ecosystem": "npm"
          },
          {
            "name": "loupe",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "msw",
            "direct": false,
            "version": "2.12.10",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "outvariant",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pathval",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.58.2",
            "ecosystem": "npm"
          },
          {
            "name": "playwright-core",
            "direct": false,
            "version": "1.58.2",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.23",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "rettime",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.59.0",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "strict-event-emitter",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-literal",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tagged-tag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": false,
            "version": "4.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinypool",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyspy",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "tldts",
            "direct": false,
            "version": "7.0.25",
            "ecosystem": "npm"
          },
          {
            "name": "tldts-core",
            "direct": false,
            "version": "7.0.25",
            "ecosystem": "npm"
          },
          {
            "name": "tough-cookie",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "until-async",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "7.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "vite-node",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "3.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yoctocolors-cjs",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "myclabs/deep-copy",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "packagist"
          },
          {
            "name": "nikic/php-parser",
            "direct": false,
            "version": "5.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phar-io/manifest",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "phar-io/version",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-code-coverage",
            "direct": false,
            "version": "11.0.12",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-file-iterator",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-invoker",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-text-template",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-timer",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": "11.5.55",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/cli-parser",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/code-unit",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/code-unit-reverse-lookup",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/comparator",
            "direct": false,
            "version": "6.3.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/complexity",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/diff",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/environment",
            "direct": false,
            "version": "7.2.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/exporter",
            "direct": false,
            "version": "6.3.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/global-state",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/lines-of-code",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/object-enumerator",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/object-reflector",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/recursion-context",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/type",
            "direct": false,
            "version": "5.1.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/version",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "staabm/side-effects-detector",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "packagist"
          },
          {
            "name": "theseer/tokenizer",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "packagist"
          },
          {
            "name": "flit-core",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-anthropic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-core",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "muninn-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "respx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 339,
        "direct_count": 22,
        "indirect_count": 317
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 14,
        "merged_prs": 442,
        "open_issues": 64,
        "closed_ratio": 0.768,
        "closed_issues": 212,
        "closed_unmerged_prs": 25
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "scrypster",
          "commits": 344,
          "avatar_url": "https://avatars.githubusercontent.com/u/59214607?v=4"
        },
        {
          "type": "User",
          "login": "johanneshauer",
          "commits": 22,
          "avatar_url": "https://avatars.githubusercontent.com/u/93012957?v=4"
        },
        {
          "type": "User",
          "login": "Invincibear",
          "commits": 20,
          "avatar_url": "https://avatars.githubusercontent.com/u/6895337?v=4"
        },
        {
          "type": "User",
          "login": "isaac-ranger",
          "commits": 15,
          "avatar_url": "https://avatars.githubusercontent.com/u/259727350?v=4"
        },
        {
          "type": "User",
          "login": "To3Knee",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/178674259?v=4"
        },
        {
          "type": "User",
          "login": "maybebyte",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/99762926?v=4"
        },
        {
          "type": "User",
          "login": "Aperrix",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/26674548?v=4"
        },
        {
          "type": "User",
          "login": "ad-astra-bot",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/263242209?v=4"
        },
        {
          "type": "User",
          "login": "ojamin",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/201050?v=4"
        },
        {
          "type": "User",
          "login": "madeinoz67",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/4160293?v=4"
        }
      ],
      "contributors_sampled": 22,
      "top_contributor_share": 0.726
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "docker-publish.yml",
        "publish-sdk.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "composer.lock",
        "go.sum",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 8,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 5,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 1,
            "reason": "Found 3/30 approved changesets -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 10,
            "reason": "project is fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 3,
            "reason": "dependency not pinned by hash detected -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "e24b5dcfd3c4a756f3cfbe51f0e36f4351fd14cb",
        "ran_at": "2026-08-01T02:14:47Z",
        "aggregate_score": 6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-31T21:41:51Z",
      "oldest_open_prs": [
        {
          "number": 367,
          "created_at": "2026-04-04T11:27:55Z",
          "last_comment_at": "2026-07-01T15:53:34Z",
          "last_comment_author": "scrypster"
        },
        {
          "number": 431,
          "created_at": "2026-05-06T02:47:59Z",
          "last_comment_at": "2026-07-08T00:59:30Z",
          "last_comment_author": "gitssie"
        },
        {
          "number": 644,
          "created_at": "2026-07-21T01:40:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 645,
          "created_at": "2026-07-21T02:12:56Z",
          "last_comment_at": "2026-07-28T00:09:55Z",
          "last_comment_author": "dpearson2699"
        },
        {
          "number": 659,
          "created_at": "2026-07-27T08:09:28Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 687,
          "created_at": "2026-07-28T16:27:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 730,
          "created_at": "2026-07-30T03:26:17Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 732,
          "created_at": "2026-07-30T05:12:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 736,
          "created_at": "2026-07-30T13:26:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 737,
          "created_at": "2026-07-30T14:45:20Z",
          "last_comment_at": "2026-07-30T15:35:15Z",
          "last_comment_author": "likesjx"
        },
        {
          "number": 748,
          "created_at": "2026-07-31T13:03:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 749,
          "created_at": "2026-07-31T13:03:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 750,
          "created_at": "2026-07-31T13:03:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 752,
          "created_at": "2026-07-31T14:13:01Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-31T21:34:21Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 321,
          "created_at": "2026-03-31T09:40:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 322,
          "created_at": "2026-03-31T09:40:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 323,
          "created_at": "2026-03-31T09:40:45Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 324,
          "created_at": "2026-03-31T09:40:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 325,
          "created_at": "2026-03-31T09:41:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 326,
          "created_at": "2026-03-31T09:41:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 375,
          "created_at": "2026-04-08T20:33:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 376,
          "created_at": "2026-04-08T20:34:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 378,
          "created_at": "2026-04-10T00:40:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 384,
          "created_at": "2026-04-10T01:25:58Z",
          "last_comment_at": "2026-04-10T01:32:13Z",
          "last_comment_author": "ByartMyars"
        },
        {
          "number": 386,
          "created_at": "2026-04-10T01:26:31Z",
          "last_comment_at": "2026-04-28T02:45:31Z",
          "last_comment_author": "scrypster"
        },
        {
          "number": 388,
          "created_at": "2026-04-10T01:26:55Z",
          "last_comment_at": "2026-04-28T02:45:37Z",
          "last_comment_author": "scrypster"
        },
        {
          "number": 546,
          "created_at": "2026-06-17T12:18:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 556,
          "created_at": "2026-06-29T19:51:17Z",
          "last_comment_at": "2026-07-19T07:19:26Z",
          "last_comment_author": "madeinoz67"
        },
        {
          "number": 561,
          "created_at": "2026-07-01T15:53:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 588,
          "created_at": "2026-07-07T07:03:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 595,
          "created_at": "2026-07-10T10:49:07Z",
          "last_comment_at": "2026-07-12T16:01:28Z",
          "last_comment_author": "johanneshauer"
        },
        {
          "number": 596,
          "created_at": "2026-07-10T11:57:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 598,
          "created_at": "2026-07-11T22:41:39Z",
          "last_comment_at": "2026-07-30T14:53:11Z",
          "last_comment_author": "ad-astra-bot"
        },
        {
          "number": 600,
          "created_at": "2026-07-12T11:03:01Z",
          "last_comment_at": "2026-07-21T14:58:32Z",
          "last_comment_author": "johanneshauer"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/scrypster/muninndb",
    "host": "github.com",
    "name": "muninndb",
    "owner": "scrypster"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 69,
      "inputs": {
        "security": 65,
        "vitality": 83,
        "community": 66,
        "governance": 61,
        "engineering": 71
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 83,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "commits_last_year": 1035,
              "human_commit_share": 0.94,
              "days_since_last_push": 0,
              "active_weeks_last_year": 21
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "21/52 weeks with commits",
                "points": 14.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 21
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1035 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1035
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 47,
              "latest_release_tag": "v0.9.0",
              "releases_from_tags": false,
              "days_since_latest_release": 11,
              "mean_days_between_releases": 11.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "47 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 47
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 11 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~11.7 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 11.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "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": "moderate",
        "name": "Community & Adoption",
        "value": 66,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "forks": 75,
              "stars": 318,
              "watchers": 12,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "318 stars",
                "points": 40.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 318
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "75 forks",
                "points": 15.6,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 75
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "12 watchers",
                "points": 5.8,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 61,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 32,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 22,
              "top_contributor_share": 0.726
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 73% of commits",
                "points": 6.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 73
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "22 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 22
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "merged_prs": 442,
              "open_issues": 64,
              "closed_issues": 212,
              "issue_closed_ratio": 0.768,
              "closed_unmerged_prs": 25
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "77% of issues closed",
                "points": 35.9,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 77
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "442/467 decided PRs merged",
                "points": 36.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 442,
                      "decided": 467
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 3/30 approved changesets -- score normalized to 1",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "followers": 38,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "scrypster",
              "public_repos": 7,
              "account_age_days": 2410
            },
            "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": "38 followers of scrypster",
                "points": 11.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 38,
                      "login": "scrypster"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "7 public repos, account ~6 yr old",
                "points": 18.6,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 7
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/scrypster/muninndb"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 11
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 11 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "47 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 47
                    }
                  }
                ],
                "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": "good",
        "name": "Engineering Quality",
        "value": 71,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "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": "4 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "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": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 65,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 3/30 approved changesets -- score normalized to 1",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is fuzzed",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "3 existing vulnerabilities detected",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 329 resolved dependencies against OSV; 10 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 329
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 10
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 86,
            "inputs": {
              "source": "osv",
              "advisories": 3,
              "affected_packages": 3,
              "assessed_packages": 329,
              "unassessed_packages": 10,
              "affected_by_severity": "unknown 3",
              "direct_affected_packages": 2
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "2 affected: github.com/klauspost/compress v1.16.0 (unknown), golang.org/x/crypto v0.52.0 (unknown)",
                "points": 24.7,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 2,
                      "packages": "github.com/klauspost/compress v1.16.0 (unknown), golang.org/x/crypto v0.52.0 (unknown)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "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": 329,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 5
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "excellent",
        "name": "AI Readiness",
        "value": 85,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.989,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 10233
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "93 of 94 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 93,
                      "sampled": 94
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "composer.lock",
                "go.sum",
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "sdk/node/tsconfig.json"
              ],
              "agent_commit_share": 0.1,
              "toolchain_manifests": [
                "go.mod",
                "sdk/go/muninn/go.mod",
                "sdk/kotlin/build.gradle.kts"
              ],
              "dependency_bot_commit_share": 0.06
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": "sdk/node/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sdk/node/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": "10 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 10,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "6 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 6,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 178827,
              "source_files_sampled": 894,
              "oversized_source_files": 13
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "13/894 source files over 60KB",
                "points": 54.2,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 894,
                      "oversized": 13
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "internal/transport/rest/openapi.yaml",
                "proto/muninn/v1/service.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "internal/transport/rest/openapi.yaml, proto/muninn/v1/service.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "internal/transport/rest/openapi.yaml, proto/muninn/v1/service.proto"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-01T02:15:14.787576Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/scrypster/muninndb.svg",
  "full_name": "scrypster/muninndb",
  "license_state": "custom",
  "license_spdx": null
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计Go.