原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 70277,
"has_wiki": false,
"homepage": null,
"languages": {
"Go": 4665806,
"CSS": 25422,
"HTML": 677,
"Rust": 9034,
"Makefile": 4260,
"Dockerfile": 710,
"TypeScript": 102887
},
"pushed_at": "2026-07-25T02:59:55Z",
"created_at": "2026-06-21T08:43:34Z",
"owner_type": "User",
"updated_at": "2026-07-17T14:02:27Z",
"description": "Remilia - 通用聊天机器人框架",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "master",
"license_spdx_raw": "MIT",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "i dont have itQAQ",
"name": "Komei_DiSanXian",
"type": "User",
"login": "KomeiDiSanXian",
"company": "emmmm",
"location": "Solar system",
"followers": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/53388791?v=4",
"created_at": "2019-07-28T04:32:12Z",
"is_verified": null,
"public_repos": 13,
"account_age_days": 2554
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v1.20.1",
"kind": "patch",
"published_at": "2026-07-17T05:15:27Z"
},
{
"tag": "v1.20.0",
"kind": "minor",
"published_at": "2026-06-30T04:07:27Z"
},
{
"tag": "v1.19.0",
"kind": "minor",
"published_at": "2026-06-30T03:02:25Z"
},
{
"tag": "v1.18.0",
"kind": "minor",
"published_at": "2026-06-29T16:40:21Z"
},
{
"tag": "v1.17.1",
"kind": "patch",
"published_at": "2026-06-29T09:20:41Z"
},
{
"tag": "v1.17.0",
"kind": "minor",
"published_at": "2026-06-29T09:20:14Z"
},
{
"tag": "v1.16.0",
"kind": "minor",
"published_at": "2026-06-25T13:25:00Z"
},
{
"tag": "v1.15.1",
"kind": "patch",
"published_at": "2026-06-25T10:28:24Z"
},
{
"tag": "v1.15.0",
"kind": "minor",
"published_at": "2026-06-25T09:44:39Z"
},
{
"tag": "v1.14.1",
"kind": "patch",
"published_at": "2026-06-25T07:39:17Z"
},
{
"tag": "v1.14.0",
"kind": "minor",
"published_at": "2026-06-25T06:34:06Z"
},
{
"tag": "v1.13.0",
"kind": "minor",
"published_at": "2026-06-23T04:42:16Z"
},
{
"tag": "v1.12.4",
"kind": "patch",
"published_at": "2026-06-22T09:37:20Z"
}
],
"recent_commits": [
{
"oid": "402a8b45a68a37ee39cf56d2e75adadbf4369e96",
"body": "# Conflicts:\n#\tgo.mod\n#\tgo.sum",
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/master'",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-07-17T05:26:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1bb0cbe2258f4d4ca0f6b4433b39add036bdbde9",
"body": null,
"is_bot": false,
"headline": "chore(deps): update dependencies",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-07-17T05:24:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cfd06c25f0f7b7f395074824de02bfe111b269f",
"body": null,
"is_bot": false,
"headline": "chore(deps): update dependencies",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-07-17T05:09:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "610327169a9b0eb4f97bd2c0086c97f6a7c4f838",
"body": "…olation\n\n- SSRF protection: DNS-level IP validation + dedicated HTTP client for attachment downloads\n- SkillRegistry: composite key (ownerID+name) prevents user skill name collisions\n- executeRealCommand: sanitize LLM-generated arguments to prevent command injection\n- ToolAllowlist config: explicit\n[…]\n after all plugin registrations complete\n- Config: validate temperature/top_p/max_retries ranges, handle json.Number type\n- Code review: fix trigger_cmd dead branch, add json.Number support in helpers",
"is_bot": false,
"headline": "feat: enhance AI plugin security, concurrency, and skill namespace is…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-07-17T05:01:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1e0bb153526ff2884a68a203c0209685b6b67351",
"body": "Add TryEditMessage, TryAddReaction, TryRemoveReaction,\nTryDeleteMessage, TrySendTyping to Context.\n\nThese follow the existing Try* pattern: type-assert the platform\nSender, silently no-op if unsupported.\n\n- TryEditMessage: edit bot's sent message (MessageEditor)\n- TryAddReaction/RemoveReaction: react to current message (ReactionSender)\n- TryDeleteMessage: recall bot's own message (MessageDeleter)\n- TrySendTyping: typing indicator (TypingNotifier)\n\nBump v1.19.0 -> v1.20.0",
"is_bot": false,
"headline": "feat: add Context convenience methods for message operations",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-30T03:53:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c1f31eb62ba04dbe9bae141acf1ef1601b53639d",
"body": "Root cause analysis (cpu.pprof + trace.out):\n- 47.5% CPU in runtime.cgocall from modernc.org/sqlite\n- 30% in messagelog.flushLoop SQLite COMMIT (FlushFileBuffers)\n- 20% in auditlog.insertToDB (per-entry goroutine)\n- 272 goroutines created in 15s trace\n\nChanges:\n1. WAL mode + synchronous=NORMAL on al\n[…]\na single transaction\n3. messagelog: flush ticker 100ms -> 500ms\n4. PRAGMA auto_vacuum = INCREMENTAL on all DBs\n - Clear() triggers incremental_vacuum(500) to reclaim space\n5. Bump v1.18.0 -> v1.19.0",
"is_bot": false,
"headline": "perf: optimize SQLite write paths to reduce /ping latency",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-30T02:47:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5ca99b41a58bdc94c770d0038c749e50bf03ca3c",
"body": "Add micro-benchmarks for two previously estimated metrics:\n\n- Future allocation: ~35 ns/op, 112 B/op, 1 alloc (was ~240 ns/op, 0 allocs)\n- Dispatcher queue injection: ~4.5 ns/op, 0 allocs (was ~500 ns/op)\n\nAlso fix BenchmarkRingBufferPush to handle wrap-around and add\nBenchmarkDispatcherQueueInjection to measure the lock+push+unlock path.",
"is_bot": false,
"headline": "perf: add Future allocation and Dispatcher queue injection benchmarks",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-30T02:47:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b83496cd3154e1d0005c05e2a121b9e0c23eb767",
"body": null,
"is_bot": false,
"headline": "v1.18.0: fix cmd/bot plugins for async Reply API",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:26:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "74f805d78d3c5470f7db0ab2c4a0342035279301",
"body": "- Add ctx.SetDispatcher(e.dispatcher) to ProcessEventSync so ctx.Reply()\n works correctly in synchronous event processing paths\n- Fix pluginctrl auto-wire tests to call WaitForDispatcher after ProcessEvent\n- Fix testbot tests to call WaitForDispatcher before sent-message assertions",
"is_bot": false,
"headline": "v1.18.0: fix tests for async Reply API",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:18:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "301536f84e24b164f076378bbc8d8acde4b393fa",
"body": "- Add eng.WaitForDispatcher() after ProcessEvent in pluginctrl auto-wire tests\n- Add Bot.WaitForDispatcher() to testutil and call before sent-message assertions\n- Fix testbot tests to await Dispatcher completion before checking messages",
"is_bot": false,
"headline": "v1.18.0: fix tests for async Reply API",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:12:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9b6e4bb2990bba6455644171cc7b60f53533262c",
"body": "- Bump version to 1.18.0\n- Update CHANGELOG with v1.18.0 entry (OutboundDispatcher, Future, Reply changes)\n- Update README: add Send Dispatcher feature, update examples for async Reply,\n add Future/Dispatcher performance metrics",
"is_bot": false,
"headline": "v1.18.0: update docs and version",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:12:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67309eda0262db0bde75fe58b9329911f2e94e75",
"body": "- Bump version to 1.18.0\n- Update CHANGELOG with v1.18.0 entry (OutboundDispatcher, Future, Reply changes)\n- Update README: add Send Dispatcher feature, update examples for async Reply,\n add Future/Dispatcher performance metrics",
"is_bot": false,
"headline": "v1.18.0: update docs and version",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:04:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7e7d1560bac84d7d754cbd4fd6d20550b3772a2b",
"body": "- Update all examples (basic-bot, command-bot, discord-bot, error-handling,\n async-tasks, milky-bot, middleware-example, showcase, etc.)\n- Update cmd/bot plugins (anime, bilibili, css, fortune, genshin, iss,\n minecraft, rpg/coc, rpg/dice, rpg/dnd, starrail, weather)\n- Remove unused error return values from Reply calls",
"is_bot": false,
"headline": "v1.18.0: migrate examples and cmd plugins to async Reply API",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:04:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0c1b016b61db2cc3f0aaa951e5fe101ce6f57276",
"body": "- Update all builtin plugins (ping, ai, help, welcome, cooldown, admin,\n debug, pluginctrl, ratelimitui) to use new ctx.Reply() returning Future\n- Update middleware/auth, plugin/wasm, platform/qq/result.go\n- Remove unused error return values from Reply calls\n- Fix return statements to use nil instead of Reply error",
"is_bot": false,
"headline": "v1.18.0: migrate builtin plugins to async Reply API",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:04:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21178ded20c6fd8a96061cbce286f48a64edf9d0",
"body": "- Add infra/future: generic Future with sync.Once, Wait/Result/IsDone/MustWait\n- Add core/engine/OutboundDispatcher: per-Chat FIFO ringbuffer, semaphore,\n panic recover, three-phase shutdown (Close/Drain/ForceClose)\n- Add core/engine/dispatcher_test.go: 15 tests covering FIFO, backpressure,\n concu\n[…]\nion and GetDispatcher method to Engine\n- Update Engine.Shutdown to drain Dispatcher after ExecPool\n- Add WaitForDispatcher test helper\n- Add design doc: docs/05-performance/OUTBOUND_DISPATCHER_PLAN.md",
"is_bot": false,
"headline": "v1.18.0: add OutboundDispatcher and async Reply",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T16:04:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "605263dda3fb643204287183ee9b821f63ed313c",
"body": "- skill.go: check removeLocked return value in Promote (lint errcheck)\n- watcher_test.go: use assert.Eventually to wait for config to be\n fully applied after reload callback (reload stores config AFTER\n callbacks, causing a race in the original test)",
"is_bot": false,
"headline": "fix: address lint errcheck and flaky watcher test",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T09:17:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "da9f6b4a4399d4504e1bb827ade71211eabda80d",
"body": "…st context\n\nLogging now records:\n- event_type (was: type)\n- platform\n- user_id + user_name (when DisplayName differs from ID)\n- chat_id + is_group\n- request_id (from RequestID middleware, when available)\n- latency_ms\n\nMetrics remains as a lightweight Debug-only alternative.",
"is_bot": false,
"headline": "feat(middleware): enrich Logging with platform, user, chat, and reque…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T09:04:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2448a455996a74a33968f05047b1a68354dd9a4b",
"body": "refactor(middleware): extract rate limit shard types to package level\n- rateLimitShard, rateLimitBucketEntry, rateLimitShards types\n- fnv1aHash, cleanupIfNeeded, getOrCreateLimiter as methods\n- Reduce RateLimitTokenBucketWithConfig from 120 to 40 lines\n- Improve Metrics godoc",
"is_bot": false,
"headline": "chore: bump version to v1.17.1",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T09:01:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3cbfa80cf3f79b583255a2c95ccb82a0fa151cf5",
"body": "…s godoc\n\n- Extract rateLimitShard/rateLimitBucketEntry/rateLimitShards types to package level\n- Extract fnv1aHash(), cleanupIfNeeded(), getOrCreateLimiter() as standalone methods\n- RateLimitTokenBucketWithConfig reduced from 120 to 40 lines\n- Metrics: improve godoc, note relation to Logging\n- latency latency and event_type to latency_ms for structured logging",
"is_bot": false,
"headline": "refactor(middleware): extract rate limit shard types, clean up Metric…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T09:01:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fb2246290c3a292f0884baea64a447fe7064ee9d",
"body": "- /ai skill add/list/remove/enable/disable/promote/info with nested command defs\n- Two-phase skill registration via core/fsm engine\n- FSM cancel event for cancel/取消 keywords\n- lifecycleCtx replaces context.Background() for proper shutdown\n- doSummary checks lifecycle status before sending error reply\n- Admin permission check for promote via RBAC\n- Nested subcommand definitions for help plugin discovery\n- Bump version to v1.17.0",
"is_bot": false,
"headline": "feat(ai): user skill management commands and FSM integration",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T08:57:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b4d537db5865f78346074a7aa0608e25c04dd377",
"body": "- Add OwnerID, Enabled, UsageCount fields to Skill struct\n- Refactor SkillRegistry with sync.RWMutex and byOwner index\n- Add RegisterUserSkill for user-scoped skills (u_ prefix)\n- Inject user skills per-session in processWithTools\n- buildSkillTools only injects system skills (sub-agent isolation)\n- Config: max_user_skills, max_user_skill_prompt_len",
"is_bot": false,
"headline": "feat(ai): skill ownership and user skill registry",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-29T08:57:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4f75fc0709dece6b055685bfd8529dd8a728ca8",
"body": "…ugins\n\n- When trigger_cmd is set: @-bot only responds to messages matching the trigger prefix\n- When trigger_cmd is not set: @-bot excludes command messages via isCommandMessage\n- Prevents AI catch-all from stealing /ping and other commands",
"is_bot": false,
"headline": "fix(ai): prevent AtBot handler from conflicting with other command pl…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T13:49:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a5dae018cf16081ac7422f2eee09f6d4e3b7617b",
"body": "… for @-bot handler\n\nOnMentionedBotOrNoMentions() allows messages with no @ at all,\ncausing AI catch-all to match plain commands like /ping\nand compete with the intended handler.",
"is_bot": false,
"headline": "fix(ai): use OnMentionedBot() instead of OnMentionedBotOrNoMentions()…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T13:33:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96ebecff718473f2db205e018c9210dcbfa8d337",
"body": "…orms_ReplaceAdapter",
"is_bot": false,
"headline": "fix: add WaitStarted before checking new adapter in TestBot_SyncPlatf…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T13:28:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c500924a155b5bbee4460c8937ce42c29958b996",
"body": "- 12 plugins, 22 registration points in cmd/bot/plugins\n- weather, starrail, minecraft, genshin, fortune, css, anime, bilibili, iss\n- rpg/dnd, rpg/dice, rpg/coc",
"is_bot": false,
"headline": "chore: add OnMentionedBotOrNoMentions to cmd/bot plugins",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T13:09:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c0aede326ccd4e8ea523456ba5ec6bde66332bd2",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.16.0",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T13:03:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa0c00cb0de79fd2028862334f285d800274fa66",
"body": "… table\n\n- Remove encoding/json import and JSON serialization\n- Add MessageMention model (EventID, MentionID, DisplayName, IsBot, IsSelf)\n- flushLoop writes message_mentions in same transaction as messages\n- loadMentions() bulk-loads mentions by EventID for DB queries\n- Clear() now also cleans up mentions referencing deleted events",
"is_bot": false,
"headline": "perf(messagelog): replace JSON mentions with dedicated MessageMention…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T13:01:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8396ede5d7375929e9d371a46bcfb6212db286b",
"body": "- Add Mentions []platform.UserInfo field to RecordEntry\n- Add Mentions string (JSON) column to MessageRecord GORM model\n- Extract mentions via platform.GetMentions() in eventToEntry\n- JSON serialize/deserialize in recordToModel/modelToEntry",
"is_bot": false,
"headline": "feat(messagelog): persist mentions data to SQLite",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T12:56:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6e06e612203db8383e6dc267ff5c97e1e2b64bc",
"body": "- Add OnMentionedBotOrNoMentions() rule to ping, help, admin (6 commands),\n pluginctrl (12 commands), autoresponder, customcommands (2 registrations),\n debug, logviewer, ratelimitui\n- Prevents commands from responding when @-mentioning others but not the bot\n- Listener plugins (messagelog, auditlog, antispam, etc.) are not affected",
"is_bot": false,
"headline": "feat: add OnMentionedBotOrNoMentions gate to all command plugins",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T12:54:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4c32fb0f276bff46ec5588f701e812561ce1aff",
"body": "…UP_MESSAGE_CREATE",
"is_bot": false,
"headline": "fix(qq): strip <@id> from content and implement MentionsEvent for GRO…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T12:11:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9edb7c64f987ac1c3cf3abc92705cd911b2ad10f",
"body": "…group messages",
"is_bot": false,
"headline": "fix(qq): use author.username as DisplayName instead of author.id for …",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T12:03:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f88528d37666880307bbf11b73808d210d1991d",
"body": "…MOVE event support",
"is_bot": false,
"headline": "feat(qq): add GROUP_MESSAGE_CREATE, GROUP_MEMBER_ADD, GROUP_MEMBER_RE…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T11:51:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f163ce8a68876b63117843623ec1938fee0edf99",
"body": "The mock adapter's Start() runs in a separate goroutine, so\nIsRunning() could return false before the goroutine sets\nm.started. Replaced time.Sleep with WaitStarted() using\na closed channel for deterministic synchronization.",
"is_bot": false,
"headline": "fix: use channel synchronization in SyncPlatforms test mock",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T11:20:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "040516fec5530ab4c46c51928b0ab83eeffa0531",
"body": "…nflicts",
"is_bot": false,
"headline": "ci: limit test parallelism (-p 4) to prevent intermittent port/CPU co…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T11:18:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "db59c3b1eb3db67d69f5e5f792f0ee9bfac8f3d2",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.15.1",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T10:14:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "89371766dd115cff683fe027ea8a5098887eae4c",
"body": "- Guard all middleware UpdateConfig calls with change detection\n (retry, dedup, degradation) to avoid unnecessary work when their\n fields haven't changed\n- Guard pprof.UpdateConfig against repeated calls with same values\n- Guard logger.SetTimeFormat/SetLevel against repeated calls\n- Fix lastBotCfg data race in platform subscriber with mutex\n- Improve SetSamplingRate warning message",
"is_bot": false,
"headline": "fix: prevent unnecessary side effects on unrelated config changes",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T10:09:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9ffbe295adadd0276211d9191db71309ceaad2a",
"body": "Previously every unrelated config change triggered SetSamplingRate\nwhich printed a warning in fixed-sampling mode even though the sampling\nrate value hadn't changed.",
"is_bot": false,
"headline": "fix: only warn about fixed sampling rate when value actually changes",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T10:01:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a2449613420e634817a55d4dc231cb9f5836cdc0",
"body": "Only re-initialize logger when log.format/console/file/file_path\nactually change. Previously every config change triggered logger.Init\nwhich closed and reopened log files unnecessarily.",
"is_bot": false,
"headline": "fix: skip logger.Init on unrelated config changes",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:59:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d19c8a167b0b4cde32d3643abbbfca61cbeff9cc",
"body": "Previously every config change (e.g. log.level) triggered\nbuildDesiredAdapters + SyncPlatforms, which stopped and\nrestarted all adapters despite identical config, causing\nunnecessary connection drops.",
"is_bot": false,
"headline": "fix: only trigger platform hot-swap when bot.* config actually changes",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:58:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "88943d659e43035cadcbb54d0178e941b8146695",
"body": null,
"is_bot": false,
"headline": "docs: update CHANGELOG for v1.14.1 and v1.15.0",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:30:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8bdbe03c476d6844a8c3db732cc064bffe1df266",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.15.0",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:29:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "62ca9e7f6120d32c7c6a5fb3bad3ca3569b7cdbe",
"body": "- Bot.SyncPlatforms: 5 tests covering add/remove/replace/nil/noregistry\n- AdaptiveSampler: 6 tests for SetBaseSamplingRate, AdjustSamplingRate\n- Bridge: extended tests for degradation, middleware config snapshot, log\n- Degradation: UpdateConfig tests for MonitorInterval and Strategy\n- Telemetry: Set\n[…]\ns with zerolog state cleanup\n- Pprof: dynamic port allocation, UpdateConfig test\n- Fix timing assertions in engine_shutdown and retry sleep tests\n- Fix zerolog global state pollution from logger tests",
"is_bot": false,
"headline": "test: add hot-reload tests and fix timing sensitivity",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:29:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c7550e5acf71ae3f7d2af261cefdcd4bdb958fc1",
"body": null,
"is_bot": false,
"headline": "feat: implement platform hot-swap (SyncPlatforms) and config annotations",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:28:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a720986c44215e5d9c8e368c85dd0441a26229f8",
"body": null,
"is_bot": false,
"headline": "feat: add hot-reload infrastructure for all tiers",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T09:28:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39d209960e7a023d56bac431d871a53f56daa9c6",
"body": null,
"is_bot": false,
"headline": "refactor: split cmd/bot into separate Go module",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T07:37:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "30969186edd581761792052d97453926cc12a14a",
"body": null,
"is_bot": false,
"headline": "fix: start config watcher for hot-reload and unify log prefix",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T07:24:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "669fd11da8a1cda439b8978d4e77564af3e8557e",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.14.0",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T06:19:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "579ab321de64d6a9a2222b4fb8e376e0c10af5a8",
"body": "- setup.go: middleware registration now respects all enable flags\n - Recover, Logging, Metrics: conditional on boolean flags\n - Auth: enable + whitelist → middleware.Auth()\n - Dedup: enable + config values → dedup.NewDedupFilter()\n - Backpressure: limit/policy/timeout → middleware.Backpressure()\n[…]\nMiddleware()\n- hotreload.go: OnConfigChange now checks Enable flags before updating\n - RateLimit.Enable, Dedup.Enable, Degradation.Enable\n- Added parseDuration() and parseBackpressurePolicy() helpers",
"is_bot": false,
"headline": "feat: wire middleware config enable flags and hot-reload",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T06:16:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "74efbe37fa93f435a1054206d5d53978c21fe06e",
"body": "- Rename middleware.ConcurrencyLimit() -> Backpressure()\n with BackpressurePolicy/Drop/Block/TryWait constants\n- Move ConcurrencyConfig from top-level to middleware.backpressure\n with new struct name BackpressureConfig (3 fields, no event_buffer)\n- Delete concurrency.event_buffer (dead field, already in qq.webhook)\n- Update all YAML files (config.example.yaml, config.default.yaml,\n k8s/configmap.yaml, all examples) to use middleware.backpressure:\n- Update all test fixtures and assertions",
"is_bot": false,
"headline": "refactor: rename ConcurrencyLimit -> Backpressure, move under middleware",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T06:07:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5186cd7c06f81162966303759f951556a75d84b2",
"body": "…fields\n\nCore changes:\n- Remove ServerConfig type and Config.Server field entirely\n- Add Host, Port, ShutdownTimeout to WebhookConfig (moved from ServerConfig)\n- Remove 7 BigCache dead fields from WebhookConfig: DedupEnable, Shards,\n LifeWindow, CleanWindow, MaxEntrySize, HardMaxCacheSize, MaxEntri\n[…]\nonfig/watcher.go: needsRestart checks QQ webhook instead of Server\n- All test fixtures migrated from old server: format to bot.qq.webhook:\n- All examples updated (config-integration, config_hotreload)",
"is_bot": false,
"headline": "refactor(config): merge server into qq.webhook, remove BigCache dead …",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T05:54:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dd535f9be15020a54c01787c72792681114fd0f0",
"body": "- Move WebhookConfig and TokenConfig from top-level Config into QQConfig\n- Rename TokenConfig to TokenManagerConfig (avoids conflict with QQConfig.Token)\n- Update validators: webhook/token validated only under qq config\n- Update config.example.yaml: restructure sections, remove all vX.Y.Z+ markers\n- Update config.default.yaml: remove orphaned webhook section\n- Update example and downstream token.go references",
"is_bot": false,
"headline": "refactor(config): move webhook/token under bot.qq, drop version markers",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T05:36:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "91393b9ab2ba2607237fff03081fcf013db05d48",
"body": "- Add yaml tags to AdaptiveSamplerConfig (broken adaptive sampler config)\n- Wire PprofConfig.Validate() into Config.Validate() (was never called)\n- Add matcher_pool_capacity/max to EngineConfig (documented but missing)\n- Add os.ExpandEnv pass in loadRaw() for syntax support\n- Fix getEnvInt/getEnvUint64 returning 0 instead of default on parse error\n- Add basic OneBotConfig validation (url or listen_addr required)\n- Expand config.default.yaml to match config.example.yaml sections",
"is_bot": false,
"headline": "fix(config): validate wiring, yaml tags, env expansion, and field gaps",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T05:27:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2134a857e3f0bfeaab840148a35c846369f2d5f1",
"body": "…enhancements",
"is_bot": false,
"headline": "fix(platform): bug fixes, SendError wrapping, config unification, QQ …",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-25T05:25:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34184fef7179a6277c407f2444868a4e804a9a50",
"body": "No longer need gcc/musl-dev since SQLite driver is now pure Go.",
"is_bot": false,
"headline": "build: remove CGO dependency from Dockerfile",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-23T04:26:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "39aabb5be35f9534f2afef50c41ae7f48f725fd0",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.13.0",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-23T04:25:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0971de788672200d3c094e7f65c48c1f41d600e8",
"body": "- Remove CGO_ENABLED=1 override for linux/amd64\n- Add linux/386, armv6, armv7, riscv64, s390x, ppc64le\n- Add windows/arm64 (previously ignored)\n- Make CGO_ENABLED overridable in Makefile (default 0)\n- Update archive name template for i386 and armv* variants\n- Add comments for each excluded target explaining the reason",
"is_bot": false,
"headline": "ci: expand build targets and disable CGO globally",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-23T04:25:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f86c42987fc4b921802db3e425375e2bfb65a99",
"body": "Switch from gorm.io/driver/sqlite (cgo-based, mattn/go-sqlite3)\nto github.com/glebarez/sqlite (pure Go, modernc.org/sqlite).\n\nThis eliminates the CGO dependency for SQLite, enabling fully\nstatic builds with CGO_ENABLED=0 across all platforms.",
"is_bot": false,
"headline": "refactor: replace gorm sqlite driver with pure-go glebarez/sqlite",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-23T04:25:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d448c5365f50ad65aae6a314934da11e75e68f66",
"body": "GoReleaser's Docker build context only contains the binary and\nDockerfile (not the full project source with go.mod/go.sum).\nThe main Dockerfile does a multi-stage build that depends on\ngo.mod/go.sum for layer caching, which fails in GoReleaser.\n\nDockerfile.goreleaser is a single-stage image that just copies\nthe pre-built binary.",
"is_bot": false,
"headline": "fix: add slim Dockerfile.goreleaser for GoReleaser Docker builds",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T09:31:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "edcfb458b6f2120466ad8cc152545cb6e945aedf",
"body": null,
"is_bot": false,
"headline": "fix: yaml syntax - extra spaces in docker image_templates",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T09:23:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e26bd5d16632ff9839fa0da3328ce5ce996aeda9",
"body": null,
"is_bot": false,
"headline": "fix: lowercase Docker image repo for GHCR compatibility",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T09:21:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce52a1fb98a068beda3579eb0332460887f68444",
"body": "CGO_ENABLED=1 causes ARM64 assembly errors during cross-compilation\nbecause the CI runner's gcc lacks ARM64 assembler support.\nOnly keep CGO_ENABLED=1 for linux/amd64 (used for Docker builds).",
"is_bot": false,
"headline": "fix: disable CGO for arm64 cross-compilation in goreleaser",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T09:06:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "17a874c4af01ee7a751011513c190601c9d0798a",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.12.4",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:59:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "919619715a2c8c79b0fc45815e1af08f4827ea0c",
"body": "waitBotRunning/waitBotHealthy: increase from 3s to 10s and\npoll interval from 10ms to 50ms to reduce flakiness under\nrace detector overhead",
"is_bot": false,
"headline": "fix: increase health check test timeouts for -race CI",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:49:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c177f3f1e071d73b277f37db9ee74f871fd2630",
"body": "- TestEngineShutdownWithPendingEvents: use channel-based\n synchronization instead of timing-dependent Eventually wait\n- ExecProfile.ShouldPool: replace shared snapshotBuf with\n stack-allocated array to fix data race on concurrent Sort\n- State.addMatcher: auto-derive hasHandler from Handler field\n \n[…]\nrency_test.go: remove time.Sleep from concurrent\n test matchers (was only needed for race conditioning)\n- matcher_deletion_race_test.go: use Handle() API instead of\n directly assigning Handler field",
"is_bot": false,
"headline": "fix: resolve CI test flakiness under -race",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:47:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ac8e5e5c7d66ac2183fa5a6c107503b44fdb1448",
"body": "- Reconstruct CHANGELOG.md from v1.1.0 to v1.12.3 with all\n version annotations extracted from git tags\n- Update README performance section with current benchmark data\n (5K matcher throughput, drain fix, etc.)\n- Update docs/05-performance/PERFORMANCE_REPORT.md with real\n standard suite results and optimization history",
"is_bot": false,
"headline": "chore: restore missing changelog, update perf docs with latest data",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:36:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ec40d693994207985dc11f0bfa0bf32e41dfa9ee",
"body": null,
"is_bot": false,
"headline": "chore: bump version to v1.12.3",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:31:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4601d6c331e7fa5cb50d3b7d33825728c75d844f",
"body": "Instead of checking m.Handler == nil in the hot path loop, filter\nhandlerless matchers out at the data structure level:\n\n1. Add hasHandler atomic.Bool to Matcher, set in Handle()\n2. Replace all sortedCache population sites with makeRunnableSlice()\n which only includes matchers with hasHandler == t\n[…]\nk as safety net\n\nResults with 5K matchers:\n 20K/5K: CPU 24.2% -> 3.5%\n 50K/5K: CPU 75.0% -> 6.8%\n Unlimited/5K: 234,770 -> 3,005,062 msg/s (+12.8x)\n All scenarios: 100%% achievement, drain < 0.01s",
"is_bot": false,
"headline": "perf: filter handlerless matchers at sortedCache build time",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:24:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ee82289db78e586922e565c9266a1604efa1e0db",
"body": "Matchers without a Handler are no-ops - they match but have nothing\nto execute. Skip them before Match()/SetMatcher()/invokeHandler()\nto eliminate O(N) iteration overhead from pressure matchers.\n\nResults with 5K matchers (Unlimited mode):\n Before: 53,420 msg/s, CPU 551%\n After: 234,770 msg/s, CPU 227%\n 4.4x throughput improvement, 59% CPU reduction\n\nAlso adds demoted atomic flag to ExecProfile to skip sorting on\nfast handlers (ShouldPool 20.54% -> 1.48%).",
"is_bot": false,
"headline": "perf: skip handlerless matchers in processEventMatchers",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T08:15:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e66659aa142bf58238fc091238add58545735413",
"body": null,
"is_bot": false,
"headline": "chore: add *.exe and *.pprof to gitignore",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T07:45:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "62c675779e64519cb07abfc55af84a82ea3968f7",
"body": "The ShouldPool method was allocating a new []time.Duration slice on every\ncall via make(). With 32 consumer goroutines calling this for each event,\nthis created ~314K small allocations/second under 5K matcher load,\ntriggering constant GC (3181 runs in 10s). GC caused 27%% CPU in\nsemasleep (goroutine\n[…]\nith 5K matchers:\n Unlimited mode: 9,821 -> 25,735 msg/s (+162%%)\n 50K/5K mode: 32,700 (65%%) -> 49,857 (99.7%%)\n 20K/5K drain: 15s -> 0.03s (engine keeps up)\n GC runs: 3181 -> 5 in 10s",
"is_bot": false,
"headline": "perf: fix ExecProfile.ShouldPool allocation storm causing GC thrash",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T07:45:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4b58b29924a2c7a3230d6a37a6d2c2418b538b9c",
"body": null,
"is_bot": false,
"headline": "chore: remove accidentally committed binary files",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T07:38:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c57cd7de0435435865351b5af4aba88838b40da1",
"body": "Fix Unlimited semaphore (was acquire/release in same iteration, no actual concurrency control)\nRemove fmt.Sprintf from hot event creation path\nFix latency measurement: use time.Since(ev.Timestamp())\nAdd drain wait up to 30s (was 3s, causing false 53.6%% failure)\nAdd DrainTimeSecs, P50/P95/P99 latency to output\nAdd --disable-latency and --inject-mode flags\nAdd matcher5k suite for targeted testing",
"is_bot": false,
"headline": "bench: fix throughput benchmark design issues",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T07:38:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1b9a6b008845c87ff412f8550dc507b7589fa2fa",
"body": null,
"is_bot": false,
"headline": "Merge remote-tracking branch 'origin/master'",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T07:11:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4a942f1ab22f8bdbd6240e1f14b60948f343a20",
"body": "- Rewrite README with current features (FSM, Adaptive Router, multi-platform)\n- Remove archived design docs (docs/06-archived/) and code review report (docs/05-reports/)\n- Rename PLUGIN_V1_TO_V2_MIGRATION.md → PLUGIN_DEVELOPMENT_GUIDE.md\n- Fix logrus → zerolog references in all docs\n- Fix broken lin\n[…]\ndocs\n- Fix non-existent NewBotFromConfig API references\n- Add docs/05-performance/PERFORMANCE_REPORT.md with real benchmark data\n- Update README performance section with current ~450K msg/s throughput",
"is_bot": false,
"headline": "docs: rewrite README, clean up outdated docs, add performance report",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T07:10:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0cccba39859b52f2aa704bf3580f548a7fcf4896",
"body": "Bumps the go-modules group with 4 updates in the / directory: [github.com/tetratelabs/wazero](https://github.com/tetratelabs/wazero), [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go), [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/o\n[…]\n version-update:semver-minor\n dependency-group: go-modules\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "chore: bump the go-modules group across 1 directory with 6 updates (#3)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-22T05:36:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a6bab4ae499efbb36a71c70297b0aa1667e56d82",
"body": null,
"is_bot": false,
"headline": "fix: revert context test to use nil with nolint annotation",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T05:25:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9deaecc0bba91708d8911de25658af9d9e81501",
"body": "Private repositories on free plans don't include Advanced Security.\nSecurity scanning is covered by govulncheck (vulncheck job) already.",
"is_bot": false,
"headline": "ci: remove CodeQL workflow (requires GitHub Advanced Security license)",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T05:14:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "63f68aa1f37c19c1252b0c776aaca9f1609015d2",
"body": "Production code exclusions are scoped to specific error patterns:\n- builtin: only .Close and .Reply errors (command handler cleanup paths)\n- plugin/wasm: only .Close and .Reply (WASM runtime cleanup)\n- infra/textimage: only .Close (renderer deferred cleanup)\n- platform/qq/openapi: only .Close and .WaitReady (HTTP/Token cleanup)\n- _test.go, cmd/bot/plugins, examples, testbot: full errcheck\n (best-effort cleanup in tests/plugins/examples)",
"is_bot": false,
"headline": "chore: refined .golangci.yml with targeted production code exclusions",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T05:10:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3606aeb935bdee0deaf153f3003a1baa784191e4",
"body": "- Convert config to golangci-lint v2 schema (linters.exclusions.rules)\n- Disable noisy ST checks and QF1012\n- Fix remaining QF1012, errcheck, staticcheck issues across codebase\n- Exclude test files and known low-risk paths from errcheck",
"is_bot": false,
"headline": "chore: finalize .golangci.yml with v2 format and fix all lint issues",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T05:06:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "28c6a99ef8f07fb795eb7b18ac48de6b40fcb38a",
"body": "…heck, unused)\n\n- Fix 50+ errcheck warnings across the codebase\n- Fix 6 ineffectual assignments\n- Fix 36 staticcheck issues (S1008, QF1012, SA4006, etc.)\n- Fix 39 unused code items (mostly nolint annotations)\n- Add .golangci.yml config with targeted errcheck exclusions",
"is_bot": false,
"headline": "fix: resolve all golangci-lint issues (errcheck, ineffassign, staticc…",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:50:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9087590c19b5fbf1d640d420b90ce423105bf651",
"body": "- isolate 'cd dashboard' in a subshell so mkdir/cp run from repo root\n- create stub dashboarddist directory in lint job so go:embed resolves",
"is_bot": false,
"headline": "fix: dashboard dist path and lint stub in CI workflows",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:24:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "13ba45c792b701ceae77cecb2c71a57cac9680fe",
"body": null,
"is_bot": false,
"headline": "fix: add actions:read permission for codeql telemetry",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:19:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b52d615ffaf0be37cfd836cab06ee6d7f3669334",
"body": "goreleaser runs go build which requires dashboarddist for embed",
"is_bot": false,
"headline": "fix: build dashboard before goreleaser",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:18:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "48b65f1fa9fff393d266b57e2c176de1d0fdb56b",
"body": "go install approach timed out downloading packages.\nv9 uses modern Node.js and ships with a linter supporting Go 1.26.",
"is_bot": false,
"headline": "fix: switch back to golangci-lint-action@v9 with timeout",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:16:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "673c15da2e8ae780a949d16c0e8da4de9f56aebd",
"body": "npm run build runs tsc first, which may fail on TypeScript errors\nand block vite build, causing dashboard/dist/ to not exist",
"is_bot": false,
"headline": "fix: use npx vite build instead of npm run build in CI",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:15:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a2d76163dda01f4eda307b995bb3ec881c70f76",
"body": "- platform/qq/adapter.go: lock api read in fetchBotIdentity\n- plugin/infra_container.go: add typeIndexMu for type index ops\n- plugin/infra_scope_test.go: mutex-protect received slice\n- core/engine/exec_profile.go: mutex-protect results array\n- core/engine/engine.go, process.go: eventMu ordering for Add/Wait\n- remilia_test.go: read mockAdapter fields under lock",
"is_bot": false,
"headline": "fix: resolve all data races detected by -race flag",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:11:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d7a0dfd130624f41dec0bca150eddc375adc394b",
"body": "Fixes 5 vulnerabilities (GO-2026-5025/5027/5028/5029/5030):\nXSS, DoS, and incorrect HTML parsing in x/net/html",
"is_bot": false,
"headline": "deps: bump golang.org/x/net to v0.56.0 to fix CVEs",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:11:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e0fe1a02a5adf2b4ae0ea37a22908911c3e1076",
"body": "- actions/checkout v4 -> v7\n- actions/setup-go v5 -> v6\n- actions/setup-node v4 -> v6\n- codecov/codecov-action v5 -> v7\n- github/codeql-action v3 -> v4\n- docker/login-action v3 -> v4\n- goreleaser/goreleaser-action v6 -> v7\n- actions/stale v9 -> v10",
"is_bot": false,
"headline": "ci: update GitHub Actions to latest major versions",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-22T04:11:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2a9745bc8a2bf4d2724a1b61be5eca766f94469b",
"body": null,
"is_bot": false,
"headline": "opt(fix):go fix maps copy",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:40:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0b5fe81238be8617aa39021f6a398ca1a38a2a5",
"body": null,
"is_bot": false,
"headline": "chore: ignore sidecar binaries in desktop/ and cmd/desktop/",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:38:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b0daad93053f20afae7549c4056e7003eabe0d57",
"body": null,
"is_bot": false,
"headline": "chore: update gitignore for dashboard, desktop, and sidecar binaries",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:36:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c349aaa87052c34d3633dff314164bffa4b7d371",
"body": null,
"is_bot": false,
"headline": "chore: remove committed sidecar binaries (should be gitignored)",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:36:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e2ecd74c9f2731bcc1bc2e4e06e1af9a8e19b67",
"body": "…sidecar\n\n- Tauri v2 app with frameless window, custom titlebar, tray icon\n- On-demand sidecar start: user chooses local backend or remote connection\n- Window position/size persistence via save/load commands\n- Close dialog with hide-to-tray / quit options\n- About dialog triggered from tray menu\n- Retry progress indicator in loading screen\n- Dark theme scrollbar styling\n- Custom titlebar with minimize/close buttons (sticky top)",
"is_bot": false,
"headline": "feat(desktop): Tauri desktop shell with startup choice and on-demand …",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:36:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44587f552c8ad25cf4bb870ea62cb704d52e50e4",
"body": "…permissions",
"is_bot": false,
"headline": "feat(dashboard): full UI overhaul - sidebar, toast, skeleton, forms, …",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:36:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "efd87de4d988d4415964063f278f71d07e1e6d14",
"body": "- Stop() now resets b.started so Start() works again after shutdown\n- Add Restart() method for atomic stop-start with proper state management\n- Add discoverProbes() to re-register API probes after restart\n- Start platform adapters in goroutine to prevent OnRun blocking Stop\n (fixes 30s shutdown delay waiting for adapter Start to complete)",
"is_bot": false,
"headline": "fix(bot): restart, health probes, adapter lifecycle timeout",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:36:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "64f418f8944bdc697109bfab6fe88b7a51532973",
"body": "- config.Get(): fix shallow copy to include value-type fields\n- Add writeConfigUpdate() helper for atomic config file writes\n- Add platform add/delete/rich-detail HTTP endpoints\n- Add role/permission CRUD endpoints (create/delete role, add/remove permission)\n- Increase health check cache TTL to 8s, reduce probe timeout to 3s\n- wire new routes in server.go",
"is_bot": false,
"headline": "feat(core): add management APIs, config deep-copy, health tuning",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-21T08:35:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c6f449914d9416e2316b66e74f940a44942b2374",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 1.12.1",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-15T04:51:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf30a3ffc2812e2f906bb6c396769f7f56c66d19",
"body": "…coc, dnd plugins",
"is_bot": false,
"headline": "fix: guard DryRun side effects in scheduler, admin, pluginctrl, css, …",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-15T04:49:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8012a27cc5eac5a2085b9c844f8beb1b9fd88e7f",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 1.12.0",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-15T04:39:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "596433134664fa6c9df685ce6a5ec8444c9a67eb",
"body": null,
"is_bot": false,
"headline": "opt:go fix",
"author_name": "KomeiDiSanXian",
"author_login": "KomeiDiSanXian",
"committed_at": "2026-06-15T04:38:01Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 13,
"commits_last_year": 559,
"latest_release_at": "2026-07-17T05:15:27Z",
"latest_release_tag": "v1.20.1",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 27,
"days_since_latest_release": 8,
"mean_days_between_releases": 2.4
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 57,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "github.com/KomeiDiSanXian/remilia",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": true,
"registry_url": "https://pkg.go.dev/github.com/KomeiDiSanXian/remilia",
"is_deprecated": false,
"latest_version": "v1.20.1",
"repository_url": "https://github.com/KomeiDiSanXian/remilia",
"versions_count": 47,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-07-17T05:01:02Z",
"latest_version_yanked": null,
"days_since_latest_publish": 8
}
]
},
"popularity": {
"forks": 0,
"stars": 0,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": {
"days": [],
"complete": true,
"collected": 0,
"total_stars": 0,
"collected_at": null
},
"open_issues_and_prs": 3
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"Makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"dashboard/tsconfig.json",
"desktop/tsconfig.json"
],
"toolchain_manifests": [
"cmd/bot/go.mod",
"desktop/src-tauri/Cargo.toml",
"examples/httpclient-demo/go.mod",
"examples/showcase/wasm/go.mod",
"go.mod",
"plugin/wasm/testdata/go.mod",
"plugin/wasm/testdata/tinygoplugin/go.mod"
],
"largest_source_bytes": 42806,
"source_files_sampled": 698,
"oversized_source_files": 0,
"agent_instruction_files": [],
"agent_instruction_max_bytes": null
},
"dependencies": {
"manifests": [
"dashboard/package.json",
"desktop/package.json",
"go.mod"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "google.golang.org/grpc",
"direct": false,
"version": "v1.81.1",
"severity": "critical",
"ecosystem": "go",
"cvss_score": 9.1,
"advisory_ids": [
"GHSA-hrxh-6v49-42gf"
],
"fixed_version": "1.82.1",
"advisory_count": 1,
"oldest_advisory_days": 4
},
{
"name": "postcss",
"direct": false,
"version": "8.5.15",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-r28c-9q8g-f849"
],
"fixed_version": "8.5.18",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "quick-xml",
"direct": false,
"version": "0.39.4",
"severity": "high",
"ecosystem": "crates",
"cvss_score": 7.5,
"advisory_ids": [
"RUSTSEC-2026-0194",
"RUSTSEC-2026-0195"
],
"fixed_version": "0.41.0",
"advisory_count": 2,
"oldest_advisory_days": 26
},
{
"name": "glib",
"direct": false,
"version": "0.18.5",
"severity": "moderate",
"ecosystem": "crates",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-wrw7-89jp-8q8g",
"RUSTSEC-2024-0429"
],
"fixed_version": "0.20.0",
"advisory_count": 2,
"oldest_advisory_days": 847
},
{
"name": "anyhow",
"direct": false,
"version": "1.0.102",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2026-0190"
],
"fixed_version": "1.0.103",
"advisory_count": 1,
"oldest_advisory_days": 30
},
{
"name": "atk",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0413"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "atk-sys",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0416"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gdk",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0412"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gdk-sys",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0418"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gdkwayland-sys",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0411"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gdkx11",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0417"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gdkx11-sys",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0414"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "golang.org/x/crypto",
"direct": false,
"version": "v0.53.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5932"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 18
},
{
"name": "golang.org/x/text",
"direct": false,
"version": "v0.38.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5970"
],
"fixed_version": "0.39.0",
"advisory_count": 1,
"oldest_advisory_days": 11
},
{
"name": "gtk",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0415"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gtk-sys",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0420"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "gtk3-macros",
"direct": false,
"version": "0.18.2",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0419"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 873
},
{
"name": "proc-macro-error",
"direct": false,
"version": "1.0.4",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2024-0370"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 692
},
{
"name": "unic-char-property",
"direct": false,
"version": "0.9.0",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2025-0081"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 280
},
{
"name": "unic-char-range",
"direct": false,
"version": "0.9.0",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2025-0075"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 280
},
{
"name": "unic-common",
"direct": false,
"version": "0.9.0",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2025-0080"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 280
},
{
"name": "unic-ucd-ident",
"direct": false,
"version": "0.9.0",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2025-0100"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 280
},
{
"name": "unic-ucd-version",
"direct": false,
"version": "0.9.0",
"severity": "unknown",
"ecosystem": "crates",
"cvss_score": null,
"advisory_ids": [
"RUSTSEC-2025-0098"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 280
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 2,
"unknown": 19,
"critical": 1,
"moderate": 1
},
"advisory_count": 25,
"affected_count": 23,
"assessed_count": 592,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"go",
"npm"
],
"dependencies": [
{
"name": "react",
"manifest": "dashboard/package.json",
"ecosystem": "npm",
"version_constraint": "^19.2.7"
},
{
"name": "react-dom",
"manifest": "dashboard/package.json",
"ecosystem": "npm",
"version_constraint": "^19.2.7"
},
{
"name": "@tauri-apps/api",
"manifest": "desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^2"
},
{
"name": "@tauri-apps/plugin-shell",
"manifest": "desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^2"
},
{
"name": "react",
"manifest": "desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^19"
},
{
"name": "react-dom",
"manifest": "desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^19"
},
{
"name": "github.com/bwmarrin/discordgo",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.29.0"
},
{
"name": "github.com/fogleman/gg",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.0"
},
{
"name": "github.com/fsnotify/fsnotify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.10.1"
},
{
"name": "github.com/glebarez/sqlite",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.0"
},
{
"name": "github.com/google/uuid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/gorilla/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.3"
},
{
"name": "github.com/hashicorp/golang-lru/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.0.7"
},
{
"name": "github.com/lithammer/fuzzysearch",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.8"
},
{
"name": "github.com/prometheus/client_golang",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.23.2"
},
{
"name": "github.com/robfig/cron/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "github.com/rs/zerolog",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.35.1"
},
{
"name": "github.com/shirou/gopsutil/v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.24.5"
},
{
"name": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "github.com/syndtr/goleveldb",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.0"
},
{
"name": "github.com/tetratelabs/wazero",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.12.0"
},
{
"name": "github.com/tidwall/gjson",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.19.0"
},
{
"name": "go.opentelemetry.io/otel",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/sdk",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "go.opentelemetry.io/otel/trace",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.44.0"
},
{
"name": "golang.org/x/image",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.44.0"
},
{
"name": "golang.org/x/net",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.57.0"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.47.0"
},
{
"name": "golang.org/x/term",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.45.0"
},
{
"name": "golang.org/x/time",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.15.0"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "gorm.io/gorm",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.31.2"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/bwmarrin/discordgo",
"direct": true,
"version": "v0.29.0",
"ecosystem": "go"
},
{
"name": "github.com/fogleman/gg",
"direct": true,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/fsnotify/fsnotify",
"direct": true,
"version": "v1.10.1",
"ecosystem": "go"
},
{
"name": "github.com/glebarez/sqlite",
"direct": true,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/websocket",
"direct": true,
"version": "v1.5.3",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/golang-lru/v2",
"direct": true,
"version": "v2.0.7",
"ecosystem": "go"
},
{
"name": "github.com/lithammer/fuzzysearch",
"direct": true,
"version": "v1.1.8",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": true,
"version": "v1.23.2",
"ecosystem": "go"
},
{
"name": "github.com/robfig/cron/v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "github.com/rs/zerolog",
"direct": true,
"version": "v1.35.1",
"ecosystem": "go"
},
{
"name": "github.com/shirou/gopsutil/v3",
"direct": true,
"version": "v3.24.5",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/testify",
"direct": true,
"version": "v1.11.1",
"ecosystem": "go"
},
{
"name": "github.com/syndtr/goleveldb",
"direct": true,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/tetratelabs/wazero",
"direct": true,
"version": "v1.12.0",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/gjson",
"direct": true,
"version": "v1.19.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"direct": true,
"version": "v1.44.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
"direct": true,
"version": "v1.44.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/sdk",
"direct": true,
"version": "v1.44.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/trace",
"direct": true,
"version": "v1.44.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/image",
"direct": true,
"version": "v0.43.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.56.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.57.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.46.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.47.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": true,
"version": "v0.44.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/term",
"direct": true,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/time",
"direct": true,
"version": "v0.15.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "gorm.io/gorm",
"direct": true,
"version": "v1.31.1",
"ecosystem": "go"
},
{
"name": "@tauri-apps/api",
"direct": true,
"version": "2.11.1",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/plugin-shell",
"direct": true,
"version": "2.3.5",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "19.2.7",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "19.2.7",
"ecosystem": "npm"
},
{
"name": "adler2",
"direct": false,
"version": "2.0.1",
"ecosystem": "crates"
},
{
"name": "aho-corasick",
"direct": false,
"version": "1.1.4",
"ecosystem": "crates"
},
{
"name": "alloc-no-stdlib",
"direct": false,
"version": "2.0.4",
"ecosystem": "crates"
},
{
"name": "alloc-stdlib",
"direct": false,
"version": "0.2.4",
"ecosystem": "crates"
},
{
"name": "android_system_properties",
"direct": false,
"version": "0.1.5",
"ecosystem": "crates"
},
{
"name": "anyhow",
"direct": false,
"version": "1.0.102",
"ecosystem": "crates"
},
{
"name": "atk",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "atk-sys",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "atomic-waker",
"direct": false,
"version": "1.1.2",
"ecosystem": "crates"
},
{
"name": "autocfg",
"direct": false,
"version": "1.5.1",
"ecosystem": "crates"
},
{
"name": "base64",
"direct": false,
"version": "0.21.7",
"ecosystem": "crates"
},
{
"name": "base64",
"direct": false,
"version": "0.22.1",
"ecosystem": "crates"
},
{
"name": "bit-set",
"direct": false,
"version": "0.8.0",
"ecosystem": "crates"
},
{
"name": "bit-vec",
"direct": false,
"version": "0.8.0",
"ecosystem": "crates"
},
{
"name": "bitflags",
"direct": false,
"version": "1.3.2",
"ecosystem": "crates"
},
{
"name": "bitflags",
"direct": false,
"version": "2.13.0",
"ecosystem": "crates"
},
{
"name": "block-buffer",
"direct": false,
"version": "0.10.4",
"ecosystem": "crates"
},
{
"name": "block2",
"direct": false,
"version": "0.6.2",
"ecosystem": "crates"
},
{
"name": "brotli",
"direct": false,
"version": "8.0.4",
"ecosystem": "crates"
},
{
"name": "brotli-decompressor",
"direct": false,
"version": "5.0.3",
"ecosystem": "crates"
},
{
"name": "bs58",
"direct": false,
"version": "0.5.1",
"ecosystem": "crates"
},
{
"name": "bumpalo",
"direct": false,
"version": "3.20.3",
"ecosystem": "crates"
},
{
"name": "bytemuck",
"direct": false,
"version": "1.25.0",
"ecosystem": "crates"
},
{
"name": "byteorder",
"direct": false,
"version": "1.5.0",
"ecosystem": "crates"
},
{
"name": "byteorder-lite",
"direct": false,
"version": "0.1.0",
"ecosystem": "crates"
},
{
"name": "bytes",
"direct": false,
"version": "1.12.0",
"ecosystem": "crates"
},
{
"name": "cairo-rs",
"direct": false,
"version": "0.18.5",
"ecosystem": "crates"
},
{
"name": "cairo-sys-rs",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "camino",
"direct": false,
"version": "1.2.3",
"ecosystem": "crates"
},
{
"name": "cargo-platform",
"direct": false,
"version": "0.1.9",
"ecosystem": "crates"
},
{
"name": "cargo_metadata",
"direct": false,
"version": "0.19.2",
"ecosystem": "crates"
},
{
"name": "cargo_toml",
"direct": false,
"version": "0.22.3",
"ecosystem": "crates"
},
{
"name": "cc",
"direct": false,
"version": "1.2.65",
"ecosystem": "crates"
},
{
"name": "cesu8",
"direct": false,
"version": "1.1.0",
"ecosystem": "crates"
},
{
"name": "cfb",
"direct": false,
"version": "0.7.3",
"ecosystem": "crates"
},
{
"name": "cfg-expr",
"direct": false,
"version": "0.15.8",
"ecosystem": "crates"
},
{
"name": "cfg-if",
"direct": false,
"version": "1.0.4",
"ecosystem": "crates"
},
{
"name": "chrono",
"direct": false,
"version": "0.4.45",
"ecosystem": "crates"
},
{
"name": "combine",
"direct": false,
"version": "4.6.7",
"ecosystem": "crates"
},
{
"name": "cookie",
"direct": false,
"version": "0.18.1",
"ecosystem": "crates"
},
{
"name": "core-foundation",
"direct": false,
"version": "0.10.1",
"ecosystem": "crates"
},
{
"name": "core-foundation-sys",
"direct": false,
"version": "0.8.7",
"ecosystem": "crates"
},
{
"name": "core-graphics",
"direct": false,
"version": "0.25.0",
"ecosystem": "crates"
},
{
"name": "core-graphics-types",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "cpufeatures",
"direct": false,
"version": "0.2.17",
"ecosystem": "crates"
},
{
"name": "crc32fast",
"direct": false,
"version": "1.5.0",
"ecosystem": "crates"
},
{
"name": "crossbeam-channel",
"direct": false,
"version": "0.5.15",
"ecosystem": "crates"
},
{
"name": "crossbeam-utils",
"direct": false,
"version": "0.8.21",
"ecosystem": "crates"
},
{
"name": "crypto-common",
"direct": false,
"version": "0.1.7",
"ecosystem": "crates"
},
{
"name": "cssparser",
"direct": false,
"version": "0.36.0",
"ecosystem": "crates"
},
{
"name": "cssparser-macros",
"direct": false,
"version": "0.6.1",
"ecosystem": "crates"
},
{
"name": "ctor",
"direct": false,
"version": "0.8.0",
"ecosystem": "crates"
},
{
"name": "ctor-proc-macro",
"direct": false,
"version": "0.0.7",
"ecosystem": "crates"
},
{
"name": "darling",
"direct": false,
"version": "0.23.0",
"ecosystem": "crates"
},
{
"name": "darling_core",
"direct": false,
"version": "0.23.0",
"ecosystem": "crates"
},
{
"name": "darling_macro",
"direct": false,
"version": "0.23.0",
"ecosystem": "crates"
},
{
"name": "dbus",
"direct": false,
"version": "0.9.11",
"ecosystem": "crates"
},
{
"name": "deranged",
"direct": false,
"version": "0.5.8",
"ecosystem": "crates"
},
{
"name": "derive_more",
"direct": false,
"version": "2.1.1",
"ecosystem": "crates"
},
{
"name": "derive_more-impl",
"direct": false,
"version": "2.1.1",
"ecosystem": "crates"
},
{
"name": "digest",
"direct": false,
"version": "0.10.7",
"ecosystem": "crates"
},
{
"name": "dirs",
"direct": false,
"version": "6.0.0",
"ecosystem": "crates"
},
{
"name": "dirs-sys",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "dispatch2",
"direct": false,
"version": "0.3.1",
"ecosystem": "crates"
},
{
"name": "displaydoc",
"direct": false,
"version": "0.2.6",
"ecosystem": "crates"
},
{
"name": "dlopen2",
"direct": false,
"version": "0.8.2",
"ecosystem": "crates"
},
{
"name": "dlopen2_derive",
"direct": false,
"version": "0.4.3",
"ecosystem": "crates"
},
{
"name": "dom_query",
"direct": false,
"version": "0.27.0",
"ecosystem": "crates"
},
{
"name": "dpi",
"direct": false,
"version": "0.1.2",
"ecosystem": "crates"
},
{
"name": "dtoa",
"direct": false,
"version": "1.0.11",
"ecosystem": "crates"
},
{
"name": "dtoa-short",
"direct": false,
"version": "0.3.5",
"ecosystem": "crates"
},
{
"name": "dtor",
"direct": false,
"version": "0.3.0",
"ecosystem": "crates"
},
{
"name": "dtor-proc-macro",
"direct": false,
"version": "0.0.6",
"ecosystem": "crates"
},
{
"name": "dunce",
"direct": false,
"version": "1.0.5",
"ecosystem": "crates"
},
{
"name": "dyn-clone",
"direct": false,
"version": "1.0.20",
"ecosystem": "crates"
},
{
"name": "embed-resource",
"direct": false,
"version": "3.0.9",
"ecosystem": "crates"
},
{
"name": "embed_plist",
"direct": false,
"version": "1.2.2",
"ecosystem": "crates"
},
{
"name": "encoding_rs",
"direct": false,
"version": "0.8.35",
"ecosystem": "crates"
},
{
"name": "equivalent",
"direct": false,
"version": "1.0.2",
"ecosystem": "crates"
},
{
"name": "erased-serde",
"direct": false,
"version": "0.4.10",
"ecosystem": "crates"
},
{
"name": "errno",
"direct": false,
"version": "0.3.14",
"ecosystem": "crates"
},
{
"name": "fastrand",
"direct": false,
"version": "2.4.1",
"ecosystem": "crates"
},
{
"name": "fdeflate",
"direct": false,
"version": "0.3.7",
"ecosystem": "crates"
},
{
"name": "field-offset",
"direct": false,
"version": "0.3.6",
"ecosystem": "crates"
},
{
"name": "find-msvc-tools",
"direct": false,
"version": "0.1.9",
"ecosystem": "crates"
},
{
"name": "flate2",
"direct": false,
"version": "1.1.9",
"ecosystem": "crates"
},
{
"name": "fnv",
"direct": false,
"version": "1.0.7",
"ecosystem": "crates"
},
{
"name": "foldhash",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "foreign-types",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "foreign-types-macros",
"direct": false,
"version": "0.2.3",
"ecosystem": "crates"
},
{
"name": "foreign-types-shared",
"direct": false,
"version": "0.3.1",
"ecosystem": "crates"
},
{
"name": "form_urlencoded",
"direct": false,
"version": "1.2.2",
"ecosystem": "crates"
},
{
"name": "futures-channel",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-core",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-executor",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-io",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-macro",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-sink",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-task",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "futures-util",
"direct": false,
"version": "0.3.32",
"ecosystem": "crates"
},
{
"name": "gdk",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "gdk-pixbuf",
"direct": false,
"version": "0.18.5",
"ecosystem": "crates"
},
{
"name": "gdk-pixbuf-sys",
"direct": false,
"version": "0.18.0",
"ecosystem": "crates"
},
{
"name": "gdk-sys",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "gdkwayland-sys",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "gdkx11",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "gdkx11-sys",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "generic-array",
"direct": false,
"version": "0.14.7",
"ecosystem": "crates"
},
{
"name": "getrandom",
"direct": false,
"version": "0.2.17",
"ecosystem": "crates"
},
{
"name": "getrandom",
"direct": false,
"version": "0.3.4",
"ecosystem": "crates"
},
{
"name": "getrandom",
"direct": false,
"version": "0.4.3",
"ecosystem": "crates"
},
{
"name": "gio",
"direct": false,
"version": "0.18.4",
"ecosystem": "crates"
},
{
"name": "gio-sys",
"direct": false,
"version": "0.18.1",
"ecosystem": "crates"
},
{
"name": "glib",
"direct": false,
"version": "0.18.5",
"ecosystem": "crates"
},
{
"name": "glib-macros",
"direct": false,
"version": "0.18.5",
"ecosystem": "crates"
},
{
"name": "glib-sys",
"direct": false,
"version": "0.18.1",
"ecosystem": "crates"
},
{
"name": "glob",
"direct": false,
"version": "0.3.3",
"ecosystem": "crates"
},
{
"name": "gobject-sys",
"direct": false,
"version": "0.18.0",
"ecosystem": "crates"
},
{
"name": "gtk",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "gtk-sys",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "gtk3-macros",
"direct": false,
"version": "0.18.2",
"ecosystem": "crates"
},
{
"name": "hashbrown",
"direct": false,
"version": "0.12.3",
"ecosystem": "crates"
},
{
"name": "hashbrown",
"direct": false,
"version": "0.17.1",
"ecosystem": "crates"
},
{
"name": "heck",
"direct": false,
"version": "0.4.1",
"ecosystem": "crates"
},
{
"name": "heck",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "hex",
"direct": false,
"version": "0.4.3",
"ecosystem": "crates"
},
{
"name": "html5ever",
"direct": false,
"version": "0.38.0",
"ecosystem": "crates"
},
{
"name": "http",
"direct": false,
"version": "1.4.2",
"ecosystem": "crates"
},
{
"name": "http-body",
"direct": false,
"version": "1.0.1",
"ecosystem": "crates"
},
{
"name": "http-body-util",
"direct": false,
"version": "0.1.3",
"ecosystem": "crates"
},
{
"name": "httparse",
"direct": false,
"version": "1.10.1",
"ecosystem": "crates"
},
{
"name": "hyper",
"direct": false,
"version": "1.10.1",
"ecosystem": "crates"
},
{
"name": "hyper-util",
"direct": false,
"version": "0.1.20",
"ecosystem": "crates"
},
{
"name": "iana-time-zone",
"direct": false,
"version": "0.1.65",
"ecosystem": "crates"
},
{
"name": "iana-time-zone-haiku",
"direct": false,
"version": "0.1.2",
"ecosystem": "crates"
},
{
"name": "ico",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "icu_collections",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "icu_locale_core",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "icu_normalizer",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "icu_normalizer_data",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "icu_properties",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "icu_properties_data",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "icu_provider",
"direct": false,
"version": "2.2.0",
"ecosystem": "crates"
},
{
"name": "ident_case",
"direct": false,
"version": "1.0.1",
"ecosystem": "crates"
},
{
"name": "idna",
"direct": false,
"version": "1.1.0",
"ecosystem": "crates"
},
{
"name": "idna_adapter",
"direct": false,
"version": "1.2.2",
"ecosystem": "crates"
},
{
"name": "image",
"direct": false,
"version": "0.25.10",
"ecosystem": "crates"
},
{
"name": "indexmap",
"direct": false,
"version": "1.9.3",
"ecosystem": "crates"
},
{
"name": "indexmap",
"direct": false,
"version": "2.14.0",
"ecosystem": "crates"
},
{
"name": "infer",
"direct": false,
"version": "0.19.0",
"ecosystem": "crates"
},
{
"name": "ipnet",
"direct": false,
"version": "2.12.0",
"ecosystem": "crates"
},
{
"name": "is-docker",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "is-wsl",
"direct": false,
"version": "0.4.0",
"ecosystem": "crates"
},
{
"name": "itoa",
"direct": false,
"version": "1.0.18",
"ecosystem": "crates"
},
{
"name": "javascriptcore-rs",
"direct": false,
"version": "1.1.2",
"ecosystem": "crates"
},
{
"name": "javascriptcore-rs-sys",
"direct": false,
"version": "1.1.1",
"ecosystem": "crates"
},
{
"name": "jni",
"direct": false,
"version": "0.21.1",
"ecosystem": "crates"
},
{
"name": "jni-sys",
"direct": false,
"version": "0.3.1",
"ecosystem": "crates"
},
{
"name": "jni-sys",
"direct": false,
"version": "0.4.1",
"ecosystem": "crates"
},
{
"name": "jni-sys-macros",
"direct": false,
"version": "0.4.1",
"ecosystem": "crates"
},
{
"name": "js-sys",
"direct": false,
"version": "0.3.102",
"ecosystem": "crates"
},
{
"name": "json-patch",
"direct": false,
"version": "3.0.1",
"ecosystem": "crates"
},
{
"name": "jsonptr",
"direct": false,
"version": "0.6.3",
"ecosystem": "crates"
},
{
"name": "keyboard-types",
"direct": false,
"version": "0.7.0",
"ecosystem": "crates"
},
{
"name": "libappindicator",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "libappindicator-sys",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "libc",
"direct": false,
"version": "0.2.186",
"ecosystem": "crates"
},
{
"name": "libdbus-sys",
"direct": false,
"version": "0.2.7",
"ecosystem": "crates"
},
{
"name": "libloading",
"direct": false,
"version": "0.7.4",
"ecosystem": "crates"
},
{
"name": "libredox",
"direct": false,
"version": "0.1.17",
"ecosystem": "crates"
},
{
"name": "litemap",
"direct": false,
"version": "0.8.2",
"ecosystem": "crates"
},
{
"name": "lock_api",
"direct": false,
"version": "0.4.14",
"ecosystem": "crates"
},
{
"name": "log",
"direct": false,
"version": "0.4.33",
"ecosystem": "crates"
},
{
"name": "markup5ever",
"direct": false,
"version": "0.38.0",
"ecosystem": "crates"
},
{
"name": "memchr",
"direct": false,
"version": "2.8.2",
"ecosystem": "crates"
},
{
"name": "memoffset",
"direct": false,
"version": "0.9.1",
"ecosystem": "crates"
},
{
"name": "mime",
"direct": false,
"version": "0.3.17",
"ecosystem": "crates"
},
{
"name": "miniz_oxide",
"direct": false,
"version": "0.8.9",
"ecosystem": "crates"
},
{
"name": "mio",
"direct": false,
"version": "1.2.1",
"ecosystem": "crates"
},
{
"name": "moxcms",
"direct": false,
"version": "0.8.1",
"ecosystem": "crates"
},
{
"name": "muda",
"direct": false,
"version": "0.19.3",
"ecosystem": "crates"
},
{
"name": "ndk",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "ndk-sys",
"direct": false,
"version": "0.6.0+11769913",
"ecosystem": "crates"
},
{
"name": "new_debug_unreachable",
"direct": false,
"version": "1.0.6",
"ecosystem": "crates"
},
{
"name": "num-conv",
"direct": false,
"version": "0.2.2",
"ecosystem": "crates"
},
{
"name": "num-traits",
"direct": false,
"version": "0.2.19",
"ecosystem": "crates"
},
{
"name": "num_enum",
"direct": false,
"version": "0.7.6",
"ecosystem": "crates"
},
{
"name": "num_enum_derive",
"direct": false,
"version": "0.7.6",
"ecosystem": "crates"
},
{
"name": "objc2",
"direct": false,
"version": "0.6.4",
"ecosystem": "crates"
},
{
"name": "objc2-app-kit",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-cloud-kit",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-core-data",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-core-foundation",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-core-graphics",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-core-image",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-core-location",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-core-text",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-encode",
"direct": false,
"version": "4.1.0",
"ecosystem": "crates"
},
{
"name": "objc2-exception-helper",
"direct": false,
"version": "0.1.1",
"ecosystem": "crates"
},
{
"name": "objc2-foundation",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-io-surface",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-quartz-core",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-ui-kit",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-user-notifications",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "objc2-web-kit",
"direct": false,
"version": "0.3.2",
"ecosystem": "crates"
},
{
"name": "once_cell",
"direct": false,
"version": "1.21.4",
"ecosystem": "crates"
},
{
"name": "open",
"direct": false,
"version": "5.3.5",
"ecosystem": "crates"
},
{
"name": "option-ext",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "os_pipe",
"direct": false,
"version": "1.2.3",
"ecosystem": "crates"
},
{
"name": "pango",
"direct": false,
"version": "0.18.3",
"ecosystem": "crates"
},
{
"name": "pango-sys",
"direct": false,
"version": "0.18.0",
"ecosystem": "crates"
},
{
"name": "parking_lot",
"direct": false,
"version": "0.12.5",
"ecosystem": "crates"
},
{
"name": "parking_lot_core",
"direct": false,
"version": "0.9.12",
"ecosystem": "crates"
},
{
"name": "pathdiff",
"direct": false,
"version": "0.2.3",
"ecosystem": "crates"
},
{
"name": "percent-encoding",
"direct": false,
"version": "2.3.2",
"ecosystem": "crates"
},
{
"name": "phf",
"direct": false,
"version": "0.13.1",
"ecosystem": "crates"
},
{
"name": "phf_codegen",
"direct": false,
"version": "0.13.1",
"ecosystem": "crates"
},
{
"name": "phf_generator",
"direct": false,
"version": "0.13.1",
"ecosystem": "crates"
},
{
"name": "phf_macros",
"direct": false,
"version": "0.13.1",
"ecosystem": "crates"
},
{
"name": "phf_shared",
"direct": false,
"version": "0.13.1",
"ecosystem": "crates"
},
{
"name": "pin-project-lite",
"direct": false,
"version": "0.2.17",
"ecosystem": "crates"
},
{
"name": "pkg-config",
"direct": false,
"version": "0.3.33",
"ecosystem": "crates"
},
{
"name": "plist",
"direct": false,
"version": "1.9.0",
"ecosystem": "crates"
},
{
"name": "png",
"direct": false,
"version": "0.17.16",
"ecosystem": "crates"
},
{
"name": "png",
"direct": false,
"version": "0.18.1",
"ecosystem": "crates"
},
{
"name": "potential_utf",
"direct": false,
"version": "0.1.5",
"ecosystem": "crates"
},
{
"name": "powerfmt",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "precomputed-hash",
"direct": false,
"version": "0.1.1",
"ecosystem": "crates"
},
{
"name": "proc-macro-crate",
"direct": false,
"version": "1.3.1",
"ecosystem": "crates"
},
{
"name": "proc-macro-crate",
"direct": false,
"version": "2.0.2",
"ecosystem": "crates"
},
{
"name": "proc-macro-crate",
"direct": false,
"version": "3.5.0",
"ecosystem": "crates"
},
{
"name": "proc-macro-error",
"direct": false,
"version": "1.0.4",
"ecosystem": "crates"
},
{
"name": "proc-macro-error-attr",
"direct": false,
"version": "1.0.4",
"ecosystem": "crates"
},
{
"name": "proc-macro2",
"direct": false,
"version": "1.0.106",
"ecosystem": "crates"
},
{
"name": "pxfm",
"direct": false,
"version": "0.1.29",
"ecosystem": "crates"
},
{
"name": "quick-xml",
"direct": false,
"version": "0.39.4",
"ecosystem": "crates"
},
{
"name": "quote",
"direct": false,
"version": "1.0.45",
"ecosystem": "crates"
},
{
"name": "r-efi",
"direct": false,
"version": "5.3.0",
"ecosystem": "crates"
},
{
"name": "r-efi",
"direct": false,
"version": "6.0.0",
"ecosystem": "crates"
},
{
"name": "raw-window-handle",
"direct": false,
"version": "0.6.2",
"ecosystem": "crates"
},
{
"name": "redox_syscall",
"direct": false,
"version": "0.5.18",
"ecosystem": "crates"
},
{
"name": "redox_users",
"direct": false,
"version": "0.5.2",
"ecosystem": "crates"
},
{
"name": "ref-cast",
"direct": false,
"version": "1.0.25",
"ecosystem": "crates"
},
{
"name": "ref-cast-impl",
"direct": false,
"version": "1.0.25",
"ecosystem": "crates"
},
{
"name": "regex",
"direct": false,
"version": "1.12.4",
"ecosystem": "crates"
},
{
"name": "regex-automata",
"direct": false,
"version": "0.4.14",
"ecosystem": "crates"
},
{
"name": "regex-syntax",
"direct": false,
"version": "0.8.11",
"ecosystem": "crates"
},
{
"name": "reqwest",
"direct": false,
"version": "0.13.4",
"ecosystem": "crates"
},
{
"name": "rustc-hash",
"direct": false,
"version": "2.1.2",
"ecosystem": "crates"
},
{
"name": "rustc_version",
"direct": false,
"version": "0.4.1",
"ecosystem": "crates"
},
{
"name": "rustversion",
"direct": false,
"version": "1.0.22",
"ecosystem": "crates"
},
{
"name": "same-file",
"direct": false,
"version": "1.0.6",
"ecosystem": "crates"
},
{
"name": "schemars",
"direct": false,
"version": "0.8.22",
"ecosystem": "crates"
},
{
"name": "schemars",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "schemars",
"direct": false,
"version": "1.2.1",
"ecosystem": "crates"
},
{
"name": "schemars_derive",
"direct": false,
"version": "0.8.22",
"ecosystem": "crates"
},
{
"name": "scopeguard",
"direct": false,
"version": "1.2.0",
"ecosystem": "crates"
},
{
"name": "selectors",
"direct": false,
"version": "0.36.1",
"ecosystem": "crates"
},
{
"name": "semver",
"direct": false,
"version": "1.0.28",
"ecosystem": "crates"
},
{
"name": "serde",
"direct": false,
"version": "1.0.228",
"ecosystem": "crates"
},
{
"name": "serde-untagged",
"direct": false,
"version": "0.1.9",
"ecosystem": "crates"
},
{
"name": "serde_core",
"direct": false,
"version": "1.0.228",
"ecosystem": "crates"
},
{
"name": "serde_derive",
"direct": false,
"version": "1.0.228",
"ecosystem": "crates"
},
{
"name": "serde_derive_internals",
"direct": false,
"version": "0.29.1",
"ecosystem": "crates"
},
{
"name": "serde_json",
"direct": false,
"version": "1.0.150",
"ecosystem": "crates"
},
{
"name": "serde_repr",
"direct": false,
"version": "0.1.20",
"ecosystem": "crates"
},
{
"name": "serde_spanned",
"direct": false,
"version": "0.6.9",
"ecosystem": "crates"
},
{
"name": "serde_spanned",
"direct": false,
"version": "1.1.1",
"ecosystem": "crates"
},
{
"name": "serde_with",
"direct": false,
"version": "3.21.0",
"ecosystem": "crates"
},
{
"name": "serde_with_macros",
"direct": false,
"version": "3.21.0",
"ecosystem": "crates"
},
{
"name": "serialize-to-javascript",
"direct": false,
"version": "0.1.2",
"ecosystem": "crates"
},
{
"name": "serialize-to-javascript-impl",
"direct": false,
"version": "0.1.2",
"ecosystem": "crates"
},
{
"name": "servo_arc",
"direct": false,
"version": "0.4.3",
"ecosystem": "crates"
},
{
"name": "sha2",
"direct": false,
"version": "0.10.9",
"ecosystem": "crates"
},
{
"name": "shared_child",
"direct": false,
"version": "1.1.1",
"ecosystem": "crates"
},
{
"name": "shlex",
"direct": false,
"version": "2.0.1",
"ecosystem": "crates"
},
{
"name": "sigchld",
"direct": false,
"version": "0.2.4",
"ecosystem": "crates"
},
{
"name": "signal-hook",
"direct": false,
"version": "0.3.18",
"ecosystem": "crates"
},
{
"name": "signal-hook-registry",
"direct": false,
"version": "1.4.8",
"ecosystem": "crates"
},
{
"name": "simd-adler32",
"direct": false,
"version": "0.3.9",
"ecosystem": "crates"
},
{
"name": "siphasher",
"direct": false,
"version": "1.0.3",
"ecosystem": "crates"
},
{
"name": "slab",
"direct": false,
"version": "0.4.12",
"ecosystem": "crates"
},
{
"name": "smallvec",
"direct": false,
"version": "1.15.2",
"ecosystem": "crates"
},
{
"name": "socket2",
"direct": false,
"version": "0.6.4",
"ecosystem": "crates"
},
{
"name": "softbuffer",
"direct": false,
"version": "0.4.8",
"ecosystem": "crates"
},
{
"name": "soup3",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "soup3-sys",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "stable_deref_trait",
"direct": false,
"version": "1.2.1",
"ecosystem": "crates"
},
{
"name": "string_cache",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "string_cache_codegen",
"direct": false,
"version": "0.6.1",
"ecosystem": "crates"
},
{
"name": "strsim",
"direct": false,
"version": "0.11.1",
"ecosystem": "crates"
},
{
"name": "swift-rs",
"direct": false,
"version": "1.0.7",
"ecosystem": "crates"
},
{
"name": "syn",
"direct": false,
"version": "1.0.109",
"ecosystem": "crates"
},
{
"name": "syn",
"direct": false,
"version": "2.0.118",
"ecosystem": "crates"
},
{
"name": "sync_wrapper",
"direct": false,
"version": "1.0.2",
"ecosystem": "crates"
},
{
"name": "synstructure",
"direct": false,
"version": "0.13.2",
"ecosystem": "crates"
},
{
"name": "system-deps",
"direct": false,
"version": "6.2.2",
"ecosystem": "crates"
},
{
"name": "tao",
"direct": false,
"version": "0.35.3",
"ecosystem": "crates"
},
{
"name": "tao-macros",
"direct": false,
"version": "0.1.3",
"ecosystem": "crates"
},
{
"name": "target-lexicon",
"direct": false,
"version": "0.12.16",
"ecosystem": "crates"
},
{
"name": "tauri",
"direct": false,
"version": "2.11.3",
"ecosystem": "crates"
},
{
"name": "tauri-build",
"direct": false,
"version": "2.6.3",
"ecosystem": "crates"
},
{
"name": "tauri-codegen",
"direct": false,
"version": "2.6.3",
"ecosystem": "crates"
},
{
"name": "tauri-macros",
"direct": false,
"version": "2.6.3",
"ecosystem": "crates"
},
{
"name": "tauri-plugin",
"direct": false,
"version": "2.6.3",
"ecosystem": "crates"
},
{
"name": "tauri-plugin-shell",
"direct": false,
"version": "2.3.5",
"ecosystem": "crates"
},
{
"name": "tauri-runtime",
"direct": false,
"version": "2.11.3",
"ecosystem": "crates"
},
{
"name": "tauri-runtime-wry",
"direct": false,
"version": "2.11.3",
"ecosystem": "crates"
},
{
"name": "tauri-utils",
"direct": false,
"version": "2.9.3",
"ecosystem": "crates"
},
{
"name": "tauri-winres",
"direct": false,
"version": "0.3.6",
"ecosystem": "crates"
},
{
"name": "tendril",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "thiserror",
"direct": false,
"version": "1.0.69",
"ecosystem": "crates"
},
{
"name": "thiserror",
"direct": false,
"version": "2.0.18",
"ecosystem": "crates"
},
{
"name": "thiserror-impl",
"direct": false,
"version": "1.0.69",
"ecosystem": "crates"
},
{
"name": "thiserror-impl",
"direct": false,
"version": "2.0.18",
"ecosystem": "crates"
},
{
"name": "time",
"direct": false,
"version": "0.3.49",
"ecosystem": "crates"
},
{
"name": "time-core",
"direct": false,
"version": "0.1.9",
"ecosystem": "crates"
},
{
"name": "time-macros",
"direct": false,
"version": "0.2.29",
"ecosystem": "crates"
},
{
"name": "tinystr",
"direct": false,
"version": "0.8.3",
"ecosystem": "crates"
},
{
"name": "tinyvec",
"direct": false,
"version": "1.11.0",
"ecosystem": "crates"
},
{
"name": "tinyvec_macros",
"direct": false,
"version": "0.1.1",
"ecosystem": "crates"
},
{
"name": "tokio",
"direct": false,
"version": "1.52.3",
"ecosystem": "crates"
},
{
"name": "tokio-util",
"direct": false,
"version": "0.7.18",
"ecosystem": "crates"
},
{
"name": "toml",
"direct": false,
"version": "0.8.2",
"ecosystem": "crates"
},
{
"name": "toml",
"direct": false,
"version": "0.9.12+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml",
"direct": false,
"version": "1.1.2+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml_datetime",
"direct": false,
"version": "0.6.3",
"ecosystem": "crates"
},
{
"name": "toml_datetime",
"direct": false,
"version": "0.7.5+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml_datetime",
"direct": false,
"version": "1.1.1+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml_edit",
"direct": false,
"version": "0.19.15",
"ecosystem": "crates"
},
{
"name": "toml_edit",
"direct": false,
"version": "0.20.2",
"ecosystem": "crates"
},
{
"name": "toml_edit",
"direct": false,
"version": "0.25.12+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml_parser",
"direct": false,
"version": "1.1.2+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "toml_writer",
"direct": false,
"version": "1.1.1+spec-1.1.0",
"ecosystem": "crates"
},
{
"name": "tower",
"direct": false,
"version": "0.5.3",
"ecosystem": "crates"
},
{
"name": "tower-http",
"direct": false,
"version": "0.6.11",
"ecosystem": "crates"
},
{
"name": "tower-layer",
"direct": false,
"version": "0.3.3",
"ecosystem": "crates"
},
{
"name": "tower-service",
"direct": false,
"version": "0.3.3",
"ecosystem": "crates"
},
{
"name": "tracing",
"direct": false,
"version": "0.1.44",
"ecosystem": "crates"
},
{
"name": "tracing-core",
"direct": false,
"version": "0.1.36",
"ecosystem": "crates"
},
{
"name": "tray-icon",
"direct": false,
"version": "0.24.1",
"ecosystem": "crates"
},
{
"name": "try-lock",
"direct": false,
"version": "0.2.5",
"ecosystem": "crates"
},
{
"name": "typeid",
"direct": false,
"version": "1.0.3",
"ecosystem": "crates"
},
{
"name": "typenum",
"direct": false,
"version": "1.20.1",
"ecosystem": "crates"
},
{
"name": "unic-char-property",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "unic-char-range",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "unic-common",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "unic-ucd-ident",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "unic-ucd-version",
"direct": false,
"version": "0.9.0",
"ecosystem": "crates"
},
{
"name": "unicode-ident",
"direct": false,
"version": "1.0.24",
"ecosystem": "crates"
},
{
"name": "unicode-segmentation",
"direct": false,
"version": "1.13.3",
"ecosystem": "crates"
},
{
"name": "url",
"direct": false,
"version": "2.5.8",
"ecosystem": "crates"
},
{
"name": "urlpattern",
"direct": false,
"version": "0.3.0",
"ecosystem": "crates"
},
{
"name": "utf-8",
"direct": false,
"version": "0.7.6",
"ecosystem": "crates"
},
{
"name": "utf8_iter",
"direct": false,
"version": "1.0.4",
"ecosystem": "crates"
},
{
"name": "uuid",
"direct": false,
"version": "1.23.3",
"ecosystem": "crates"
},
{
"name": "version-compare",
"direct": false,
"version": "0.2.1",
"ecosystem": "crates"
},
{
"name": "version_check",
"direct": false,
"version": "0.9.5",
"ecosystem": "crates"
},
{
"name": "vswhom",
"direct": false,
"version": "0.1.0",
"ecosystem": "crates"
},
{
"name": "vswhom-sys",
"direct": false,
"version": "0.1.3",
"ecosystem": "crates"
},
{
"name": "walkdir",
"direct": false,
"version": "2.5.0",
"ecosystem": "crates"
},
{
"name": "want",
"direct": false,
"version": "0.3.1",
"ecosystem": "crates"
},
{
"name": "wasi",
"direct": false,
"version": "0.11.1+wasi-snapshot-preview1",
"ecosystem": "crates"
},
{
"name": "wasip2",
"direct": false,
"version": "1.0.4+wasi-0.2.12",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen",
"direct": false,
"version": "0.2.125",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-futures",
"direct": false,
"version": "0.4.75",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-macro",
"direct": false,
"version": "0.2.125",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-macro-support",
"direct": false,
"version": "0.2.125",
"ecosystem": "crates"
},
{
"name": "wasm-bindgen-shared",
"direct": false,
"version": "0.2.125",
"ecosystem": "crates"
},
{
"name": "wasm-streams",
"direct": false,
"version": "0.5.0",
"ecosystem": "crates"
},
{
"name": "web-sys",
"direct": false,
"version": "0.3.102",
"ecosystem": "crates"
},
{
"name": "web_atoms",
"direct": false,
"version": "0.2.5",
"ecosystem": "crates"
},
{
"name": "webkit2gtk",
"direct": false,
"version": "2.0.2",
"ecosystem": "crates"
},
{
"name": "webkit2gtk-sys",
"direct": false,
"version": "2.0.2",
"ecosystem": "crates"
},
{
"name": "webview2-com",
"direct": false,
"version": "0.38.2",
"ecosystem": "crates"
},
{
"name": "webview2-com-macros",
"direct": false,
"version": "0.8.1",
"ecosystem": "crates"
},
{
"name": "webview2-com-sys",
"direct": false,
"version": "0.38.2",
"ecosystem": "crates"
},
{
"name": "winapi",
"direct": false,
"version": "0.3.9",
"ecosystem": "crates"
},
{
"name": "winapi-i686-pc-windows-gnu",
"direct": false,
"version": "0.4.0",
"ecosystem": "crates"
},
{
"name": "winapi-util",
"direct": false,
"version": "0.1.11",
"ecosystem": "crates"
},
{
"name": "winapi-x86_64-pc-windows-gnu",
"direct": false,
"version": "0.4.0",
"ecosystem": "crates"
},
{
"name": "window-vibrancy",
"direct": false,
"version": "0.6.0",
"ecosystem": "crates"
},
{
"name": "windows",
"direct": false,
"version": "0.61.3",
"ecosystem": "crates"
},
{
"name": "windows-collections",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "windows-core",
"direct": false,
"version": "0.61.2",
"ecosystem": "crates"
},
{
"name": "windows-core",
"direct": false,
"version": "0.62.2",
"ecosystem": "crates"
},
{
"name": "windows-future",
"direct": false,
"version": "0.2.1",
"ecosystem": "crates"
},
{
"name": "windows-implement",
"direct": false,
"version": "0.60.2",
"ecosystem": "crates"
},
{
"name": "windows-interface",
"direct": false,
"version": "0.59.3",
"ecosystem": "crates"
},
{
"name": "windows-link",
"direct": false,
"version": "0.1.3",
"ecosystem": "crates"
},
{
"name": "windows-link",
"direct": false,
"version": "0.2.1",
"ecosystem": "crates"
},
{
"name": "windows-numerics",
"direct": false,
"version": "0.2.0",
"ecosystem": "crates"
},
{
"name": "windows-result",
"direct": false,
"version": "0.3.4",
"ecosystem": "crates"
},
{
"name": "windows-result",
"direct": false,
"version": "0.4.1",
"ecosystem": "crates"
},
{
"name": "windows-strings",
"direct": false,
"version": "0.4.2",
"ecosystem": "crates"
},
{
"name": "windows-strings",
"direct": false,
"version": "0.5.1",
"ecosystem": "crates"
},
{
"name": "windows-sys",
"direct": false,
"version": "0.45.0",
"ecosystem": "crates"
},
{
"name": "windows-sys",
"direct": false,
"version": "0.59.0",
"ecosystem": "crates"
},
{
"name": "windows-sys",
"direct": false,
"version": "0.60.2",
"ecosystem": "crates"
},
{
"name": "windows-sys",
"direct": false,
"version": "0.61.2",
"ecosystem": "crates"
},
{
"name": "windows-targets",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows-targets",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows-targets",
"direct": false,
"version": "0.53.5",
"ecosystem": "crates"
},
{
"name": "windows-threading",
"direct": false,
"version": "0.1.0",
"ecosystem": "crates"
},
{
"name": "windows-version",
"direct": false,
"version": "0.1.7",
"ecosystem": "crates"
},
{
"name": "windows_aarch64_gnullvm",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_aarch64_gnullvm",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_aarch64_gnullvm",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_aarch64_msvc",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_aarch64_msvc",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_aarch64_msvc",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_i686_gnu",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_i686_gnu",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_i686_gnu",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_i686_gnullvm",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_i686_gnullvm",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_i686_msvc",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_i686_msvc",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_i686_msvc",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_gnu",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_gnu",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_gnu",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_gnullvm",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_gnullvm",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_gnullvm",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_msvc",
"direct": false,
"version": "0.42.2",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_msvc",
"direct": false,
"version": "0.52.6",
"ecosystem": "crates"
},
{
"name": "windows_x86_64_msvc",
"direct": false,
"version": "0.53.1",
"ecosystem": "crates"
},
{
"name": "winnow",
"direct": false,
"version": "0.5.40",
"ecosystem": "crates"
},
{
"name": "winnow",
"direct": false,
"version": "0.7.15",
"ecosystem": "crates"
},
{
"name": "winnow",
"direct": false,
"version": "1.0.3",
"ecosystem": "crates"
},
{
"name": "winreg",
"direct": false,
"version": "0.55.0",
"ecosystem": "crates"
},
{
"name": "wit-bindgen",
"direct": false,
"version": "0.57.1",
"ecosystem": "crates"
},
{
"name": "writeable",
"direct": false,
"version": "0.6.3",
"ecosystem": "crates"
},
{
"name": "wry",
"direct": false,
"version": "0.55.1",
"ecosystem": "crates"
},
{
"name": "x11",
"direct": false,
"version": "2.21.0",
"ecosystem": "crates"
},
{
"name": "x11-dl",
"direct": false,
"version": "2.21.0",
"ecosystem": "crates"
},
{
"name": "yoke",
"direct": false,
"version": "0.8.3",
"ecosystem": "crates"
},
{
"name": "yoke-derive",
"direct": false,
"version": "0.8.2",
"ecosystem": "crates"
},
{
"name": "zerofrom",
"direct": false,
"version": "0.1.8",
"ecosystem": "crates"
},
{
"name": "zerofrom-derive",
"direct": false,
"version": "0.1.7",
"ecosystem": "crates"
},
{
"name": "zerotrie",
"direct": false,
"version": "0.2.4",
"ecosystem": "crates"
},
{
"name": "zerovec",
"direct": false,
"version": "0.11.6",
"ecosystem": "crates"
},
{
"name": "zerovec-derive",
"direct": false,
"version": "0.11.3",
"ecosystem": "crates"
},
{
"name": "zmij",
"direct": false,
"version": "1.0.21",
"ecosystem": "crates"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/cenkalti/backoff/v5",
"direct": false,
"version": "v5.0.3",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": false,
"version": "v1.1.2-0.20180830191138-d8f796af33cc",
"ecosystem": "go"
},
{
"name": "github.com/dustin/go-humanize",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/glebarez/go-sqlite",
"direct": false,
"version": "v1.21.2",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/logr",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/go-logr/stdr",
"direct": false,
"version": "v1.2.2",
"ecosystem": "go"
},
{
"name": "github.com/go-ole/go-ole",
"direct": false,
"version": "v1.3.0",
"ecosystem": "go"
},
{
"name": "github.com/golang/freetype",
"direct": false,
"version": "v0.0.0-20170609003504-e2365dfdc4a0",
"ecosystem": "go"
},
{
"name": "github.com/golang/snappy",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/grpc-ecosystem/grpc-gateway/v2",
"direct": false,
"version": "v2.29.0",
"ecosystem": "go"
},
{
"name": "github.com/jinzhu/inflection",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/jinzhu/now",
"direct": false,
"version": "v1.1.5",
"ecosystem": "go"
},
{
"name": "github.com/kylelemons/godebug",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/lufia/plan9stats",
"direct": false,
"version": "v0.0.0-20260330125221-c963978e514e",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-colorable",
"direct": false,
"version": "v0.1.14",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.22",
"ecosystem": "go"
},
{
"name": "github.com/munnerz/goautoneg",
"direct": false,
"version": "v0.0.0-20191010083416-a7dc8b61c822",
"ecosystem": "go"
},
{
"name": "github.com/ncruces/go-strftime",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
"ecosystem": "go"
},
{
"name": "github.com/power-devops/perfstat",
"direct": false,
"version": "v0.0.0-20240221224432-82ca36839d55",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.67.5",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.20.1",
"ecosystem": "go"
},
{
"name": "github.com/remyoudompheng/bigfft",
"direct": false,
"version": "v0.0.0-20230129092748-24d4a6f8daec",
"ecosystem": "go"
},
{
"name": "github.com/shoenig/go-m1cpu",
"direct": false,
"version": "v0.2.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/match",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/pretty",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/tklauser/go-sysconf",
"direct": false,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/tklauser/numcpus",
"direct": false,
"version": "v0.12.0",
"ecosystem": "go"
},
{
"name": "github.com/yusufpapurcu/wmi",
"direct": false,
"version": "v1.2.4",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/auto/sdk",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace",
"direct": false,
"version": "v1.44.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/metric",
"direct": false,
"version": "v1.44.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/proto/otlp",
"direct": false,
"version": "v1.10.0",
"ecosystem": "go"
},
{
"name": "go.yaml.in/yaml/v2",
"direct": false,
"version": "v2.4.4",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": false,
"version": "v0.53.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": false,
"version": "v0.38.0",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/api",
"direct": false,
"version": "v0.0.0-20260526163538-3dc84a4a5aaa",
"ecosystem": "go"
},
{
"name": "google.golang.org/genproto/googleapis/rpc",
"direct": false,
"version": "v0.0.0-20260526163538-3dc84a4a5aaa",
"ecosystem": "go"
},
{
"name": "google.golang.org/grpc",
"direct": false,
"version": "v1.81.1",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.11",
"ecosystem": "go"
},
{
"name": "modernc.org/libc",
"direct": false,
"version": "v1.22.5",
"ecosystem": "go"
},
{
"name": "modernc.org/mathutil",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "modernc.org/memory",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "modernc.org/sqlite",
"direct": false,
"version": "v1.23.1",
"ecosystem": "go"
},
{
"name": "@emnapi/core",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/runtime",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/wasi-threads",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@napi-rs/wasm-runtime",
"direct": false,
"version": "1.1.5",
"ecosystem": "npm"
},
{
"name": "@oxc-project/types",
"direct": false,
"version": "0.133.0",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-android-arm64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-darwin-arm64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-darwin-x64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-freebsd-x64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm64-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm64-musl",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-ppc64-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-s390x-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-x64-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-x64-musl",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-openharmony-arm64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-wasm32-wasi",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-win32-arm64-msvc",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-win32-x64-msvc",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/pluginutils",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-darwin-arm64",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-darwin-x64",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-linux-arm-gnueabihf",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-linux-arm64-gnu",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-linux-arm64-musl",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-linux-riscv64-gnu",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-linux-x64-gnu",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-linux-x64-musl",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-win32-arm64-msvc",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-win32-ia32-msvc",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tauri-apps/cli-win32-x64-msvc",
"direct": false,
"version": "2.11.3",
"ecosystem": "npm"
},
{
"name": "@tybys/wasm-util",
"direct": false,
"version": "0.10.2",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "26.0.0",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "19.2.17",
"ecosystem": "npm"
},
{
"name": "@types/react-dom",
"direct": false,
"version": "19.2.3",
"ecosystem": "npm"
},
{
"name": "@vitejs/plugin-react",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "csstype",
"direct": false,
"version": "3.2.3",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "lightningcss",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-android-arm64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-darwin-arm64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-darwin-x64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-freebsd-x64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm-gnueabihf",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm64-gnu",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm64-musl",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-x64-gnu",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-x64-musl",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-win32-arm64-msvc",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-win32-x64-msvc",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.14",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "8.5.15",
"ecosystem": "npm"
},
{
"name": "rolldown",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "scheduler",
"direct": false,
"version": "0.27.0",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.17",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "8.3.0",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "8.0.16",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 592,
"direct_count": 34,
"indirect_count": 558
}
},
"maintainership": {
"issues": {
"open_prs": 3,
"merged_prs": 1,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 2
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "KomeiDiSanXian",
"commits": 558,
"avatar_url": "https://avatars.githubusercontent.com/u/53388791?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"release.yml",
"stale.yml"
],
"has_docs_dir": true,
"linter_configs": [
".golangci.yml"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"Cargo.lock",
"go.sum",
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 8,
"reason": "binaries present in source code",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 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": 3,
"reason": "project has 1 contributing companies or organizations -- score normalized to 3",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 10,
"reason": "project is fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 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": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 2,
"reason": "dependency not pinned by hash detected -- score normalized to 2",
"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": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "24 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "402a8b45a68a37ee39cf56d2e75adadbf4369e96",
"ran_at": "2026-07-26T00:36:41Z",
"aggregate_score": 3.7,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-25T03:00:04Z",
"oldest_open_prs": [
{
"number": 4,
"created_at": "2026-07-20T03:11:39Z",
"last_comment_at": "2026-07-20T03:11:40Z",
"last_comment_author": "dependabot"
},
{
"number": 5,
"created_at": "2026-07-20T03:11:50Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 6,
"created_at": "2026-07-25T02:59:56Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-06-22T05:36:59Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/KomeiDiSanXian/remilia",
"host": "github.com",
"name": "remilia",
"owner": "KomeiDiSanXian"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 55,
"inputs": {
"security": 50,
"vitality": 80,
"community": 27,
"governance": 42,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 80,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"commits_last_year": 559,
"human_commit_share": 0.99,
"days_since_last_push": 0,
"active_weeks_last_year": 27
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 0 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 0
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "27/52 weeks with commits",
"points": 18.7,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 27
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "559 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 559
}
}
],
"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": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 13,
"latest_release_tag": "v1.20.1",
"releases_from_tags": false,
"days_since_latest_release": 8,
"mean_days_between_releases": 2.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "13 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 13
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 8 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 8
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~2.4 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 2.4
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 27,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 0,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "0 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 0
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (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": 6.3,
"status": "met",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 42,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 13,
"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 1 contributing companies or organizations -- score normalized to 3",
"points": 3,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "critical",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 24,
"inputs": {
"merged_prs": 1,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 2
},
"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": "1/3 decided PRs merged",
"points": 12.8,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 1,
"decided": 3
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 48,
"inputs": {
"followers": 11,
"owner_type": "User",
"is_verified": null,
"owner_login": "KomeiDiSanXian",
"public_repos": 13,
"account_age_days": 2554
},
"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": "11 followers of KomeiDiSanXian",
"points": 7.8,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 11,
"login": "KomeiDiSanXian"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "13 public repos, account ~6 yr old",
"points": 20.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 13
}
},
{
"code": "account_age_years",
"params": {
"years": 6
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"github.com/KomeiDiSanXian/remilia"
],
"ecosystems": "go",
"any_deprecated": false,
"min_days_since_publish": 8
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on go",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "go"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 8 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 8
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "47 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 47
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 74,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"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": 80,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"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": ".golangci.yml",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "moderate",
"name": "Security",
"value": 50,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 37,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 3.7
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection 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 1 contributing companies or organizations -- score normalized to 3",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is fuzzed",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.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 detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 2",
"points": 1,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "24 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 592 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 592
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 25,
"affected_packages": 23,
"assessed_packages": 592,
"unassessed_packages": 0,
"affected_by_severity": "critical 1, high 2, moderate 1, unknown 19",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"max_points": 40
}
]
},
{
"key": "malicious_dependencies",
"band": "excellent",
"name": "Malicious dependencies",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"source": "osv",
"meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
"packages": [],
"red_flag": false,
"assessed_packages": 592,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 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": 66,
"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.949,
"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": "94 of 99 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 94,
"sampled": 99
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 82,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"Cargo.lock",
"go.sum",
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"Makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"dashboard/tsconfig.json",
"desktop/tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [
"cmd/bot/go.mod",
"desktop/src-tauri/Cargo.toml",
"examples/httpclient-demo/go.mod",
"examples/showcase/wasm/go.mod",
"go.mod",
"plugin/wasm/testdata/go.mod",
"plugin/wasm/testdata/tinygoplugin/go.mod"
],
"dependency_bot_commit_share": 0.01
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "Makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Makefile"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": ".golangci.yml",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".golangci.yml"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "dashboard/tsconfig.json, desktop/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "dashboard/tsconfig.json, desktop/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "1 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 1,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 2",
"points": 2,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 42806,
"source_files_sampled": 698,
"oversized_source_files": 0
},
"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": "0/698 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 698,
"oversized": 0
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [],
"report_type": "repository",
"generated_at": "2026-07-26T00:36:46.718131Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/k/KomeiDiSanXian/remilia.svg",
"full_name": "KomeiDiSanXian/remilia",
"license_state": "standard",
"license_spdx": "MIT"
}