Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [
"adapter",
"broker",
"configuration",
"go",
"grpc",
"http",
"microservice",
"opentelemetry",
"plugins",
"service-discovery"
],
"is_fork": false,
"size_kb": 2590,
"has_wiki": true,
"homepage": "https://www.gowind.cloud/",
"languages": {
"Go": 2693492,
"HTML": 28149,
"Shell": 9660,
"Thrift": 6971,
"Makefile": 240,
"PowerShell": 3015,
"Open Policy Agent": 30065
},
"pushed_at": "2026-07-17T00:06:43Z",
"created_at": "2026-06-09T07:46:46Z",
"owner_type": "User",
"updated_at": "2026-07-17T02:36:46Z",
"description": "Multi-engine plugin ecosystem for the Go Wind microservice framework, providing unified interfaces and plug-and-play adapters for mainstream tech stacks.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "https://tx7do.github.io/",
"name": "Bobo",
"type": "User",
"login": "tx7do",
"company": null,
"location": "China",
"followers": 215,
"avatar_url": "https://avatars.githubusercontent.com/u/15902756?v=4",
"created_at": "2015-11-18T06:08:45Z",
"is_verified": null,
"public_repos": 212,
"account_age_days": 3900
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [],
"recent_commits": [
{
"oid": "d8a493a75f72939eca7f812efa486406db4a4454",
"body": "- transport/http/redoc: 新建独立子模块,基于 go-redoc v0.1.5\n 支持远程 URL 和本地文件两种文档源,ReDoc JS 内嵌在二进制中\n- _examples/redoc-basic: 演示基于 std driver 挂载 ReDoc(远程 URL 模式)\n- README: 追加 ReDoc 用法小节\n- go.work: 加入 ./transport/http/redoc",
"is_bot": false,
"headline": "feat(http/redoc): 集成嵌入式 ReDoc 文档子模块",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-17T00:05:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8141e5735f881905c373e6a9175aeb3744f0dc15",
"body": "- transport/http: Driver 接口新增 HandlePrefix 方法,Server 增加同名方法\n (std/gin/fiber 三驱动均实现,纯增量不破坏现有路由)\n- transport/http/swagger: 新建独立子模块,移植 kratos-swagger-ui 核心逻辑\n 支持远程 URL / 本地文件 / 内存数据三种 openapi 文档源\n- _examples/swagger-basic: 演示基于 std driver 挂载 Swagger UI\n- README: 追加 Swagger UI 用法小节\n- go.work: 加入 ./transport/http/swagger",
"is_bot": false,
"headline": "feat(http/swagger): 集成嵌入式 Swagger UI 子模块",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-16T23:32:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "36b35e03d0ca891a064eaf6622d219e858842b95",
"body": "给 4 个 logging interceptor(UnaryServer/StreamServer/UnaryClient/\nStreamClient)在构造 args 前增加 logger.Enabled(level) 检查。当日志\n级别被过滤时直接返回,跳过 []any slice 构造与 interface{} 装箱。\n\n与 transport/http/middleware/logging 的优化对称(log.Logger 接口提供\nEnabled,专为此设计)。benchmark 验证:日志禁用时从 4 allocs/224B\n降到 0 allocs/0B,约快 9×。\n\n补 2 个测试验证 Enabled=false 时 handler 仍正常执行、不写日志;\n新增 bench_test.go 量化启用/禁用两条路径的开销。",
"is_bot": false,
"headline": "perf(grpc/middleware/logging): 日志级别过滤时跳过 args 装箱,禁用时 0 alloc",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-08T04:57:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f98f14208006601d6c728eaa3d4fdc9b7fbb04ff",
"body": "为 gin 与 fiber driver 增加三档框架接入能力,覆盖从标准接口到完全框架\n能力的谱系,让存量 gin/fiber 业务代码可复用:\n\ngin driver:\n- 导出类型 Driver,新增 New(opts...) 返回具体类型(NewDriver 保持返回\n 接口,向后兼容)\n- HandleGin(method, path, gin.HandlerFunc) 注册原生 handler\n- Engine() 暴露底层 *gin.Engine,用于路由组/gin 中间件/websocket\n- WithRoute/WithMiddleware 作为 driver 选项,纯 \n[…]\nc)。\n\n关键权衡(已在源码与 STATUS.md 说明):原生路由不经 Server.Use 的标准\n中间件链,两套中间件体系并行;adapter 无法全通用(前置类可转,读响应\n类静默失效),故不提供自动适配,改用文档明确边界。\n\nSTATUS.md 选型文档:三档接入方式对比、driver 选型、中间件体系说明、\n已知限制汇总、快速决策树。gin/fiber 各 8/7 个测试验证原生能力。",
"is_bot": false,
"headline": "feat(http): gin/fiber driver 增加框架原生能力与 options 注入",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-08T01:52:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5f072e18452f4d44e4795f3987c4f86072b32965",
"body": "BindQuery 原实现经 map[string]interface{} → json.Marshal → json.Unmarshal\n三段式,39 allocs/op,且对 int/bool 字段会报错(JSON 路径无法把带引号\nstring 转数字)。重构为反射直填,与 BindPath 同源:\n\n- 复用 findField(json tag → camelCase → 大小写不敏感三段匹配)\n- 复用 setScalar(int/uint/float/bool/string 标量转换)\n- 新增 setSliceField 支持 []string / []T,单值自动包成单元素 \n[…]\n3100 降到 ~320,快约 10×。\n\nBindPath/BindQuery/BindBodyField 共用 findField,字段缓存对全部路径\n绑定均有收益。新增 11 个测试锁定行为契约,1 个 benchmark 量化收益。\n\n行为变更(修复):现支持 int/bool/float/uint 标量字段、单值→slice、\nsnake_case 回退,与 BindPath 行为一致。",
"is_bot": false,
"headline": "refactor(http/binding): BindQuery 改为反射直填,allocs 39→3 快约 10×",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-08T01:52:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e24ba1fc7e024946cc72b2e50cd5adeba7ed5199",
"body": "metrics(8→5 allocs, B/op -33%):\n- labelFunc 调用从 3 次降到 2 次(in-flight gauge 进出复用 label)\n- sync.Pool 池化 statusRecorder\n- 不池化 label map(metrics 后端可能异步持有,避免 data race)\n\nlogging(禁用日志 0 alloc,启用 -1 alloc):\n- logger.Enabled(level) 提前判断,日志级别被过滤时跳过 7 个 kv 的\n ...any 装箱(log.Logger 接口提供 Enabled,专为此设计)\n- sync.Pool 池化 responseWriter\n\nrequestid:实测后发现编译器已对小 buffer 做栈分配优化,人工池化反而\n负收益(ns/op 略增),故保留原实现,仅添加 benchmark 证明此结论。\n\n每个中间件配套 bench_test.go,量化优化收益。",
"is_bot": false,
"headline": "perf(http/middleware): 优化 metrics 与 logging 中间件,附 benchmark",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-08T01:52:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a6f6dc30240f1f271717aa78f2ddcbe5837699da",
"body": "重写 fiber driver 的 net/http↔fasthttp 适配层热路径:\n- sync.Pool 复用 http.Header(map)、bytes.Buffer(响应体)、bodyCloser\n- bodyCloser 实现 io.WriterTo 透传 bytes.Reader.WriteTo,\n 避免 io.copyBuffer 每次分配 32KB 中间 buffer\n- 响应头用 Response.Header.SetCanonical 减少 string→[]byte 查找\n- scheme 默认 http 用常量,仅 HTTPS 才转换\n\n实测各场景 B/op 降 13~20%、allocs/op 减 7~9。响应体仍用 SetBody\n(拷贝),因 fasthttp 在 handler 返回后才序列化,SetBodyRaw 交付池化\nbuffer 会数据错乱,故响应体拷贝不可避免但 buffer 已池化。",
"is_bot": false,
"headline": "perf(http/fiber): 优化 fiber 适配层,内存分配减 13~20%",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-08T01:51:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e2002a92d8f2784b8f2f6a7317f4c6f1fd1f2147",
"body": "新增 transport/http/benchmark 模块,对 std/chi/gin/fiber 四个 driver\n做端到端 loopback 黑盒基准测试,覆盖 6 个场景。\n\n附带修复 go.work 中 transport/http/binding 重复出现导致 workspace 加载失败的既有 bug。\n\nREADME 含完整横向对比表、pprof 归因分析、优化历程。",
"is_bot": false,
"headline": "test(http): 添加 4 个 driver 端到端性能基准测试",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-07-08T01:50:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6c0b771184efd992d9a771cb7f10fd285612cee6",
"body": "- 删除了原有的 Windows 和 Unix 平台特定的 proto 生成脚本\n- 新增了温湿度计 HTTP 服务接口定义文件\n- 定义了 HygrothermographHTTPService 服务\n- 实现了获取温湿度计数据的 RPC 方法\n- 配置了 HTTP GET 路由映射到 /hygrothermograph 端点",
"is_bot": false,
"headline": "feat(proto): 添加温湿度计服务接口定义",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-19T05:23:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5e43212b3edaedf51a8a7b194f988c40fc7d605",
"body": "- 介绍 GraphQL 基础概念和 Go-Wind 插件库特性\n- 详细讲解 Schema 定义、代码生成和 Resolver 实现\n- 说明 Handle 与 HandleFunc 路由注册方法的区别\n- 深入解析中间件机制和内置中间件使用方法\n- 演示自定义中间件编写和 Playground 配置\n- 提供 HTTPS/TLS 配置和生产级完整示例\n- 整理常见问题解答和最佳实践指南",
"is_bot": false,
"headline": "docs(graphql): 添加 Go-Wind GraphQL 服务器完整教程",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-19T05:02:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "699cf0d2324e941cce6240aa35d2daada5679bf5",
"body": "- 新增 gRPC 服务器从入门到精通完整教程文档\n- 新增 HTTP 服务器从入门到精通完整教程文档\n- 包含基础概念、快速开始、拦截器/中间件详解\n- 提供生产级完整示例和常见问题解答\n- 覆盖服务注册、认证授权、限流熔断等核心功能\n- 包含错误处理、日志记录、请求追踪等最佳实践",
"is_bot": false,
"headline": "docs(guide): 添加 gRPC 和 HTTP 服务器详细教程",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-18T08:18:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80ed74d1fa699bb6ba306c0636122cd7dceb6e87",
"body": "- 移除keyFunc选项,改用signingKey直接签名\n- 添加对RS256、ES256、PS256、EdDSA算法的支持\n- 新增PEM格式密钥解析功能\n- 添加WithSigningKey和WithVerificationKey选项\n- 实现RSA、ECDSA、Ed25519密钥的PEM解析\n- 为不同算法添加相应的单元测试\n- 更新文档说明支持的密钥类型和用法",
"is_bot": false,
"headline": "feat(security): 支持非对称算法的JWT认证",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-15T03:36:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7995686287095e38205167e516bd3675e40bd011",
"body": "- 新增断路器基本示例,演示Execute方法和手动Allow/MarkSuccess/MarkFailure使用\n- 新增健康检查基本示例,展示Kubernetes就绪和存活探针配置\n- 新增指标基本示例,演示Prometheus计数器、直方图和仪表盘记录\n- 新增限流基本示例,展示令牌桶限流器的非阻塞和阻塞模式\n- 新增重试基本示例,演示不同退避策略、抖动和错误分类功能",
"is_bot": false,
"headline": "feat(examples): 添加基础示例代码",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T02:08:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fedf175d8420cd3b027003e7d672d4193856d28d",
"body": "- 新增断路器基本示例,演示Execute方法和手动Allow/MarkSuccess/MarkFailure使用\n- 新增健康检查基本示例,展示Kubernetes就绪和存活探针配置\n- 新增指标基本示例,演示Prometheus计数器、直方图和仪表盘记录\n- 新增限流基本示例,展示令牌桶限流器的非阻塞和阻塞模式\n- 新增重试基本示例,演示不同退避策略、抖动和错误分类功能",
"is_bot": false,
"headline": "feat(examples): 添加基础示例代码",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T02:08:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1838e78db9fe16d498c5fd0565fa7a21fd84560b",
"body": "- 集成 github.com/hibiken/asynq 作为异步任务队列库\n- 添加 go-wind-plugins/transport/asynq 传输层支持\n- 添加 go-wind-plugins/transport/kafka 传输层支持\n- 添加 go-wind-plugins/broker/kafka 消息代理支持\n- 新增 asynq-basic 示例展示任务队列功能\n- 新增 kafka-basic 示例展示消息队列功能\n- 添加相关依赖包如 redis、kafka-go、pbkdf2 等\n- 配置 go.mod 中的模块替换规则",
"is_bot": false,
"headline": "feat(examples): 添加 Asynq 和 Kafka 异步任务队列示例",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T01:46:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "06306b9757230ae00f35e39beb550cee31572517",
"body": "- 在 Socket.IO 示例中集成 recovery、request-id 和 logging 中间件\n- 在 WebSocket 示例中集成 recovery、request-id 和 logging 中间件\n- 更新 Socket.IO 示例文档注释以说明中间件重用功能\n- 更新 WebSocket 示例文档注释以说明中间件重用功能\n- 修正 Socket.IO 示例中的运行命令路径\n- 修正 WebSocket 示例中的运行命令路径\n- 移除示例中重复的导入包注释",
"is_bot": false,
"headline": "feat(examples): 为 Socket.IO 和 WebSocket 示例添加 HTTP 中间件支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T01:41:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "075718847939ff73721b1e1d3171c6d70b720387",
"body": "- 添加 recovery、requestid 和 logging 中间件导入\n- 在 SSE 服务器中启用 HTTP 中间件复用\n- 更新注释说明 SSE 可以直接使用 HTTP 中间件\n- 修正示例运行命令路径",
"is_bot": false,
"headline": "feat(sse): 集成 HTTP 中间件支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T01:37:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ad0f7365fcb2eed833f9a6bffd6959882c2a78b",
"body": "- 移除手动定义的 Echo 服务和相关结构体\n- 添加对 Hygrothermograph 服务的支持\n- 使用生成的 protobuf API 替代手动实现的服务描述符\n- 更新导入路径以使用测试 API 包\n- 修改服务注册方式使用生成的注册辅助函数\n- 更新文档说明和命令行示例",
"is_bot": false,
"headline": "feat(examples): 更新 gRPC 基础示例使用测试 API",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T01:33:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9fc85aa9ab721964b9064568754fbf56c98745cc",
"body": "- 引入 ProcessorWrapper 接口用于跨领域关注点处理\n- 添加 WithProcessorWrappers 选项用于应用多个包装器\n- 实现 WithLogging、WithRecovery 和 WithMetrics 选项\n- 将链路追踪功能转换为 TracingWrapper 包装器\n- 移除旧的 tracer 字段,改用包装器模式\n- 更新文档说明新的使用方式和包装器顺序\n- 添加对新依赖包的引用(gqlgen、thrift、metrics 等)\n- 更新 go.mod 和 go.sum 文件以包含新依赖项",
"is_bot": false,
"headline": "feat(thrift): 重构 Thrift 服务器实现以支持处理器包装器",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-12T01:29:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db97dda8b91bb13faccb8b0cadc1b5a867217b59",
"body": "- 为 transport/http 组件添加 v0.0.1 标签\n- 确保 HTTP 传输层版本标记的一致性",
"is_bot": false,
"headline": "feat(tag): 添加 HTTP 传输层标签支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T09:48:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "877fa5c566fce60f60d43303d7d5b0c53d552c18",
"body": "- 在 KCP、TCP、WebRTC 和 WebTransport 客户端中集成指标收集\n- 添加消息发送计数器、错误计数器和发送耗时直方图统计\n- 实现 metrics 依赖注入选项配置\n- 更新 go.mod 和 go.sum 文件以包含新的依赖项",
"is_bot": false,
"headline": "feat(transport): 添加客户端指标监控功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T06:05:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ec42c5000e395715b52e3ebc05e55b77b1ca5b20",
"body": "- 实现客户端过滤器支持,添加 Use 方法注册过滤器\n- 添加客户端 Invoke 方法,支持上下文超时控制\n- 新增大量客户端选项配置,包括目标地址、服务名、TLS等\n- 实现服务端过滤器支持,添加 Use 方法注册过滤器\n- 增强服务端启动停止逻辑,添加生命周期状态管理\n- 实现服务端服务注册功能,支持服务描述和实现绑定\n- 添加服务端多种配置选项,包括网络协议、超时、TLS等\n- 引入原子操作和读写锁保障并发安全\n- 统一错误处理和日志记录机制",
"is_bot": false,
"headline": "feat(trpc): 增强 tRPC 客户端和服务端功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T05:36:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "738797fa9b83ca5b1e60851122faf6337d36212a",
"body": "- 在 go.mod 中添加 metrics 模块依赖和替换规则\n- 为 ActiveMQ、Azure Service Bus、GCP Pub/Sub、Kafka、MQTT、NATS、NSQ、Pulsar、RabbitMQ、Redis 和 SQS 服务器选项添加 WithMetrics 配置选项\n- 在所有传输服务器结构体中添加 Metrics 字段用于注入指标监控实例\n- 实现 wrapHandler 方法包装消息处理器以收集接收的消息数量、处理耗时和错误计数指标\n- 在消息处理前后记录指标数据包括 broker 名称、主题名称和错误状态",
"is_bot": false,
"headline": "feat(transport): 集成指标监控功能到所有消息传输组件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T05:28:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "110004809754ec19d631d2b3b6f4138176f53cb4",
"body": "- 在KCP和TCP传输中集成OpenTelemetry追踪功能\n- 为KCP、TCP、SignalR、SocketIO、WebRTC和WebTransport添加指标收集\n- 统一HTTP中间件类型定义并在多个传输协议中实现Use方法\n- 更新HTTP3中间件处理逻辑并重命名相关字段\n- 在Thrift服务器中添加链路追踪处理器包装\n- 修改KCP和TCP消息处理以记录性能指标和错误状态",
"is_bot": false,
"headline": "feat(transport): 添加OpenTelemetry支持并改进中间件系统",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T05:19:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "93f40c6f94013b0d22888d11c6d05374c8e4e089",
"body": "- 集成DTM客户端SDK支持Saga、TCC、2阶段消息和XA模式\n- 实现分布式事务客户端接口封装\n- 添加事务配置管理和服务器地址设置功能\n- 提供Saga事务构建器和TCC全局事务处理\n- 支持2阶段消息事务和XA事务模式\n- 添加分支屏障查询和URL参数解析功能\n- 配置默认DTM服务器地址为本地开发环境\n- 更新go工作区添加transaction模块依赖\n- 更新依赖包版本包括gax-go和scram等库",
"is_bot": false,
"headline": "feat(transaction): 添加DTM分布式事务管理插件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T04:41:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d19d6984739b9174bba758bf75626009041184cf",
"body": "- 将 Go 版本从 1.25.0 更新到 1.26.3\n- 添加 go-wind-plugins/broker 和 go-wind-plugins/encoding 依赖\n- 移除 go-playground/form/v4 间接依赖\n- 添加 go-wind-plugins/encoding/json、proto 和 tracer/otlp 间接依赖\n- 移除 otel stdout trace 导出器依赖\n- 清理 yaml.v3 间接依赖\n- 更新 testing 模块版本到 v0.0.1",
"is_bot": false,
"headline": "chore(deps): 更新依赖版本并清理不必要的包",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T03:08:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "75dbe9282dd7489928c68333ab4786b6eb138ce0",
"body": "- 将 go-wind-plugins/cache/local 从 v0.0.0 更新到 v0.1\n- 将 go-wind-plugins/config/file 从 v0.0 更新到 v0.0.1\n- 将 go-wind-plugins/encoding/xml 从 v0.0.0 更新到 v0.0.1\n- 将 go-wind-plugins/registry/etcd 从 v0.0.0 更新到 v0.0.1\n- 将 go-wind-plugins/tracer/otlp 从 v0.0.0 更新到 v0.0.1\n- 将 go-wind-plugins/transport/cron 从 v0.0\n[…]\n1\n- 将 go-wind-plugins/circuitbreaker 从 v0.0.0 更新到 v0.0.1\n- 将 go-wind-plugins/ratelimit 从 v0.0.0 更新到 v0.0.1\n- 将 go-wind-plugins/retry 从 v0.0.0 更新到 v0.0.1\n- 将 go-wind-plugins/metrics 从 v0.0.0 更新到 v0.0.1",
"is_bot": false,
"headline": "chore(deps): 更新项目依赖模块版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T03:00:33Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4f47cad51b6eba15f6096d54d07775c4d543cca0",
"body": "- 将所有 broker 模块中的 go-wind-plugins/broker 依赖从 v1.3.3 降级到 v0.0.1\n- 修复 transport/webtransport 模块中 go-wind-plugins/broker 的零版本引用\n- 统一所有模块中 go-wind-plugins/broker 的版本为 v0.0.1\n- 移除不一致的依赖版本配置",
"is_bot": false,
"headline": "chore(deps): 更新 go-wind-plugins/broker 依赖版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T02:52:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6da30323d4e28d84750eb3d20073a8f74ed7c5e3",
"body": "- 将 go-wind-plugins/config 从占位版本更新为 v0.0.1 版本\n- 将 go-wind-plugins/registry 从占位版本更新为 v0.0.1 版本\n- 在所有配置模块中统一更新依赖版本\n- 在所有注册中心模块中统一更新依赖版本\n- 新增 fallback.go 文件实现 FallbackReader 功能\n- 添加回退读取器支持多源配置读取和值监控合并\n- 实现优先级顺序的配置源级联回退机制",
"is_bot": false,
"headline": "chore(deps): 更新 go-wind-plugins 依赖版本并添加回退读取器功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T02:12:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcba6954ce166edd1f66b1dac89cd13db5597134",
"body": "- 将 go-wind-plugins/config 从占位版本更新为 v0.0.1 版本\n- 将 go-wind-plugins/registry 从占位版本更新为 v0.0.1 版本\n- 在所有配置模块中统一更新依赖版本\n- 在所有注册中心模块中统一更新依赖版本\n- 新增 fallback.go 文件实现 FallbackReader 功能\n- 添加回退读取器支持多源配置读取和值监控合并\n- 实现优先级顺序的配置源级联回退机制",
"is_bot": false,
"headline": "chore(deps): 更新 go-wind-plugins 依赖版本并添加回退读取器功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T02:10:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46938522cf1312bcd7a8723132f725bff29167b1",
"body": "- 将 go-wind-plugins/config 从占位版本更新为 v0.0.1 版本\n- 将 go-wind-plugins/registry 从占位版本更新为 v0.0.1 版本\n- 在所有配置模块中统一更新依赖版本\n- 在所有注册中心模块中统一更新依赖版本\n- 新增 fallback.go 文件实现 FallbackReader 功能\n- 添加回退读取器支持多源配置读取和值监控合并\n- 实现优先级顺序的配置源级联回退机制",
"is_bot": false,
"headline": "chore(deps): 更新 go-wind-plugins 依赖版本并添加回退读取器功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T02:05:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aa445b88bea8af791f53e1f924ae29f88e114197",
"body": "- 将 github.com/tx7do/go-wind-plugins/tracer/otlp 从 v0.0.0-20260610233343-575e56488c1f 更新到 v0.0.1\n- 同步更新 go.mod 和 go.sum 中的依赖版本信息\n- 更新依赖的哈希校验值以匹配新版本",
"is_bot": false,
"headline": "chore(deps): 更新 go-wind-plugins/tracer/otlp 依赖版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-11T00:01:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7a9b65c76ce1dec497427389ce9127a4277ca43d",
"body": "- 移除了 http middleware recovery 模块中的间接依赖标记\n- 更新了 machinery 模块中 aws sdk imds 组件版本至 v1.18.23\n- 升级 pulsar 模块中 kubernetes client-go 版本至 v0.36.1\n- 更新 webtransport 模块中 otlp 追踪器依赖版本\n- 在 argo、conductor 和 temporal 工作流模块中添加核心 wind 框架依赖\n- 从标签脚本中移除了重复的 tracer 标签定义\n- 删除了 demo 配置文件以避免敏感信息暴露",
"is_bot": false,
"headline": "chore(deps): 更新项目依赖并移除重复标签",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T23:39:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "575e56488c1f2af38b3e2615961c76c1ca8464fb",
"body": "- 在 _examples 中添加了 cache、config 和 tracing 相关依赖\n- 升级 Azure Service Bus 的 go-amqp 依赖版本至 v1.7.0\n- 为 gcpubsub 添加 otlp 追踪插件依赖\n- 升级 Pulsar broker 的 k8s.io/client-go 版本至 v0.36.1\n- 在 Redis broker 中引入 go-wind 框架依赖\n- 为多个配置模块添加 go-wind 依赖\n- 升级阿里云日志 SDK 至 v0.1.117 并更新相关间接依赖\n- 更新 phuslu 日志库至 v1.0.126\n- 为多个传输层中间件添加 log 插件依赖\n- 在 Go modules 锁定文件中同步所有依赖版本更新",
"is_bot": false,
"headline": "feat(deps): 更新项目依赖并集成缓存和追踪功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T23:33:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ffd3ec3d2db53f5854bd5b2aa239c521f0782781",
"body": "- 移除 createTracerProvider 函数中的 exporterName 参数\n- 统一使用 otlp.New 的新参数结构创建追踪器提供者\n- 更新所有调用 createTracerProvider 的地方以匹配新函数签名\n- 在 http 恢复中间件测试中更新日志记录器使用方式的注释",
"is_bot": false,
"headline": "refactor(broker): 简化测试中的追踪器提供者创建函数",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T23:11:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ef170c8d17b99e3deff5401829286018fd5f9cf6",
"body": "- 将 aliyunmq_test.go 中的 slog 替换为 github.com/tx7do/go-wind/log\n- 将 minio/client.go 中的 slog 替换为 github.com/tx7do/go-wind/log\n- 将 s3/client.go 中的 slog 替换为 github.com/tx7do/go-wind/log\n- 将 grpc/middleware/logging/client.go 中的 slog 替换为 github.com/tx7do/go-wind/log\n- 将 config/file/file.go 中的 slog 替换为 gith\n[…]\n/log\n- 更新日志调用方式从 slog.Log 到 log.GetLogger().Info/Debug/Error\n- 调整 grpc 中间件日志参数格式以适配新日志库\n- 移除多个文件中的 slog 导入声明\n- 更新 aliyun 日志依赖版本从 v0.117 到 v0.1.100\n- 简化 aliyun 日志模块的间接依赖列表\n- 在 workflow 模块中添加 go-wind 依赖",
"is_bot": false,
"headline": "refactor(log): 替换标准库slog为自定义日志实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T22:54:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6b381e1881365202fd1e9069312efc0685d33069",
"body": "- 实现了 WebTransport 客户端及其连接管理功能\n- 实现了 WebRTC 客户端支持数据通道和媒体轨道管理\n- 添加了 trpc 客户端基础结构\n- 添加了 CA 证书用于 TLS 配置验证\n- 实现了 HTTP3 上下文包装器提供请求响应处理\n- 添加了相应的客户端选项配置功能\n- 实现了消息处理器注册和注销机制\n- 添加了单元测试验证客户端功能",
"is_bot": false,
"headline": "feat(transport): 添加 WebTransport 和 WebRTC 客户端实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T15:28:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0f0a8ee1a9d4761094fc25e5f7f2d555860c91c",
"body": "- 为ActiveMQ、Azure Service Bus、Google Cloud Pub/Sub、Kafka、MQTT、NATS、NSQ、Pulsar、RabbitMQ、Redis、RocketMQ和SQS添加单元测试文件\n- 每个测试文件包含TestKind、TestNewServer、TestEndpoint和TestStopBeforeStart四个测试用例\n- 验证各个消息队列服务器的名称、创建、端点和停止功能\n- 修复RabbitMQ和RocketMQ测试中的日志调用语法错误",
"is_bot": false,
"headline": "test(transport): 添加多种消息队列服务器单元测试",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T14:15:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e3280eaa157ee2b3efd7d44631c2cc69936490f0",
"body": "- 添加 ActiveMQ 模块的 go.mod 配置文件\n- 添加 Azure Service Bus 模块的 go.mod 配置文件\n- 添加 Google Cloud Pub/Sub 模块的 go.mod 配置文件\n- 添加 Kafka 模块的 go.mod 配置文件\n- 添加 MQTT 模块的 go.mod 配置文件\n- 添加 NATS 模块的 go.mod 配置文件\n- 添加 NSQ 模块的 go.mod 配置文件\n- 添加 Pulsar 模块的 go.mod 配置文件\n- 添加 RabbitMQ 模块的 go.mod 配置文件\n- 添加 Redis 模块的 go.mod 配置文件\n- 添加 RocketMQ 模块的 go.mod 配置文件\n- 配置各个模块的依赖关系和替换规则",
"is_bot": false,
"headline": "feat(transport): 添加多种消息队列传输模块的依赖配置",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T14:06:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dae0fc7582242f313effa94ea738c78441b373fb",
"body": "- 添加 github.com/tx7do/go-wind-plugins/encoding/json v0.0.1 依赖\n- 添加 github.com/tx7do/go-wind-plugins/encoding/proto v0.0.1 依赖\n- 移除 go.opentelemetry.io/otel/exporters/stdout/stdouttrace 调试依赖\n- 更新各 broker 模块的依赖配置文件\n- 清理无用的依赖包引用",
"is_bot": false,
"headline": "chore(broker): 更新依赖包版本并移除调试输出",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T13:24:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7042f1bc41a443de9e0299104788e58f072cc335",
"body": "- 在 Azure Service Bus 文档中添加核心概念、队列vs主题对比表格及注意事项\n- 在 GCP Pub/Sub 文档中补充核心概念、投递模式对比表格及注意事项\n- 在 Kafka 文档中增加 Go 语言导入代码示例\n- 在 RabbitMQ 文档中补充官方参考资料链接\n- 在 AWS SQS 文档中添加队列类型对比表格、基本概念说明及注意事项\n- 在 STOMP 文档中补充协议规范和参考资料链接",
"is_bot": false,
"headline": "docs(broker): 更新各消息队列中间件的文档内容",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T12:57:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "86c4c16464219ba4d96244cf9412f8f81c2fa44b",
"body": "…ent engines\n\n- Add new broker interface definitions for Publish/Subscribe/Request patterns\n- Implement 12 message broker plugins including Kafka, RabbitMQ, NATS, MQTT,\n Pulsar, Redis, RocketMQ, NSQ, SQS, GCP PubSub, Azure Service Bus and STOMP\n- Update documentation with new broker architecture an\n[…]\nverview to reflect expanded multi-engine support\n- Add dependency github.com/tx7do/go-wind v0.0.1 across all broker modules\n- Refactor README files with updated import paths and default configurations",
"is_bot": false,
"headline": "feat(broker): add comprehensive message broker support with 12 differ…",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T12:34:38Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe57e31e9e752a0d213aceaaff74f96df37fc08e",
"body": "…ent engines\n\n- Add new broker interface definitions for Publish/Subscribe/Request patterns\n- Implement 12 message broker plugins including Kafka, RabbitMQ, NATS, MQTT,\n Pulsar, Redis, RocketMQ, NSQ, SQS, GCP PubSub, Azure Service Bus and STOMP\n- Update documentation with new broker architecture an\n[…]\nverview to reflect expanded multi-engine support\n- Add dependency github.com/tx7do/go-wind v0.0.1 across all broker modules\n- Refactor README files with updated import paths and default configurations",
"is_bot": false,
"headline": "feat(broker): add comprehensive message broker support with 12 differ…",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T12:18:56Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a955b4e2c580cfef596ead2fbd49d85996268d7e",
"body": "- 实现阿里云RocketMQ HTTP客户端,支持发布订阅功能\n- 添加阿里云RocketMQ追踪集成,支持OpenTelemetry\n- 实现Azure Service Bus客户端,支持队列和主题订阅\n- 添加Azure Service Bus管理功能,支持队列主题创建\n- 扩展RabbitMQ认证选项,新增外部认证支持\n- 完善RabbitMQ通道管理功能,优化连接池实现\n- 新增通用Broker接口定义和类型化订阅助手函数\n- 添加全面的单元测试覆盖新功能模块",
"is_bot": false,
"headline": "feat(broker): 新增阿里云RocketMQ和Azure Service Bus支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T11:53:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "85be3c34863c0adce4d6494e098f1209f5f19695",
"body": "- 将 github.com/tx7do/go-wind-plugins/errors 从 v0.0.0 升级到 v0.0.1\n- 在 authn 模块中更新依赖版本\n- 在 authz 模块中更新依赖版本\n- 在 grpc 中间件错误处理模块中更新依赖版本\n- 在 http 中间件错误处理模块中更新依赖版本",
"is_bot": false,
"headline": "chore(deps): 更新 errors 模块版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T11:04:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ec6744dfa4c30419445ee06148bdc5a1028e9393",
"body": "- 将 github.com/tx7do/go-wind-plugins/errors 从 v0.0.0 升级到 v0.0.1\n- 在 authn 模块中更新依赖版本\n- 在 authz 模块中更新依赖版本\n- 在 grpc 中间件错误处理模块中更新依赖版本\n- 在 http 中间件错误处理模块中更新依赖版本",
"is_bot": false,
"headline": "chore(deps): 更新 errors 模块版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T10:37:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6bd50e07b0efd8ac30613f8f409c3495af046fc3",
"body": "- 将 github.com/cloudwego/eino 从 v0.9.0-alpha.13 升级到 v0.9.5\n- 将 golang.org/x/net 从 v0.52.0 升级到 v0.53.0\n- 从 go.work 文件中移除 ./tracer 模块路径\n- 重构 tag.sh 脚本,按模块类别重新组织标签并添加详细的子模块标签\n- 新增 tracer/otlp/tracer.go 文件,实现 OpenTelemetry OTLP 追踪器功能",
"is_bot": false,
"headline": "chore(deps): 更新依赖版本并重新组织标签结构",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T10:36:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e3008867d491796f2f392604e7e4ac8a64f551b",
"body": "- 移除了tracer模块的go.mod文件\n- 从go.work中删除了tracer路径的引用\n- 删除了tracer/tracer.go文件中的所有代码\n- 清理了分布式跟踪初始化助手的相关实现",
"is_bot": false,
"headline": "remove(tracer): 删除tracer模块及其相关配置",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T10:18:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "304040bc100ff62a5acc19c3c09cab3baa397cb8",
"body": "- 更新Asynq README文档,详细介绍核心特性和使用方法\n- 新增Encoding模块文档,说明统一编解码抽象层的设计和用法\n- 新增Errors模块文档,介绍协议无关错误类型定义和使用方式\n- 更新tag.sh脚本,移除OSS相关注释标签\n- 升级phuslu/log依赖版本从v1.0.124到v1.0.125",
"is_bot": false,
"headline": "docs(asynq): 更新Asynq传输层文档并完善编码和错误处理说明",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T10:16:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90977f3af7c348c9cf9ae041a7205881cb9897a1",
"body": "- 实现了 KCP 协议客户端,支持字节序配置、消息处理器注册、数据加密等功能\n- 实现了 TCP 协议客户端,提供连接管理、消息收发、协议编解码等基础功能\n- 添加了客户端选项配置,支持端点设置、编解码器选择、原始数据处理器等\n- 集成了字节序处理模块,支持大端和小端模式切换\n- 新增了客户端测试用例,验证连接、消息发送接收等核心功能\n- 更新了 go.mod 文件,添加相关依赖包和模块替换规则",
"is_bot": false,
"headline": "feat(transport): 添加 KCP 和 TCP 传输协议客户端实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T09:57:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b37c83de0741a4edcf3ff9a3d0989aaf5f0cc5f1",
"body": "- 将examples目录重命名为_examples以排除在go build之外\n- 更新go.work文件中的目录引用路径\n- 移除原examples目录下的所有示例代码文件\n- 保留_examples目录下的go.mod文件作为模块定义",
"is_bot": false,
"headline": "refactor(examples): 将examples目录重命名为_examples并更新工作区配置",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T06:59:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5606371ff448b34e2f34809d2fa272ea162a724e",
"body": "- 在 go.mod 中添加 etcd 相关依赖和插件\n- 新增 app-registry 示例程序演示服务注册功能\n- 实现服务启动时向 etcd 注册实例信息\n- 实现服务关闭时从 etcd 注销实例信息\n- 添加健康检查端点用于服务状态监控\n- 配置服务发现的命名空间和 TTL 设置",
"is_bot": false,
"headline": "feat(examples): 添加 etcd 服务注册示例",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T06:56:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ba4f7a64fd9e5af277c2df163957eeeb2891a479",
"body": "- 添加app-multi-server示例展示HTTP和gRPC服务器同时运行\n- 添加sse-basic示例演示服务器发送事件功能\n- 添加websocket-basic示例展示WebSocket消息处理\n- 更新依赖包版本并添加新的传输协议插件\n- 配置WebSocket和SSE协议的本地模块映射",
"is_bot": false,
"headline": "feat(examples): 添加多服务器应用、SSE和WebSocket示例",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T06:44:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "300ec582da513c0249cd9a68ea70c5bbd967852d",
"body": "- 新增 transport/sse 包,实现 Server-Sent Events 协议\n- 新增 transport/websocket 包,实现 WebSocket 客户端功能\n- 添加 WebSocket 消息处理器和编解码功能\n- 实现 SSE 认证和事件流处理机制\n- 添加 Thrift 传输协议模块\n- 在 go.work 中注册新的传输协议模块",
"is_bot": false,
"headline": "feat(transport): 添加 SSE 和 WebSocket 传输协议支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T06:33:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "783dba99e5077d641261c5f4c16a87990af10594",
"body": "- 更新 log/cloudwatch 中 aws-sdk-go-v2/feature/ec2/imds 从 v1.18.22 到 v1.18.23\n- 新增 transport/graphql 模块及其相关依赖\n- 更新多个 grpc middleware 模块中的 google.golang.org/genproto/googleapis/rpc 版本\n- 更新 transport/http/driver/fiber 中多个依赖包版本\n- 更新 transport/http/driver/gin 中 bytedance 相关包及其他依赖版本",
"is_bot": false,
"headline": "chore(deps): 更新多个模块的依赖版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T05:34:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5c319f72849cb92d4b967fea5996e567144b43f8",
"body": "- 移除原有的默认驱动实现文件\n- 新增driver目录结构,将不同框架驱动分别存放\n- 添加chi、fiber、gin、std四个驱动子包\n- 修改Server逻辑,移除默认驱动依赖\n- 更新示例代码使用新的驱动配置方式\n- 调整go.mod和go.work文件结构\n- 更新工作区依赖管理配置",
"is_bot": false,
"headline": "refactor(http): 重构HTTP服务器驱动实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T05:26:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a93f80c58370158c99a223713fa5a97d58a53cd9",
"body": "- 在 go.work 文件中添加 examples 模块路径\n- 创建 examples 模块的 go.mod 配置文件\n- 添加 encoding-crypto 示例展示编解码和加密中间件\n- 添加 grpc-basic 示例展示基础 gRPC 服务功能\n- 添加 http-basic 示例展示基础 HTTP 服务功能\n- 添加 http-middleware 示例展示中间件链使用\n- 创建 examples 模块的 go.sum 依赖锁定文件",
"is_bot": false,
"headline": "feat(examples): 添加多个示例项目并更新工作区配置",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T04:45:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4ff0da095aa2f2b730b8142326be1bff82fd67df",
"body": "- 新增gRPC编解码中间件,支持非protobuf格式如JSON、XML等\n- 新增HTTP编解码中间件,实现自动内容协商和编解码\n- 添加gRPC加密中间件,提供透明载荷加密功能\n- 添加HTTP加密中间件,支持请求响应体加密解密\n- 在go.work中注册新增的中间件模块\n- 提供完整的单元测试覆盖编解码和加密功能",
"is_bot": false,
"headline": "feat(transport): 添加gRPC和HTTP传输层编解码及加密中间件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T04:17:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e455fe3ef8a8686530fbef06be1ff0559cac551",
"body": "- 添加 security/crypto 模块提供加密抽象接口\n- 实现全局注册表支持运行时查找加密实现\n- 添加 AES、RSA、SM2、SM4 等多种加密算法支持\n- 提供哈希、签名、密钥交换等功能接口\n- 添加完整的单元测试覆盖加密功能\n- 更新 go.work 和 go.mod 文件引入新依赖\n- 移除无用的 STS 服务依赖项",
"is_bot": false,
"headline": "feat(security): 添加加密模块并更新依赖",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T04:05:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe7d096d456426fc27d03dcced09d66d6934d37e",
"body": "- 使用自定义错误包替换 gRPC 状态错误\n- 定义标准化的错误代码和消息格式\n- 更新认证和授权模块的错误处理方式\n- 移除对 gRPC 相关依赖的直接引用\n- 统一错误码命名规范并改进错误分类",
"is_bot": false,
"headline": "refactor(security): 将错误处理重构为统一的错误系统",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:55:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fddac07ba2687bd4f77e1b2e9c79892bb029e521",
"body": "- 定义了协议无关的错误类型,使用HTTP状态码作为语义锚点\n- 实现了错误的元数据支持和错误提取功能\n- 添加了gRPC传输层的错误转换中间件\n- 添加了HTTP传输层的错误响应中间件\n- 更新go.work文件以包含新的错误处理模块\n- 提供了完整的单元测试覆盖错误处理的各种场景",
"is_bot": false,
"headline": "feat(errors): 添加协议无关的错误类型定义和传输层错误处理中间件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:47:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc914d6ed7b25cdb9b7eb88bc32bf16b9e011e46",
"body": "- 升级 github.com/aws/aws-sdk-go-v2/config 从 v1.32.14 到 v1.32.16\n- 升级 github.com/aws/aws-sdk-go-v2/credentials 从 v1.19.14 到 v1.19.15\n- 升级 github.com/aws/aws-sdk-go-v2/service/sts 从 v1.41.10 到 v1.42.0\n- 将 github.com/aws/aws-sdk-go-v2/internal/ini 替换为 github.com/aws/aws-sdk-go-v2/internal/v4a\n- 更新 transport/http/fiber 和 gin 模块中的 go-wind-plugins 版本\n- 同步更新所有相关的 go.sum 文件以反映依赖变更",
"is_bot": false,
"headline": "chore(deps): 更新依赖包版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:47:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "37f9912759ab60fb4599aea7e485b7de724bffe5",
"body": "- 在go.work中注册新的中间件模块路径\n- 新增transport/grpc/middleware/metadata包实现gRPC元数据传播功能\n- 新增transport/http/middleware/metadata包实现HTTP元数据传播功能\n- 新增transport/grpc/middleware/validate包实现请求消息验证功能\n- 提供客户端和服务端拦截器支持元数据提取和注入\n- 支持常量元数据配置和上下文传递\n- 实现验证接口用于protobuf消息校验\n- 添加完整的单元测试覆盖各种使用场景",
"is_bot": false,
"headline": "feat(middleware): 添加gRPC和HTTP元数据传播及验证中间件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:29:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f5993e14e707c2f8d51a4553a2639e5e6ae093f",
"body": "- 在 go.work 文件中注册 pprof 模块\n- 创建 pprof 模块的基础结构和配置文件\n- 实现 pprof HTTP 处理器,支持 CPU、堆栈、协程等运行时分析\n- 提供自定义路径前缀配置选项\n- 集成标准库 net/http/pprof 包的所有分析端点\n- 添加完整的单元测试覆盖各种分析场景\n- 实现路由列表功能用于文档或自动化注册",
"is_bot": false,
"headline": "feat(pprof): 添加性能分析插件功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:22:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69d2c43aef6373984dec9c2b24bddaf367d80c07",
"body": "- 在 go.work 文件中添加了 metrics、requestid 和 timeout 中间件的模块引用\n- 新增 transport/http/middleware/cors 包,提供 CORS 中间件功能\n- 添加 CORS 中间件的单元测试文件 cors_test.go\n- 为 GRPC 的 metrics、requestid 和 timeout 中间件创建独立的 go.mod 文件\n- 为 HTTP 的 metrics、requestid 和 timeout 中间件创建独立的 go.mod 文件\n- 更新所有新增中间件的依赖管理文件 go.sum\n- 实现完整的 CORS 处理逻辑,包括预检请求和响应头设置功能",
"is_bot": false,
"headline": "feat(middleware): 添加多个中间件支持并更新工作区配置",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:19:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c885623cfa419e341a5e012ece7ea2755f23e8d1",
"body": "- 添加tokenProvider字段用于提供传出RPC的令牌\n- 添加scheme字段用于指定授权方案,默认为\"Bearer\"\n- 在authz中间件中添加clientActionResolver和clientResourceResolver字段\n- 更新多个模块中的依赖版本,包括go-isatty、AWS SDK内部组件等\n- 在gRPC中间件模块中添加testify测试库依赖\n- 更新x/net、x/text等Go工具库到最新版本",
"is_bot": false,
"headline": "feat(authn): 扩展gRPC认证中间件支持客户端选项",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:07:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "974f0b02495aef2e7b9a9db8592952c5c99f6d20",
"body": "- 实现 gRPC 和 HTTP 的熔断器中间件,支持自定义失败状态码和跳过方法\n- 添加限流和重试中间件模块的 go.mod 配置文件\n- 在 go.work 文件中注册新的中间件模块路径\n- 提供完整的单元测试覆盖熔断器的各种使用场景",
"is_bot": false,
"headline": "feat(middleware): 添加熔断器、限流和重试中间件支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T03:01:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8118ff4a2503e37b80e144da6b8f09b9735bd2f4",
"body": "- 在 go.work 文件中注册新的 gRPC 中间件模块路径\n- 创建 logging 中间件实现 gRPC 请求的日志记录功能\n- 创建 recovery 中间件实现 gRPC 请求的 panic 恢复功能\n- 创建 tracing 中间件集成 OpenTelemetry 追踪功能\n- 为所有中间件添加完整的单元测试覆盖\n- 配置各中间件的依赖管理文件和校验和文件",
"is_bot": false,
"headline": "feat(transport): 添加 gRPC 中间件支持日志记录、恢复和追踪功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T02:47:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0dbd707cb32ffa7a64329b116f71a038ba462052",
"body": "- 实现了 gRPC 认证中间件 (authn),支持一元和流式拦截器\n- 实现了 gRPC 授权中间件 (authz),支持基于引擎的权限控制\n- 添加了认证和授权中间件的单元测试\n- 配置了中间件的模块依赖和替换规则\n- 更新 go.work 文件以包含新的中间件模块路径",
"is_bot": false,
"headline": "feat(transport): 添加 gRPC 认证和授权中间件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T02:40:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c7099339f3e13d20ef2e88a9250a52d1cdb13759",
"body": "- 实现了基于引擎的HTTP请求授权功能\n- 提供可配置的动作、资源和主体解析器\n- 支持自定义错误处理和跳过函数\n- 集成测试覆盖基本授权、拒绝和自定义解析场景\n- 添加Go模块配置文件\n- 更新依赖版本引用",
"is_bot": false,
"headline": "feat(authz): 添加HTTP授权中间件实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T02:31:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e60a936694b16edfb1edacc29b4597a63a713bb",
"body": "- 新增 ACL 授权引擎支持访问控制列表\n- 新增 AWS IAM 授权引擎支持 JSON 策略\n- 新增 Cedar 授权引擎集成 AWS 验证权限服务\n- 在常量定义中注册新的授权引擎类型\n- 更新工作区配置以包含新授权模块\n- 提供完整的单元测试覆盖新功能",
"is_bot": false,
"headline": "feat(authz): 添加多种授权引擎实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T02:25:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50035e91a0e24c23bd1ebd1b5e44f0ee81031114",
"body": "- 在常量文件中新增 Basic 和 Digest 认证类型定义\n- 将新的认证模块添加到 go.work 工作区配置中\n- 新增 API Key 认证实现,支持静态密钥和自定义验证器\n- 新增 Basic Auth 认证实现,支持静态用户密码和自定义验证器\n- 为新增的认证模块创建独立的 go.mod 配置文件\n- 添加完整的单元测试覆盖新功能的各个场景",
"is_bot": false,
"headline": "feat(security): 添加多种认证方式支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T02:17:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4958dd2e0193a2f1f8d920c50e8b6b1121c4d65f",
"body": "- 实现Casbin适配器和配置模型文件(ABAC、ACL、RBAC等)\n- 集成Casbin授权引擎并提供完整的权限检查接口\n- 添加OPA策略定义和测试用例支持复杂授权逻辑\n- 提供项目级别的授权过滤和权限匹配功能\n- 实现动态策略加载和角色映射管理机制\n- 支持细粒度的资源访问控制和项目范围授权",
"is_bot": false,
"headline": "feat(security): 添加Casbin和OPA授权引擎实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T01:56:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d311e9c9feb3eb90eb1e6a51e58ee19afc2c4d07",
"body": "- 实现了基于engine.Authenticator的HTTP请求认证功能\n- 提供Middleware函数用于创建认证中间件\n- 支持自定义HTTP头名称和错误处理函数\n- 将认证结果注入到请求上下文中供下游处理器使用\n- 包含完整的单元测试覆盖各种认证场景\n- 提供详细的使用文档和示例代码",
"is_bot": false,
"headline": "feat(authn): 添加HTTP认证中间件功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T01:55:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "143b4330b5d4e080dec17d052e88c2ce7ca6adbb",
"body": "- 实现AuthClaims结构体和相关方法用于处理JWT声明\n- 添加OIDC标准声明支持包括iss、sub、aud、exp、nbf、iat、jti等字段\n- 实现多类型数据解析功能支持string、[]string、各种数值类型\n- 添加认证上下文管理功能用于存储和提取认证声明\n- 实现Authenticator接口定义统一的身份验证方法\n- 添加完整的错误码定义和错误处理机制\n- 实现Bearer Token解析和验证功能\n- 提供预共享密钥和OIDC等多种认证方式的基础架构\n- 添加单元测试确保核心功能的正确性",
"is_bot": false,
"headline": "feat(security): 添加JWT认证模块实现完整的身份验证功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T01:44:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "172caa743c5bf8cb78aa33a9cbcc37405e48c721",
"body": "- 实现了可配置的重试机制,支持指数退避和抖动策略\n- 添加了安全认证模块包括认证和授权功能\n- 配置了新的依赖模块到工作空间文件\n- 实现了多种退避策略:固定、线性、指数退避\n- 提供了完整的单元测试覆盖各种重试场景\n- 集成了上下文感知的取消机制和超时控制",
"is_bot": false,
"headline": "feat(core): 添加重试机制和安全认证模块",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-10T00:03:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d61b574ede507aa64f65a141822f8a4b635c7d65",
"body": "- 新增 charm 日志适配器,基于 Charmbracelet log 库提供彩色终端输出\n- 新增 glog 日志适配器,集成 Google glog 库用于基础设施项目\n- 新增 loki 日志适配器,支持将日志推送至 Grafana Loki 服务\n- 新增 sentry 日志适配器,用于错误监控和上报功能\n- 更新 go.work 文件,添加新模块依赖关系\n- 更新 go.work.sum 文件,同步依赖项校验和信息",
"is_bot": false,
"headline": "feat(log): 添加多个日志适配器实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T23:52:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5e406ce2b2c8cbbac3b03c4da5cab376be128415",
"body": "- 新增 charm 日志适配器,基于 Charmbracelet log 库提供彩色终端输出\n- 新增 glog 日志适配器,集成 Google glog 库用于基础设施项目\n- 新增 loki 日志适配器,支持将日志推送至 Grafana Loki 服务\n- 新增 sentry 日志适配器,用于错误监控和上报功能\n- 更新 go.work 文件,添加新模块依赖关系\n- 更新 go.work.sum 文件,同步依赖项校验和信息",
"is_bot": false,
"headline": "feat(log): 添加多个日志适配器实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T15:26:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "52685993d0a79375a99e8a77477c36cd97e02db0",
"body": "- 新增 CloudWatch 日志适配器,支持将日志发送到 AWS CloudWatch Logs\n- 添加 hclog 日志库适配器\n- 添加 phuslu/log 日志库适配器\n- 更新 go.work 文件以包含新的日志模块\n- 更新依赖项版本并添加必要的 AWS SDK 依赖\n- 修复 http 中间件 recovery 模块的依赖引用",
"is_bot": false,
"headline": "feat(log): 添加 AWS CloudWatch 和多个日志适配器支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T15:20:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "73001c5d218e7cf433d626c54e376280b26464b4",
"body": "- 新增 health 模块,包含 TCP、HTTP 和组合检查器\n- 实现 Health 聚合器和 Handler HTTP 端点\n- 添加 HTTP 中间件:logging、recovery、tracing、validate\n- 在 go.work 中注册新的模块路径\n- 集成 OpenTelemetry 追踪和结构化日志记录\n- 实现请求验证和 panic 恢复功能",
"is_bot": false,
"headline": "feat(health): 添加健康检查模块和HTTP中间件",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T15:12:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f6c458e36bfad2d9522bae9b38ceb15815baa7b",
"body": "- 实现了环境变量配置源,支持前缀和默认键设置\n- 集成了HashiCorp Vault作为配置源,支持轮询监控变更\n- 添加了Zookeeper作为配置源,使用监听器监控节点变化\n- 更新依赖模块版本,包括snappy和prometheus组件\n- 在工作区文件中注册新的配置源模块",
"is_bot": false,
"headline": "feat(config): 新增环境变量、Vault和Zookeeper配置源实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T14:59:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa91c1013ecd82d50f49dac316a5f1df7004981c",
"body": "- 新增 Avro 编码实现,基于 github.com/linkedin/goavro/v2\n- 新增 BSON 编码实现,基于 go.mongodb.org/mongo-driver/bson\n- 新增 CBOR 编码实现,基于 github.com/fxamacker/cbor/v2\n- 新增 FlatBuffers 编码实现,基于 github.com/google/flatbuffers\n- 新增 Thrift 编码实现,基于 github.com/apache/thrift\n- 更新 go.work 文件以包含新的编码模块\n- 更新相关依赖版本至最新稳定版\n- 为新编码格式添加相应的 go.mod 和 go.sum 配置文件",
"is_bot": false,
"headline": "feat(encoding): 添加多种编码格式支持并更新依赖",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T14:47:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "649228a026cb38b273c45a934a2ff25f0ef704c4",
"body": "- 实现了 MinIO 客户端封装,支持对象上传和下载功能\n- 实现了 S3 客户端封装,支持 AWS S3 兼容的对象存储操作\n- 添加了完整的单元测试覆盖存储客户端的核心功能\n- 统一了错误处理机制,包括空值验证和连接错误处理\n- 实现了对象体准备和大小计算功能,支持不同类型的读取器\n- 添加了配置标准化处理,支持 SSL 和路径风格配置选项\n- 创建了基础编码接口定义,用于消息体编解码处理",
"is_bot": false,
"headline": "feat(oss): 添加 MinIO 和 S3 存储客户端实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T14:25:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "914d5f284314b81711c7e3e6b2203d0340d1a623",
"body": "- 实现了 MinIO 客户端封装,支持对象上传和下载功能\n- 实现了 S3 客户端封装,支持 AWS S3 兼容的对象存储操作\n- 添加了完整的单元测试覆盖存储客户端的核心功能\n- 统一了错误处理机制,包括空值验证和连接错误处理\n- 实现了对象体准备和大小计算功能,支持不同类型的读取器\n- 添加了配置标准化处理,支持 SSL 和路径风格配置选项\n- 创建了基础编码接口定义,用于消息体编解码处理",
"is_bot": false,
"headline": "feat(oss): 添加 MinIO 和 S3 存储客户端实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T14:13:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9d011af2442ab1ed3ae3ed32097f354ab8b958c",
"body": "- 新增 langchaingo 包,提供 Agent、Chain 和客户端封装\n- 新增 eino 包,提供 Chain、Graph 和模型客户端实现\n- 添加 argo 工作流客户端,支持工作流 CRUD 和生命周期操作\n- 添加 conductor 工作流客户端,支持工作流执行和状态管理\n- 添加 goworkflows 客户端,提供工作流实例管理功能\n- 实现测试用例验证各客户端功能正确性",
"is_bot": false,
"headline": "feat(ai): 添加 AI 框架和工作流客户端实现",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T13:17:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6f5fbbd4d67c91543931bae666c384c095b66c9e",
"body": "- 更新 github.com/tx7do/go-wind-plugins/transport/http 到最新版本\n- 升级 github.com/mattn/go-isatty 从 v0.0.21 到 v0.0.22\n- 同步更新 go.sum 中的相关依赖哈希值\n- 保持项目依赖的一致性和安全性",
"is_bot": false,
"headline": "chore(deps): 更新 go-wind-plugins 和 go-isatty 依赖版本",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T11:48:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "11d950d8c8b3c75e816cc9f3c2cb11c98cb8f2c2",
"body": "- 重写 README.md 文件,增加项目介绍、功能特点、架构设计等内容\n- 新增英文版 README_en.md 文档\n- 新增日文版 README_ja.md 文档\n- 添加项目徽章和多语言链接导航\n- 补充详细的插件矩阵表格和使用示例\n- 更新项目结构说明和快速开始指南",
"is_bot": false,
"headline": "docs(readme): 完善项目文档并添加多语言支持",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T11:03:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "501565790eb05221a2216cea75e725561b9d3df0",
"body": "- 将 github.com/tx7do/go-wind 从 v0.0.0-20260609092115-0a5df91d8c74 更新到 v0.0.1\n- 在多个模块中添加 google.golang.org/genproto 的 replace 指令以解决导入冲突\n- 将 github.com/golang/mock 从 v1.6.0 更新到 v1.7.0-rc.1\n- 将 golang.org/x/time 从 v0.1.0 更新到 v0.15.0\n- 更新 polaris 相关依赖包版本\n- 移除 exclude 指令改为使用 replace 指令处理 genproto 冲突",
"is_bot": false,
"headline": "chore(deps): 更新依赖版本并修复模块冲突",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T10:55:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "25483f3d73c48896f81a5da9d9031f35774cdaa7",
"body": "- 实现了阿里云SLS日志记录器,支持DEBUG、INFO、WARN、ERROR级别日志\n- 集成了阿里云日志服务SDK,实现日志推送功能\n- 添加了日志格式化和类型转换功能,支持多种数据类型\n- 实现了配置选项和连接池管理\n- 编写了完整的单元测试用例\n\nfeat(config): 新增Apollo配置中心集成\n\n- 实现了Apollo配置源,支持远程配置获取和监听\n- 集成了Apollo客户端,支持命名空间和集群配置\n- 实现了配置缓存和变更监听机制\n- 添加了配置格式解析和键值映射功能\n- 编写了配置解析相关的测试用例\n\nfeat(registry): 新增Consul和Eureka注册中心支持\n\n- 实现了Consul客户端,支持服务注册、发现和健康检查\n- 实现了Eureka客户端,支持服务注册、心跳和实例管理\n- 添加了多数据中心支持和负载均衡策略\n- 实现了服务实例状态管理和故障转移机制\n- 提供了完整的服务注册与发现接口实现",
"is_bot": false,
"headline": "feat(log): 新增阿里云SLS日志记录功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T10:31:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "978e7462fe256ab3f5a12ded21bbb5679afb06f9",
"body": "- 实现配置管理模块,提供Reader、Closer、Watcher等接口\n- 添加服务发现模块,包含Registrar和Discovery接口定义\n- 实现HTTP传输层,支持gin、fiber等不同驱动\n- 添加日志组件,包含LevelFilter和MultiLogger功能\n- 更新.gitignore文件,优化忽略规则配置\n- 添加GRPC传输模块基础结构\n- 实现配置和注册中心的单元测试",
"is_bot": false,
"headline": "feat(plugin): 添加配置管理和服务发现插件功能",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T09:25:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c22d9f99ef903bbc9821c7bdcd65f2555105169",
"body": null,
"is_bot": false,
"headline": "Initial commit",
"author_name": "Bobo",
"author_login": "tx7do",
"committed_at": "2026-06-09T07:46:46Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 0,
"commits_last_year": 91,
"latest_release_at": null,
"latest_release_tag": null,
"releases_from_tags": false,
"days_since_last_push": 6,
"active_weeks_last_year": 5,
"days_since_latest_release": null,
"mean_days_between_releases": null
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 42,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/tx7do/go-wind-plugins/log",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/log",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-09T10:55:39Z",
"latest_version_yanked": null,
"days_since_latest_publish": 44
},
{
"name": "github.com/tx7do/go-wind-plugins/cache",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/cache",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-10T23:33:43Z",
"latest_version_yanked": null,
"days_since_latest_publish": 42
},
{
"name": "github.com/tx7do/go-wind-plugins/pprof",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/pprof",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-10T23:33:43Z",
"latest_version_yanked": null,
"days_since_latest_publish": 42
},
{
"name": "github.com/tx7do/go-wind-plugins/retry",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/retry",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-10T23:33:43Z",
"latest_version_yanked": null,
"days_since_latest_publish": 42
},
{
"name": "github.com/tx7do/go-wind-plugins/broker",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/broker",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-10T23:33:43Z",
"latest_version_yanked": null,
"days_since_latest_publish": 42
},
{
"name": "github.com/tx7do/go-wind-plugins/config",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/config",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-09T10:55:39Z",
"latest_version_yanked": null,
"days_since_latest_publish": 44
},
{
"name": "github.com/tx7do/go-wind-plugins/errors",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/errors",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-10T10:36:44Z",
"latest_version_yanked": null,
"days_since_latest_publish": 43
},
{
"name": "github.com/tx7do/go-wind-plugins/health",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/tx7do/go-wind-plugins/health",
"is_deprecated": false,
"latest_version": "v0.0.1",
"repository_url": "https://github.com/tx7do/go-wind-plugins",
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-06-10T23:33:43Z",
"latest_version_yanked": null,
"days_since_latest_publish": 42
}
]
},
"popularity": {
"forks": 1,
"stars": 4,
"watchers": 0,
"fork_history": {
"days": [
{
"date": "2026-06-18",
"count": 1
}
],
"complete": true,
"collected": 1,
"total_forks": 1
},
"star_history": null,
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"example"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [
"security/authz/opa/policy/Makefile"
],
"api_schema_files": [
"testing/api/graphql/schema.graphql",
"testing/api/protobuf/proto/hygrothermograph.proto",
"testing/api/protobuf/proto/i_hygrothermograph.proto"
],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [
"_examples/go.mod",
"ai/eino/go.mod",
"ai/langchaingo/go.mod",
"ai/openai/go.mod",
"broker/azuresb/go.mod",
"broker/gcpubsub/go.mod",
"broker/go.mod",
"broker/kafka/go.mod",
"broker/mqtt/go.mod",
"broker/nats/go.mod",
"broker/nsq/go.mod",
"broker/pulsar/go.mod",
"broker/rabbitmq/go.mod",
"broker/redis/go.mod",
"broker/rocketmq/go.mod",
"broker/sqs/go.mod",
"broker/stomp/go.mod",
"cache/go.mod",
"cache/local/go.mod",
"cache/redis/go.mod",
"circuitbreaker/go.mod",
"circuitbreaker/hystrix/go.mod",
"circuitbreaker/sentinel/go.mod",
"circuitbreaker/sres/go.mod",
"circuitbreaker/vegas/go.mod",
"config/apollo/go.mod",
"config/consul/go.mod",
"config/env/go.mod",
"config/etcd/go.mod",
"config/file/go.mod",
"config/fs/go.mod",
"config/go.mod",
"config/http/go.mod",
"config/kubernetes/go.mod",
"config/nacos/go.mod",
"config/oss/go.mod",
"config/polaris/go.mod",
"config/redis/go.mod",
"config/vault/go.mod",
"config/zookeeper/go.mod",
"encoding/avro/go.mod",
"encoding/bson/go.mod",
"encoding/cbor/go.mod",
"encoding/flatbuffers/go.mod",
"encoding/go.mod",
"encoding/gob/go.mod",
"encoding/json/go.mod",
"encoding/msgpack/go.mod",
"encoding/proto/go.mod",
"encoding/thrift/go.mod",
"encoding/toml/go.mod",
"encoding/xml/go.mod",
"encoding/yaml/go.mod",
"errors/go.mod",
"health/go.mod",
"log/aliyun/go.mod",
"log/charm/go.mod",
"log/cloudwatch/go.mod",
"log/fluent/go.mod",
"log/glog/go.mod",
"log/go.mod",
"log/hclog/go.mod",
"log/logrus/go.mod",
"log/loki/go.mod",
"log/phuslu/go.mod",
"log/sentry/go.mod",
"log/tencent/go.mod",
"log/zap/go.mod",
"log/zerolog/go.mod",
"metrics/datadog/go.mod",
"metrics/go.mod",
"metrics/otel/go.mod",
"metrics/prometheus/go.mod",
"oss/minio/go.mod",
"oss/s3/go.mod",
"pprof/go.mod",
"ratelimit/bbr/go.mod",
"ratelimit/go.mod",
"ratelimit/sentinel/go.mod",
"ratelimit/tokenbucket/go.mod",
"registry/consul/go.mod",
"registry/etcd/go.mod",
"registry/eureka/go.mod",
"registry/go.mod",
"registry/kubernetes/go.mod",
"registry/nacos/go.mod",
"registry/polaris/go.mod",
"registry/servicecomb/go.mod",
"registry/zookeeper/go.mod",
"retry/go.mod",
"security/authn/apikey/go.mod",
"security/authn/basicauth/go.mod",
"security/authn/go.mod",
"security/authn/hmac/go.mod",
"security/authn/jwt/go.mod",
"security/authn/mtls/go.mod",
"security/authn/oauth2/go.mod",
"security/authn/oidc/go.mod",
"security/authn/presharedkey/go.mod",
"security/authn/session/go.mod",
"security/authz/acl/go.mod",
"security/authz/awsiam/go.mod",
"security/authz/casbin/go.mod",
"security/authz/cedar/go.mod",
"security/authz/cerbos/go.mod",
"security/authz/go.mod",
"security/authz/opa/go.mod",
"security/authz/rbac/go.mod",
"security/authz/zanzibar/go.mod",
"security/crypto/go.mod",
"testing/go.mod",
"tracer/otlp/go.mod",
"transaction/dtm/go.mod",
"transaction/go.mod",
"transport/activemq/go.mod",
"transport/asynq/go.mod",
"transport/azuresb/go.mod",
"transport/cron/go.mod",
"transport/gcpubsub/go.mod",
"transport/go.mod",
"transport/graphql/go.mod",
"transport/grpc/client/go.mod",
"transport/grpc/middleware/authn/go.mod",
"transport/grpc/middleware/authz/go.mod",
"transport/grpc/middleware/circuitbreaker/go.mod",
"transport/grpc/middleware/codec/go.mod",
"transport/grpc/middleware/crypto/go.mod",
"transport/grpc/middleware/errors/go.mod",
"transport/grpc/middleware/logging/go.mod",
"transport/grpc/middleware/metadata/go.mod",
"transport/grpc/middleware/metrics/go.mod",
"transport/grpc/middleware/ratelimit/go.mod",
"transport/grpc/middleware/recovery/go.mod",
"transport/grpc/middleware/requestid/go.mod",
"transport/grpc/middleware/retry/go.mod",
"transport/grpc/middleware/timeout/go.mod",
"transport/grpc/middleware/tracing/go.mod",
"transport/grpc/middleware/validate/go.mod",
"transport/grpc/server/go.mod",
"transport/hptimer/go.mod",
"transport/http/benchmark/go.mod",
"transport/http/binding/go.mod",
"transport/http/driver/chi/go.mod",
"transport/http/driver/fiber/go.mod",
"transport/http/driver/gin/go.mod",
"transport/http/driver/std/go.mod",
"transport/http/go.mod",
"transport/http/middleware/authn/go.mod",
"transport/http/middleware/authz/go.mod",
"transport/http/middleware/circuitbreaker/go.mod",
"transport/http/middleware/codec/go.mod",
"transport/http/middleware/cors/go.mod",
"transport/http/middleware/crypto/go.mod",
"transport/http/middleware/errors/go.mod",
"transport/http/middleware/logging/go.mod",
"transport/http/middleware/metadata/go.mod",
"transport/http/middleware/metrics/go.mod",
"transport/http/middleware/ratelimit/go.mod",
"transport/http/middleware/recovery/go.mod",
"transport/http/middleware/requestid/go.mod",
"transport/http/middleware/retry/go.mod",
"transport/http/middleware/timeout/go.mod",
"transport/http/middleware/tracing/go.mod",
"transport/http/middleware/validate/go.mod",
"transport/http/redoc/go.mod",
"transport/http/swagger/go.mod",
"transport/http3/go.mod",
"transport/kafka/go.mod",
"transport/kcp/go.mod",
"transport/machinery/go.mod",
"transport/mcp/go.mod",
"transport/mqtt/go.mod",
"transport/nats/go.mod",
"transport/nsq/go.mod",
"transport/pulsar/go.mod",
"transport/rabbitmq/go.mod",
"transport/redis/go.mod",
"transport/rocketmq/go.mod",
"transport/signalr/go.mod",
"transport/socketio/go.mod",
"transport/sqs/go.mod",
"transport/sse/go.mod",
"transport/tcp/go.mod",
"transport/thrift/go.mod",
"transport/trpc/go.mod",
"transport/webrtc/go.mod",
"transport/websocket/go.mod",
"transport/webtransport/go.mod",
"workflow/argo/go.mod",
"workflow/conductor/go.mod",
"workflow/go.mod",
"workflow/goworkflows/go.mod",
"workflow/temporal/go.mod"
],
"largest_source_bytes": 85305,
"source_files_sampled": 812,
"oversized_source_files": 1,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"_examples/go.mod",
"broker/go.mod",
"cache/go.mod",
"circuitbreaker/go.mod",
"config/go.mod",
"encoding/go.mod",
"errors/go.mod",
"health/go.mod",
"log/go.mod",
"metrics/go.mod",
"pprof/go.mod",
"ratelimit/go.mod",
"registry/go.mod",
"retry/go.mod",
"testing/go.mod",
"transaction/go.mod",
"transport/go.mod",
"workflow/go.mod"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go"
],
"dependencies": [
{
"name": "github.com/99designs/gqlgen",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.17.89"
},
{
"name": "github.com/apache/thrift",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.23.0"
},
{
"name": "github.com/googollee/go-socket.io",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v1.7.0"
},
{
"name": "github.com/hibiken/asynq",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.26.0"
},
{
"name": "github.com/prometheus/client_golang",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v1.23.2"
},
{
"name": "github.com/tx7do/go-utils/crypto",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.2"
},
{
"name": "github.com/tx7do/go-wind",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/broker",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/cache",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/cache/local",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/circuitbreaker",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/circuitbreaker/sres",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-00010101000000-000000000000"
},
{
"name": "github.com/tx7do/go-wind-plugins/config/file",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/encoding/json",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/encoding/xml",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/health",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-00010101000000-000000000000"
},
{
"name": "github.com/tx7do/go-wind-plugins/metrics",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/metrics/prometheus",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-00010101000000-000000000000"
},
{
"name": "github.com/tx7do/go-wind-plugins/ratelimit",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/ratelimit/tokenbucket",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-00010101000000-000000000000"
},
{
"name": "github.com/tx7do/go-wind-plugins/registry/etcd",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/retry",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-00010101000000-000000000000"
},
{
"name": "github.com/tx7do/go-wind-plugins/testing",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/tracer/otlp",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/asynq",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/cron",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/graphql",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/grpc/middleware/logging",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/grpc/middleware/recovery",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/grpc/server",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/driver/std",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/middleware/codec",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/middleware/crypto",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/middleware/logging",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/middleware/recovery",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/middleware/requestid",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/middleware/tracing",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/swagger",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/http/redoc",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/kafka",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/socketio",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/sse",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/tcp",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/thrift",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/transport/websocket",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "go.etcd.io/etcd/client/v3",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v3.6.10"
},
{
"name": "go.opentelemetry.io/otel",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v1.43.0"
},
{
"name": "go.opentelemetry.io/otel/trace",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v1.43.0"
},
{
"name": "google.golang.org/grpc",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v1.80.0"
},
{
"name": "google.golang.org/protobuf",
"manifest": "_examples/go.mod",
"ecosystem": "go",
"version_constraint": "v1.36.11"
},
{
"name": "github.com/tx7do/go-wind-plugins/encoding",
"manifest": "broker/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/encoding/json",
"manifest": "broker/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/encoding/proto",
"manifest": "broker/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "go.opentelemetry.io/otel",
"manifest": "broker/go.mod",
"ecosystem": "go",
"version_constraint": "v1.43.0"
},
{
"name": "go.opentelemetry.io/otel/trace",
"manifest": "broker/go.mod",
"ecosystem": "go",
"version_constraint": "v1.43.0"
},
{
"name": "github.com/tx7do/go-wind-plugins/tracer/otlp",
"manifest": "broker/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind",
"manifest": "log/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind",
"manifest": "registry/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/99designs/gqlgen",
"manifest": "testing/go.mod",
"ecosystem": "go",
"version_constraint": "v0.17.89"
},
{
"name": "github.com/apache/thrift",
"manifest": "testing/go.mod",
"ecosystem": "go",
"version_constraint": "v0.23.0"
},
{
"name": "github.com/vektah/gqlparser/v2",
"manifest": "testing/go.mod",
"ecosystem": "go",
"version_constraint": "v2.5.32"
},
{
"name": "google.golang.org/grpc",
"manifest": "testing/go.mod",
"ecosystem": "go",
"version_constraint": "v1.80.0"
},
{
"name": "google.golang.org/protobuf",
"manifest": "testing/go.mod",
"ecosystem": "go",
"version_constraint": "v1.36.11"
},
{
"name": "github.com/tx7do/go-wind-plugins/broker",
"manifest": "transport/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/tx7do/go-wind-plugins/metrics",
"manifest": "transport/go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 0,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "tx7do",
"commits": 91,
"avatar_url": "https://avatars.githubusercontent.com/u/15902756?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": false,
"has_tests": true,
"ci_workflows": [],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": null,
"reason": "no workflows found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 10,
"reason": "all dependencies are pinned",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": null,
"reason": "No tokens found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "44 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "d8a493a75f72939eca7f812efa486406db4a4454",
"ran_at": "2026-07-23T21:51:51Z",
"aggregate_score": 2.1,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-17T00:06:44Z",
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/tx7do/go-wind-plugins",
"host": "github.com",
"name": "go-wind-plugins",
"owner": "tx7do"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 36,
"inputs": {
"security": 21,
"vitality": 35,
"community": 28,
"governance": 36,
"engineering": 58
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "at_risk",
"name": "Vitality",
"value": 35,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"commits_last_year": 91,
"human_commit_share": 1,
"days_since_last_push": 6,
"active_weeks_last_year": 5
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 6 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 6
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "5/52 weeks with commits",
"points": 3.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 5
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "91 commits in the last year",
"points": 17.6,
"status": "partial",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 91
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "critical",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"releases_count": 0
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "no releases published",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases_published",
"params": {}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "no releases",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_releases",
"params": {}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 28,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 8,
"inputs": {
"forks": 1,
"stars": 4,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "4 stars",
"points": 7.7,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 4
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "1 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 1
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 36,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution",
"pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 1,
"inputs": {
"merged_prs": 0,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "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": 65,
"inputs": {
"followers": 215,
"owner_type": "User",
"is_verified": null,
"owner_login": "tx7do",
"public_repos": 212,
"account_age_days": 3900
},
"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": "215 followers of tx7do",
"points": 16.8,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 215,
"login": "tx7do"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "212 public repos, account ~10 yr old",
"points": 25,
"status": "met",
"details": [
{
"code": "public_repos",
"params": {
"count": 212
}
},
{
"code": "account_age_years",
"params": {
"years": 10
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "good",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"packages": [
"github.com/tx7do/go-wind-plugins/log",
"github.com/tx7do/go-wind-plugins/cache",
"github.com/tx7do/go-wind-plugins/pprof",
"github.com/tx7do/go-wind-plugins/retry",
"github.com/tx7do/go-wind-plugins/broker",
"github.com/tx7do/go-wind-plugins/config",
"github.com/tx7do/go-wind-plugins/errors",
"github.com/tx7do/go-wind-plugins/health"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 42
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "8 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 8,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 42 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 42
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "1 published versions",
"points": 4,
"status": "partial",
"details": [
{
"code": "published_versions",
"params": {
"count": 1
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 58,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "at_risk",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"has_ci": false,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"topics": [
"adapter",
"broker",
"configuration",
"go",
"grpc",
"http",
"microservice",
"opentelemetry",
"plugins",
"service-discovery"
],
"has_wiki": true,
"homepage": "https://www.gowind.cloud/",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://www.gowind.cloud/",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "10 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 10
}
}
],
"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": "critical",
"name": "Security",
"value": 21,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "critical",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Dangerous-Workflow, Packaging, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"dangerous_workflow",
"packaging",
"signed_releases",
"token_permissions"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 21,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 13,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 5,
"scorecard_aggregate": 2.1
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no workflows found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "all dependencies are pinned",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "No tokens found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "44 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 2
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 67,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "at_risk",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.989,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "no CLAUDE.md / AGENTS.md / editor rules",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_instructions",
"params": {}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "90 of 91 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 90,
"sampled": 91
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [
"security/authz/opa/policy/Makefile"
],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0,
"toolchain_manifests": [
"_examples/go.mod",
"ai/eino/go.mod",
"ai/langchaingo/go.mod",
"ai/openai/go.mod",
"broker/azuresb/go.mod",
"broker/gcpubsub/go.mod",
"broker/go.mod",
"broker/kafka/go.mod",
"broker/mqtt/go.mod",
"broker/nats/go.mod",
"broker/nsq/go.mod",
"broker/pulsar/go.mod",
"broker/rabbitmq/go.mod",
"broker/redis/go.mod",
"broker/rocketmq/go.mod",
"broker/sqs/go.mod",
"broker/stomp/go.mod",
"cache/go.mod",
"cache/local/go.mod",
"cache/redis/go.mod",
"circuitbreaker/go.mod",
"circuitbreaker/hystrix/go.mod",
"circuitbreaker/sentinel/go.mod",
"circuitbreaker/sres/go.mod",
"circuitbreaker/vegas/go.mod",
"config/apollo/go.mod",
"config/consul/go.mod",
"config/env/go.mod",
"config/etcd/go.mod",
"config/file/go.mod",
"config/fs/go.mod",
"config/go.mod",
"config/http/go.mod",
"config/kubernetes/go.mod",
"config/nacos/go.mod",
"config/oss/go.mod",
"config/polaris/go.mod",
"config/redis/go.mod",
"config/vault/go.mod",
"config/zookeeper/go.mod",
"encoding/avro/go.mod",
"encoding/bson/go.mod",
"encoding/cbor/go.mod",
"encoding/flatbuffers/go.mod",
"encoding/go.mod",
"encoding/gob/go.mod",
"encoding/json/go.mod",
"encoding/msgpack/go.mod",
"encoding/proto/go.mod",
"encoding/thrift/go.mod",
"encoding/toml/go.mod",
"encoding/xml/go.mod",
"encoding/yaml/go.mod",
"errors/go.mod",
"health/go.mod",
"log/aliyun/go.mod",
"log/charm/go.mod",
"log/cloudwatch/go.mod",
"log/fluent/go.mod",
"log/glog/go.mod",
"log/go.mod",
"log/hclog/go.mod",
"log/logrus/go.mod",
"log/loki/go.mod",
"log/phuslu/go.mod",
"log/sentry/go.mod",
"log/tencent/go.mod",
"log/zap/go.mod",
"log/zerolog/go.mod",
"metrics/datadog/go.mod",
"metrics/go.mod",
"metrics/otel/go.mod",
"metrics/prometheus/go.mod",
"oss/minio/go.mod",
"oss/s3/go.mod",
"pprof/go.mod",
"ratelimit/bbr/go.mod",
"ratelimit/go.mod",
"ratelimit/sentinel/go.mod",
"ratelimit/tokenbucket/go.mod",
"registry/consul/go.mod",
"registry/etcd/go.mod",
"registry/eureka/go.mod",
"registry/go.mod",
"registry/kubernetes/go.mod",
"registry/nacos/go.mod",
"registry/polaris/go.mod",
"registry/servicecomb/go.mod",
"registry/zookeeper/go.mod",
"retry/go.mod",
"security/authn/apikey/go.mod",
"security/authn/basicauth/go.mod",
"security/authn/go.mod",
"security/authn/hmac/go.mod",
"security/authn/jwt/go.mod",
"security/authn/mtls/go.mod",
"security/authn/oauth2/go.mod",
"security/authn/oidc/go.mod",
"security/authn/presharedkey/go.mod",
"security/authn/session/go.mod",
"security/authz/acl/go.mod",
"security/authz/awsiam/go.mod",
"security/authz/casbin/go.mod",
"security/authz/cedar/go.mod",
"security/authz/cerbos/go.mod",
"security/authz/go.mod",
"security/authz/opa/go.mod",
"security/authz/rbac/go.mod",
"security/authz/zanzibar/go.mod",
"security/crypto/go.mod",
"testing/go.mod",
"tracer/otlp/go.mod",
"transaction/dtm/go.mod",
"transaction/go.mod",
"transport/activemq/go.mod",
"transport/asynq/go.mod",
"transport/azuresb/go.mod",
"transport/cron/go.mod",
"transport/gcpubsub/go.mod",
"transport/go.mod",
"transport/graphql/go.mod",
"transport/grpc/client/go.mod",
"transport/grpc/middleware/authn/go.mod",
"transport/grpc/middleware/authz/go.mod",
"transport/grpc/middleware/circuitbreaker/go.mod",
"transport/grpc/middleware/codec/go.mod",
"transport/grpc/middleware/crypto/go.mod",
"transport/grpc/middleware/errors/go.mod",
"transport/grpc/middleware/logging/go.mod",
"transport/grpc/middleware/metadata/go.mod",
"transport/grpc/middleware/metrics/go.mod",
"transport/grpc/middleware/ratelimit/go.mod",
"transport/grpc/middleware/recovery/go.mod",
"transport/grpc/middleware/requestid/go.mod",
"transport/grpc/middleware/retry/go.mod",
"transport/grpc/middleware/timeout/go.mod",
"transport/grpc/middleware/tracing/go.mod",
"transport/grpc/middleware/validate/go.mod",
"transport/grpc/server/go.mod",
"transport/hptimer/go.mod",
"transport/http/benchmark/go.mod",
"transport/http/binding/go.mod",
"transport/http/driver/chi/go.mod",
"transport/http/driver/fiber/go.mod",
"transport/http/driver/gin/go.mod",
"transport/http/driver/std/go.mod",
"transport/http/go.mod",
"transport/http/middleware/authn/go.mod",
"transport/http/middleware/authz/go.mod",
"transport/http/middleware/circuitbreaker/go.mod",
"transport/http/middleware/codec/go.mod",
"transport/http/middleware/cors/go.mod",
"transport/http/middleware/crypto/go.mod",
"transport/http/middleware/errors/go.mod",
"transport/http/middleware/logging/go.mod",
"transport/http/middleware/metadata/go.mod",
"transport/http/middleware/metrics/go.mod",
"transport/http/middleware/ratelimit/go.mod",
"transport/http/middleware/recovery/go.mod",
"transport/http/middleware/requestid/go.mod",
"transport/http/middleware/retry/go.mod",
"transport/http/middleware/timeout/go.mod",
"transport/http/middleware/tracing/go.mod",
"transport/http/middleware/validate/go.mod",
"transport/http/redoc/go.mod",
"transport/http/swagger/go.mod",
"transport/http3/go.mod",
"transport/kafka/go.mod",
"transport/kcp/go.mod",
"transport/machinery/go.mod",
"transport/mcp/go.mod",
"transport/mqtt/go.mod",
"transport/nats/go.mod",
"transport/nsq/go.mod",
"transport/pulsar/go.mod",
"transport/rabbitmq/go.mod",
"transport/redis/go.mod",
"transport/rocketmq/go.mod",
"transport/signalr/go.mod",
"transport/socketio/go.mod",
"transport/sqs/go.mod",
"transport/sse/go.mod",
"transport/tcp/go.mod",
"transport/thrift/go.mod",
"transport/trpc/go.mod",
"transport/webrtc/go.mod",
"transport/websocket/go.mod",
"transport/webtransport/go.mod",
"workflow/argo/go.mod",
"workflow/conductor/go.mod",
"workflow/go.mod",
"workflow/goworkflows/go.mod",
"workflow/temporal/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "security/authz/opa/policy/Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "security/authz/opa/policy/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": "Go (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 91",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 91
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "all dependencies are pinned",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 85305,
"source_files_sampled": 812,
"oversized_source_files": 1
},
"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": "1/812 source files over 60KB",
"points": 54.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 812,
"oversized": 1
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "good",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"example_dirs": [
"example"
],
"has_mcp_signal": false,
"api_schema_files": [
"testing/api/graphql/schema.graphql",
"testing/api/protobuf/proto/hygrothermograph.proto",
"testing/api/protobuf/proto/i_hygrothermograph.proto"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "testing/api/graphql/schema.graphql, testing/api/protobuf/proto/hygrothermograph.proto, testing/api/protobuf/proto/i_hygrothermograph.proto",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "testing/api/graphql/schema.graphql, testing/api/protobuf/proto/hygrothermograph.proto, testing/api/protobuf/proto/i_hygrothermograph.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": "example",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "example"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-23T21:51:59.657616Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/tx7do/go-wind-plugins.svg",
"full_name": "tx7do/go-wind-plugins",
"license_state": "standard",
"license_spdx": "MIT"
}