JSON-Rohbericht maschinenlesbar
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 34898,
"has_wiki": true,
"homepage": null,
"languages": {
"CSS": 39380,
"Vue": 2180286,
"HTML": 1823,
"NSIS": 1111,
"TypeScript": 3636265
},
"pushed_at": "2026-07-25T08:42:31Z",
"created_at": "2026-02-19T15:49:57Z",
"owner_type": "User",
"updated_at": "2026-07-20T15:50:27Z",
"description": "A multifunctional media management project designed to provide a unified user interface and database model to record, manage, build, sync, and showcase your media collection and memories.",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": null,
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript",
"Vue"
]
},
"owner": {
"blog": "https://blog.ximu.dev/",
"name": "ximu",
"type": "User",
"login": "ximu3",
"company": null,
"location": null,
"followers": 46,
"avatar_url": "https://avatars.githubusercontent.com/u/152481053?v=4",
"created_at": "2023-11-30T08:22:07Z",
"is_verified": null,
"public_repos": 6,
"account_age_days": 968
},
"license": {
"state": "absent",
"spdx_id": null,
"raw_spdx": null,
"file_present": false,
"scorecard_found": false,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "desktop-v0.0.6",
"kind": "other",
"published_at": "2026-07-19T15:58:54Z"
},
{
"tag": "extension-tooling-v0.0.11",
"kind": "other",
"published_at": "2026-07-19T15:57:26Z"
},
{
"tag": "desktop-v0.0.5",
"kind": "other",
"published_at": "2026-07-04T12:07:28Z"
},
{
"tag": "extension-tooling-v0.0.10",
"kind": "other",
"published_at": "2026-07-04T09:09:46Z"
},
{
"tag": "extension-tooling-v0.0.9",
"kind": "other",
"published_at": "2026-07-04T07:03:41Z"
},
{
"tag": "extension-tooling-v0.0.8",
"kind": "other",
"published_at": "2026-07-04T06:39:20Z"
},
{
"tag": "extension-tooling-v0.0.7",
"kind": "other",
"published_at": "2026-07-04T05:35:35Z"
},
{
"tag": "extension-tooling-v0.0.6",
"kind": "other",
"published_at": "2026-07-03T13:46:00Z"
},
{
"tag": "extension-tooling-v0.0.5",
"kind": "other",
"published_at": "2026-07-03T13:20:42Z"
},
{
"tag": "extension-tooling-v0.0.4",
"kind": "other",
"published_at": "2026-07-03T11:46:21Z"
},
{
"tag": "extension-tooling-v0.0.3",
"kind": "other",
"published_at": "2026-06-25T13:18:25Z"
},
{
"tag": "extension-tooling-v0.0.2",
"kind": "other",
"published_at": "2026-06-20T11:54:14Z"
},
{
"tag": "extension-tooling-v0.0.1",
"kind": "other",
"published_at": "2026-05-23T14:02:30Z"
},
{
"tag": "desktop-v0.0.4",
"kind": "other",
"published_at": "2026-05-23T13:55:41Z"
},
{
"tag": "desktop-v0.0.3",
"kind": "other",
"published_at": "2026-03-28T08:23:04Z"
},
{
"tag": "desktop-v0.0.2",
"kind": "other",
"published_at": "2026-02-27T09:00:21Z"
},
{
"tag": "desktop-v0.0.1",
"kind": "other",
"published_at": "2026-02-20T11:26:54Z"
}
],
"recent_commits": [
{
"oid": "5641e798e4536a1c3dab460b9d8604350504ae01",
"body": "…ansition flicker\n\nRoute pages now declare data loaders on route meta, awaited by a global\nbeforeResolve guard: the previous page stays visible until the next page's\ndata settles, so first frames render success/not-found/error only and\npending/loading branches disappear from all route page templates\n[…]\nto route loaders; in-page parameter changes (tabs, period,\n filters) refetch non-blockingly with old data kept until settled\n- gate all empty states on settled data, removing loading-as-empty flashes",
"is_bot": false,
"headline": "refactor(renderer): load route data during navigation to eliminate tr…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-20T15:47:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f573e65bcae57cae4da6f6c3c487ae47e7251940",
"body": null,
"is_bot": false,
"headline": "release(desktop): v0.0.6",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-19T15:51:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ddf0633b17d1e45884ef0a71048375f2e46cceef",
"body": null,
"is_bot": false,
"headline": "publish(extension-tooling): v0.0.11",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-19T15:39:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "470ba5e91d8676b7ea39187d6c1bca45f35d56f6",
"body": "…tory errors\n\nA persisted registry manifest snapshot that no longer parses under the\ncurrent schema was silently read back as null: the repository still looked\nhealthy while contributing zero packages to the catalog, and its surviving\netag/last-modified validators let a 304 response strand it in tha\n[…]\n is usable\n (readable and allowed by the URL policy), forcing a full refetch otherwise\n- treat a 304 without a usable local snapshot as a refresh failure,\n mirroring the existing addRepository guard",
"is_bot": false,
"headline": "fix(extension): surface stale repository manifest snapshots as reposi…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-19T15:15:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2e3459a09f2a8630d5d7fd06e4ed3b051e9dfd91",
"body": "…ge processing\n\n- Updated Electron runtime from version 39 to 41 in AGENTS.md and SKILL.md.\n- Improved comments in protocol.ts and service.ts to clarify CORS handling for ambient color extraction and attachment responses.\n- Refined styles in context-menu and dropdown-menu components for better visual consistency.\n- Adjusted leap year calculation in statistics-hero.vue for improved accuracy.",
"is_bot": false,
"headline": "chore: update Electron version to 41 and enhance CORS handling in ima…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-19T14:55:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d2a7b3efbb64141fdfb407ae7324d814d7b470a",
"body": "- Introduced a scoped claim system for ambient light management, ensuring only the most recent claim can modify the light state.\n- Enhanced the `useAmbientLight` composable to utilize the new claim interface, improving palette extraction and cleanup processes.\n- Updated the light controller to manag\n[…]\ndates during page transitions and ensuring smoother visual transitions.\n- Improved documentation for ambient light functionality, clarifying the new claim-based approach and its impact on UI behavior.",
"is_bot": false,
"headline": "refactor(light): improve ambient light management with scoped claims",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-19T14:07:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "14d057d53b580c94a443bf2a904785385e8d93bd",
"body": "- restructure all report pages into full-width bands partitioned by page\n grid lines only, dropping the outer frame and card-style arrangement\n- add a hero band anchored by the period's most played cover, with total\n duration delta, composition strip, and a spacing-separated fact row\n- replace pie\n[…]\nemove the unused categorical ramp and recharts remnants\n- fix weekly report charts (trend + heatmap), expand heatmap granularity\n per report, and switch heatmap intensity to relative quantile scaling",
"is_bot": false,
"headline": "refactor(statistics): redesign report pages with editorial band layout",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-18T15:19:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ec0a7188556a4c3c4af7455090fc9c26df6bb02f",
"body": "- Updated ambient light extraction to return a raw palette of hue anchors, improving the handling of cover-derived colors.\n- Refactored the light controller to manage the new ambient palette format, allowing for smoother transitions and cross-fading effects.\n- Adjusted the `AmbientLight` component t\n[…]\ning, ensuring consistent application of light overrides.\n- Improved documentation for ambient light functionality, clarifying the integration of the new palette system and its impact on UI aesthetics.",
"is_bot": false,
"headline": "refactor(light): enhance ambient light extraction and palette management",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-18T10:18:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0f010cc5a950980cef88fe5331723b219df847db",
"body": "…tency\n\n- Modified styles in `field-separator`, `switch`, and `tabs-trigger` components to enhance visual consistency by using `bg-muted` and `bg-primary-foreground`.\n- Updated shadow utilities in various components to ensure proper application of elevation treatments, specifically for opaque slabs.\n- Improved documentation regarding shadow tiers and their application to maintain clarity in design principles.",
"is_bot": false,
"headline": "refactor(ui): update component styles and shadow utilities for consis…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-18T08:54:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a8f941ca2a0e41be3a6b5fe1e9613925d21fd77a",
"body": "- Updated the `AmbientLight` component to utilize reactive state for palette management, enabling smoother transitions between color palettes.\n- Refactored the light controller to manage dynamic color states more efficiently, allowing for cross-fading effects during palette changes.\n- Improved CSS s\n[…]\n transition system that enhances visual performance during route changes.\n- Adjusted documentation comments for clarity on the ambient light functionality and its integration with the lightbox design.",
"is_bot": false,
"headline": "refactor(light): enhance ambient light handling and improve performance",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-18T08:32:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fe720f7c573fe3376a8d86d0d91ba40b71ea7cd6",
"body": "…gression\n\nElectron 41.2.1+ adds external resize bands to frameless windows on\nWindows (electron/electron#50706, aggravated by #51503 in 41.5.2/42.3.3/43),\nwhich leak black edges along the left/right/bottom of the window under\nDPI scaling (electron/electron#51892). Pin the exact last clean version\nuntil the upstream fix lands, and allow electron's install script in\npnpm so the binary download runs.",
"is_bot": false,
"headline": "fix(deps): pin electron to 41.2.0 to dodge frameless window border re…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-18T07:58:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fb0ced76023bbe7156fdaab986b0f6a452b20200",
"body": "- Updated the `AmbientLight` component to reflect the new lightbox design, incorporating a light and diffuser layer for improved visual depth.\n- Removed deprecated card components and replaced them with streamlined alternatives, enhancing maintainability and consistency across the UI.\n- Refactored s\n[…]\nomponents, providing clearer feedback during loading and empty states.\n- Adjusted various UI elements to align with the new design principles, ensuring a cohesive aesthetic throughout the application.",
"is_bot": false,
"headline": "refactor(ui): enhance lightbox design and streamline component structure",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-18T07:17:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "042e39018a10a60049f0ae198a89fb3b90380758",
"body": "…esthetics\n\n- Added an `AmbientLight` component to create a soft glow effect under the UI, improving visual depth.\n- Implemented glass-like effects across various components using new shadow and glass utilities.\n- Updated layout components to incorporate the ambient light layer, ensuring consistent \n[…]\n Replaced deprecated empty state components with a unified `StateView` for better user feedback in search scenarios.\n- Enhanced dialog and context menu components with glass effects for a modern look.",
"is_bot": false,
"headline": "feat(ui): introduce ambient light and glass effects for enhanced UI a…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-13T11:47:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "aa30fcd47f01ed409c207da6a8ad0f6f90cbfcf6",
"body": "…or states\n\n- Replaced custom loading and error states with a unified StateView component across various character-related dialogs and tabs.\n- Updated character card component to utilize MediaCard and MediaCardButton for improved layout and functionality.\n- Removed deprecated components and optimized the structure of character detail tabs for better maintainability.\n- Enhanced the handling of empty states in character-related sections, providing clearer user feedback.",
"is_bot": false,
"headline": "refactor(character): streamline UI components and enhance loading/err…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-13T04:33:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "364dc674a4e77c393b2e69e746965ce5a6b40919",
"body": "…markdown changelogs\n\nRestore plain-text package descriptions and release changelogs across the registry contract, CLI, scaffolding, and desktop UI.\n\nBREAKING CHANGE: localized registry document sets, releasePage, and Markdown changelog directory options are no longer supported.",
"is_bot": false,
"headline": "refactor(extension-tooling)!: remove localized registry metadata and …",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-11T09:34:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a8fff5db57ff8d309a635c469a24a09893fcdf44",
"body": "- centralize shared dependency versions with pnpm catalogs\n- upgrade Electron, TypeScript, Vite, ESLint, Vue, and related tooling\n- replace legacy archive and filesystem dependencies with modern alternatives\n- align lint, formatting, build, CI, and extension scaffold configurations\n\nBREAKING CHANGE: extension tooling packages now publish ESM-only builds.",
"is_bot": false,
"headline": "chore(deps)!: modernize workspace dependencies and tooling",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-11T09:16:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce5d900d62d43b833a3f8c1c48bb2181a4c25be5",
"body": "- Updated build and release process to utilize the in-repo Vite bundler located at `apps/desktop/tools/bundler`.\n- Removed references to `electron-vite` and adjusted related documentation and scripts accordingly.\n- Cleaned up `pnpm-lock.yaml` by removing unused dependencies and configurations.\n- Updated IPC bridge in preload scripts to reflect new naming conventions.\n- Enhanced logging and error handling in various services to improve maintainability.",
"is_bot": false,
"headline": "refactor(build): transition to in-repo Vite bundler",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-10T16:22:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "12c34b76d05c124a8fafa5bf91d8b2b499a0d13a",
"body": null,
"is_bot": false,
"headline": "release(desktop): v0.0.5",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T11:47:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "22afe3b01fe74f1c5a59f13bfc2e07b513394328",
"body": "- replace split install/update IPC with release plan/apply APIs\n- support install, update, reinstall, downgrade, and local .kisx import through one flow\n- allow discovery details to apply specific extension releases\n- let user-installed packages override built-in extension fallback\n- add dedicated changelog dialog and clone-safe renderer IPC payloads",
"is_bot": false,
"headline": "feat(extension): unify release apply flow",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T11:33:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50d89123c5585209860f526587182b3069ec82d3",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.10",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T08:51:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "561d57b9cc2465b0c0f710b71565ddc24470c235",
"body": "- Read extension changelog summaries from top front matter\n- Use v-prefixed changelog version directories in scaffold publish flows\n- Update CLI help, README, and scaffold publishing docs",
"is_bot": false,
"headline": "fix(extension-tooling): align extension changelog release format",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T08:44:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4c216cdfd702d1e8d45dab93501017179864103c",
"body": null,
"is_bot": false,
"headline": "fix(renderer): align extension card author spacing",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T08:16:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69bbb02b61460e0a29d1487334dda5d4b95f7318",
"body": "Update the official extension repository URL and wire the repository panel button to add it through the existing repository IPC flow.",
"is_bot": false,
"headline": "feat(extension): enable official repository add button",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T07:52:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b9dda9b2a472ef18a20f9afd10d0c2c17f8f19a7",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.9",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T06:58:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3a0408f3c81ef66be4d4049a18cf839992b7b6a0",
"body": "Remove remote canonical schema IDs from packaged extension and registry\nschemas, and stop createExtensionRegistryManifest from hardcoding the remote\nregistry schema URL.\n\nGenerate local @kisaki3/extension-registry schema references from scaffolded\nworkspaces and kisx registry init, add the registry package to generated\nworkspace dev dependencies, and update registry docs for the packaged schema\nreference.",
"is_bot": false,
"headline": "refactor(extension-tooling): use packaged schema references",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T06:57:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e931eb99d9f4a9d396cfe44dbddf47c279308d38",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.8",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T06:31:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cdfcd4631a4f1bb2cafb2315cf3a2d4e8fee77d9",
"body": "Rename extension compatibility declarations from engines.kisaki to\nengines.kisakiExtensionApi across manifest contracts, registry releases,\nCLI tooling, signing payloads, install validation, catalog filtering,\nscaffold templates, built-in extension manifests, UI details, and docs.\n\nThis is a breaking extension tooling/API contract change and does not keep\nbackward compatibility for the old field.",
"is_bot": false,
"headline": "refactor(extension): rename Kisaki engine compatibility to extension API",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T06:26:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "131d8f2e6ffb6385bf170089e8ad8327ed819f16",
"body": "- Move full changelog writing rules into the Kisaki skill reference\n- Keep changelog README focused on human-facing directory structure\n- Enforce Entry Wording in release validation, excluding v0.0.1 initial releases\n- Normalize existing non-v0.0.1 changelog entries to the wording contract",
"is_bot": false,
"headline": "docs(changelog): move changelog contract into Kisaki skill",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T06:03:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "09e72c9cc980195d2697dd9727e681686c1dae8c",
"body": null,
"is_bot": false,
"headline": "docs(agents): clarify change quality standards",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T05:30:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c205060ff6789e61073be1a10d7394ce8c596f43",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.7",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T05:29:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f5917b9fc699b467e599aacc175af2e964ce302",
"body": null,
"is_bot": false,
"headline": "chore(create-kisaki-extension): use tag-based GitHub publishing",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T05:28:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b976432d294438106c27fe09151412176246c45c",
"body": null,
"is_bot": false,
"headline": "chore(release): use tag-based repository releases",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T05:28:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ea374d78e0d391d2edee29d60f6b4e6130526569",
"body": null,
"is_bot": false,
"headline": "chore(extension-tooling): allow intentional cjs build warnings in ci",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T03:48:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc2e787fc1066f17339964e6459bee1d4c5fda47",
"body": null,
"is_bot": false,
"headline": "chore: unify lefthook automation",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T03:38:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "325c9ad4139718d5bc971d5244a41983b5721d21",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.7",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T03:36:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b0214aaae53a4a3b694afcdf610628eacb031e0",
"body": null,
"is_bot": false,
"headline": "chore: format repository",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T03:33:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9075e90d71efd74a9f00f2b7e72668d8b910b42",
"body": "- update the generated GitHub publish workflow to validate registry changes before creating a release\n- remove the separate early tag creation script\n- normalize publishedAt timestamps to UTC ISO strings\n- refresh generated publish documentation",
"is_bot": false,
"headline": "fix(scaffold): defer GitHub release until registry validation",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-04T02:32:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1360aeb9dccd62d262f58d6993d3d0b4547716c3",
"body": null,
"is_bot": false,
"headline": "chore(create-kisaki-extension): typecheck generated workflow scripts",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T16:40:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b6848a0223710ab5cf6e1cc92ea5b337f2ced5bd",
"body": null,
"is_bot": false,
"headline": "feat(create-kisaki-extension): align generated workspace checks",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T16:24:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2184b34fdf2bedc18e54ee3fce4d48f732385efb",
"body": null,
"is_bot": false,
"headline": "feat(create-kisaki-extension): add workspace signing key command",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T15:37:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d436d417f67fd96be4b543af0bad7a50b80fb847",
"body": "- unify workspace and extension engines on Node 24\n- generate Node and pnpm versions from scaffold toolchain defaults\n- install pnpm explicitly in generated GitHub Actions workflows\n- update Node type dependencies and lockfile",
"is_bot": false,
"headline": "chore(tooling): standardize extension toolchain on Node 24",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T15:14:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "14b6c4a1b0c5fe02a3911d78b68505c28fa66512",
"body": "- ignore .kisx and .sig files from custom pack output paths\n- ignore npm tarballs and temporary directories in generated workspaces",
"is_bot": false,
"headline": "fix(create-kisaki-extension): ignore extension package artifacts",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T14:32:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0592a8e8c5b7fe519076744f69197087dc61341f",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.6",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T13:38:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5f2c35e3c3830b1a138d80ee1d4221430f6e1e7",
"body": "- treat empty text prompt answers as the shown initial value\n- validate cleared inputs against the same default value\n- keep placeholder behavior aligned after typing and deleting input",
"is_bot": false,
"headline": "fix(create-kisaki-extension): submit text prompt defaults consistently",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T13:34:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "284eec5cda84997c8aba08e616f5650891c23d7f",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.5",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T13:15:31Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "957d9c4e321beff5ecbcb1247c02e248cd4af606",
"body": "…n add\n\n- make init create only the extension workspace and registry\n- make add own extension creation with a positional extension id\n- rename scaffold provider config and templates to publishProvider\n- route implicit CLI usage to add inside valid workspaces\n- fail clearly when a workspace boundary is present but invalid",
"is_bot": false,
"headline": "refactor(create-kisaki-extension): split workspace init from extensio…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T13:01:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "803005449a7c21d7bd27a76fa52bea51c9a5912f",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.4",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-03T11:38:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54f5c8aea527df8f8c42c856706a8226a93c26ec",
"body": "- Replace package summary/description strings with localized description documents\n- Model release changelogs as localized Markdown files with a separate releasePage\n- Update add-release CLI and GitHub/manual scaffolds for changelogs/<version>/<locale>.md\n- Preserve registry metadata in install snapshots and render localized Markdown in desktop",
"is_bot": false,
"headline": "feat(extension-registry)!: use localized descriptions and changelogs",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-07-01T15:20:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c94d26fb4c3dc798996997a6d4dbe7f97d9ff978",
"body": "Move extension webview font delivery to an explicit resources/webview-fonts\nartifact generated by a dedicated build tool. Remove the renderer static-copy\nfont path, wire dev/build flows to generate the resource tree, and serve fonts\nfrom app.asar.unpacked resources in packaged builds.",
"is_bot": false,
"headline": "refactor(desktop): serve extension webview fonts from packaged resources",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-29T13:20:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8f02647d53d68dbcfa4c5d302ba5508e4d8f5585",
"body": "Route development webview documents through the app-owned extension UI protocol,\nproxy loopback Vite assets from main, and isolate UI build tooling into a\ndedicated build/ui module.\n\nReplace probe-and-rebind port selection with an owned HTTP listener shared by\nVite middleware and HMR, and scrub inherited debugger NODE_OPTIONS before\nlaunching Kisaki.",
"is_bot": false,
"headline": "refactor(extension-cli): unify dev webview serving model",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-28T15:19:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27f0877355318c29401b4af6cd2c9afe0521cde8",
"body": null,
"is_bot": false,
"headline": "refactor(extension-cli): align kisx config with host and ui targets",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-27T13:56:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c92bf705da37d71427a0fde098f7252c94e1a0c4",
"body": "…nance\n\n- move release logic into workflow-owned TypeScript scripts\n- generate provider-specific GitHub publishing tools\n- add registry yank and unyank operations\n- simplify scaffold configuration and tooling ownership",
"is_bot": false,
"headline": "feat(extension-tooling): unify release automation and registry mainte…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-27T04:02:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e2495cb3f113fe4245a91facecce7d3b712f878",
"body": "Split registry workspace and extension scaffold configs, derive package\nmetadata from manifest identifiers, and rename template tokens to reflect\ntheir technical targets.\n\nFlatten scaffold templates around the single workspace model and remove\nobsolete layout-specific variants and redundant metadata plumbing.",
"is_bot": false,
"headline": "refactor(create-kisaki-extension): unify scaffold metadata flow",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-26T11:29:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f07289176c25a69ca65e6bc6c6d9ba72aec4488",
"body": "… layer model\n\nRewrite the interactive scaffold on @clack/prompts and restructure the\nwebview templates into composable framework/addon layers, with the option\nmetadata consolidated as a single source of truth.\n\nCLI and TUI:\n- Replace enquirer with @clack/prompts; text defaults now render as a dim\n \n[…]\n-ui-vue requires vue) and override the framework app shell.\n- Standardize template tokens to {{UPPER_SNAKE_CASE}} and align the\n extension-tooling contract to the renamed addon path and token format.",
"is_bot": false,
"headline": "refactor(create-kisaki-extension): modernize scaffold CLI and webview…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-26T08:07:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b3938b61404cf8b64aadfd32a1e7303f20df065d",
"body": "- publish canonical tarballs through a single SemVer-derived npm dist-tag\n- remove separate preflight and post-publish dist-tag sync paths\n- rely on npm trusted publishing instead of long-lived npm tokens\n- canonicalize packed package metadata for stable release checksums\n- align release docs and changelogs with the new flow",
"is_bot": false,
"headline": "refactor(extension-tooling): simplify trusted publishing release flow",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T14:43:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "958d91e5a86821fba03cdf5f5962d87456cbf97d",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.3",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T11:10:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "41b2c401c6ce5f72cf976779e48fe0ab4e4bec5e",
"body": "- Rewrite zh-Hans, en, and ja changelogs in the desktop release note style\n- Document changelog entry wording and scope prefix guidance",
"is_bot": false,
"headline": "docs(changelog): align extension tooling v0.0.3 release notes",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T11:07:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4288f9d653cb205f75991d4c1adc395e0639904a",
"body": "- add AGENTS.md and .agents skills as the maintained guidance source\n- route extension tooling release artifacts through .tmp/release\n- simplify ignored local agent and temporary output paths",
"is_bot": false,
"headline": "chore: consolidate agent guidance and temp outputs",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T10:49:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2e3542cd8afc4db3dae2706b1dc241d149e2fab9",
"body": "Add apps/desktop/resources/extensions to .gitignore and remove the\npreviously committed bangumi and vnite-importer build outputs, since\nthese are generated artifacts that should not live in version control.",
"is_bot": false,
"headline": "chore(desktop): untrack built-in extension build artifacts",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T05:58:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "63ffe5297048736facfbb0dc760efd4247f2c79e",
"body": "…action-gh-release-718ea10b132b3b2eba29c1007bb80653f286566b\n\nchore(deps): bump softprops/action-gh-release from 7c4723f7a335432393329f8f1c564994ce50185d to 718ea10b132b3b2eba29c1007bb80653f286566b",
"is_bot": false,
"headline": "Merge pull request #6 from ximu3/dependabot/github_actions/softprops/…",
"author_name": "ximu",
"author_login": "ximu3",
"committed_at": "2026-06-25T04:58:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b32f4bc7e0a5cdbe49ac8e2d819c4179f363d9fe",
"body": "…eckout-7.0.0\n\nchore(deps): bump actions/checkout from 6.0.3 to 7.0.0",
"is_bot": false,
"headline": "Merge pull request #7 from ximu3/dependabot/github_actions/actions/ch…",
"author_name": "ximu",
"author_login": "ximu3",
"committed_at": "2026-06-25T04:58:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fde5eb11adb56ea6caf2f1ec2bdd7ea772725875",
"body": "…n-setup-0ebf47130e4866e96fce0953f49152a61190b271\n\nchore(deps): bump pnpm/action-setup from b0f76dfb45f55f8421693e4803ac7bb65143bd34 to 0ebf47130e4866e96fce0953f49152a61190b271",
"is_bot": false,
"headline": "Merge pull request #5 from ximu3/dependabot/github_actions/pnpm/actio…",
"author_name": "ximu",
"author_login": "ximu3",
"committed_at": "2026-06-25T04:58:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dce40dfe6c5af38dcc4c03b964cbda6d4490f129",
"body": "The v0.0.3 scaffold rework renamed vue-kit/package.patch.json to\npatches/package.json, but the tooling version contract still referenced\nthe old path, causing `pnpm typecheck` (build:extension-tooling) to fail\nwith \"Missing file\". Update the contract path.",
"is_bot": false,
"headline": "fix(extension-tooling): point version contract at renamed patch path",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T04:57:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5b411c7e158f38b06c6d5f32fe0913fe6f520ad",
"body": "…it/add subcommands\n\nRework the extension scaffold around an explicit `template.json` merge\nprotocol and split repository layout from release provider, matching the\nv0.0.3 extension-tooling release.\n\nBreaking changes:\n- `create-kisaki-extension` now uses subcommands; create repositories with\n `pnpm\n[…]\nling staging directory with one\n final rename, with Windows-transient rename retries, so template failures\n never leave a partial target.\n\nAdd the v0.0.3 extension-tooling changelog (en/ja/zh-Hans).",
"is_bot": false,
"headline": "feat(create-kisaki-extension): manifest-driven scaffold layers and in…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-25T04:41:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1595c439bff4141ceeb4b7b347d9ac691e9f31fa",
"body": null,
"is_bot": false,
"headline": "fix(release): align GitHub and npm release channels",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-23T15:07:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4f677320e177221f7ac9e3eba9e70fa65ab89c55",
"body": null,
"is_bot": false,
"headline": "refactor(extension-tooling): unify CLI, scaffolding, and build workflows",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-23T13:02:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ec3c86cd2a3bfc9a8c37eab8b1f5d60ecbd11be",
"body": null,
"is_bot": false,
"headline": "fix(release): trust successful npm publish results",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-20T12:14:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c965a2c006123b1ed6f5c43e84646ecd9992c11",
"body": "Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 7c4723f7a335432393329f8f1c564994ce50185d to 718ea10b132b3b2eba29c1007bb80653f286566b.\n- [Release notes](https://github.com/softprops/action-gh-release/releases)\n- [Changelog](https://github.com/softprops/action-\n[…]\nependency-name: softprops/action-gh-release\n dependency-version: 718ea10b132b3b2eba29c1007bb80653f286566b\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump softprops/action-gh-release",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-20T11:48:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2dcc3cdb2013de8364d9b7307580e67bccfb449a",
"body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b43\n[…]\n- dependency-name: actions/checkout\n dependency-version: 7.0.0\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump actions/checkout from 6.0.3 to 7.0.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-20T11:48:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cce5ac538dd8962203ec282c33ffec0278be1a56",
"body": "Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from b0f76dfb45f55f8421693e4803ac7bb65143bd34 to 0ebf47130e4866e96fce0953f49152a61190b271.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/b0f76dfb45f55f8421693e4\n[…]\nncies:\n- dependency-name: pnpm/action-setup\n dependency-version: 0ebf47130e4866e96fce0953f49152a61190b271\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
"is_bot": true,
"headline": "chore(deps): bump pnpm/action-setup",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-20T11:47:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c471e8c3a52b0271b298ff9cea8658f552f5423d",
"body": null,
"is_bot": false,
"headline": "release(extension-tooling): v0.0.2",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-20T11:46:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "02a2b4a4116c4c6ff3bb8e30d72efde06371ed3b",
"body": null,
"is_bot": false,
"headline": "chore(release): harden extension tooling release pipeline",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-20T11:31:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e15f4a746e50b8c60e184af47fb855a6c9705979",
"body": null,
"is_bot": false,
"headline": "fix(extension-tooling): enforce UI kit lockstep versioning",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-20T09:59:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9169168a154336c1ba296e81b456da37b54bfbd7",
"body": "Redesign the Vnite importer wizard around structured preview rows, per-row detail dialogs, diagnostics, and host-backed pagination.\n\nAlso refresh import configuration, running/done states, backup analysis display, and localized diagnostics for graph conflicts.",
"is_bot": false,
"headline": "refactor(vnite-importer): redesign import wizard webview UI",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-14T14:47:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0ad97e657353f1ec8c6e7b76d33c75a6893d6912",
"body": null,
"is_bot": false,
"headline": "feat(extensions): support 2xl webview dialogs",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-14T12:26:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c7a44ce102d5b4e1997d7ed49ec7032709c2f98a",
"body": null,
"is_bot": false,
"headline": "feat(extensions): add task run cancelOwn API",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-14T12:23:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2ce9378d4e87016518357dda96b7fbe59d828c63",
"body": "Centralize extension tooling metadata and make desktop built-in extension builds resolve required workspace tooling packages from extension package.json files. This prevents clean CI builds from missing generated package entrypoints such as extension-cli/config and extension-ui-vue.",
"is_bot": false,
"headline": "fix(build): derive built-in extension tooling build deps",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-14T10:58:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5306f771a6253bb41e28c6ce2fd8e6008500a58",
"body": "Ensure desktop builds generate the extension CLI config export required by built-in extension configs in clean CI environments. Add a unified extension tooling output verification command and reuse it in CI/release workflows.",
"is_bot": false,
"headline": "fix(build): rebuild extension CLI before packaging built-in extensions",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T15:00:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "45a3fa10f76387bc99b89aab66643928264d9dcc",
"body": null,
"is_bot": false,
"headline": "feat(bangumi): redesign settings webview",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T14:40:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2037b1a03f1a922c655c14041a8ae890c25be825",
"body": null,
"is_bot": false,
"headline": "feat(extensions): support webview HMR in builtin dev",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T14:39:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "238e2c0399ba07b55b54a7753be8a074abbd4b9a",
"body": null,
"is_bot": false,
"headline": "chore: ignore Cursor workspace metadata",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T14:38:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e6319d2f4483d786979ba2c9f42a324d65a477b5",
"body": "Document the finished Vnite importer features, import flow, behavior notes, and development commands in English.",
"is_bot": false,
"headline": "docs(vnite-importer): update README for completed importer",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T12:11:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf366cb720d6603da8c688a099d23a26198a72da",
"body": "- add pnpm packageManager metadata to generated extensions\n- update scaffold docs, CLI next steps, VS Code launch configs, and publish workflows to use pnpm\n- enable pnpm via corepack in generated GitHub Actions workflows\n- use std output capture for VS Code debug launch noise reduction",
"is_bot": false,
"headline": "chore(extension-tooling): standardize scaffolds on pnpm",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T12:07:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aaf670c6eea8191e7766f27a66e3e7b462e8ea63",
"body": "Replace the old publication/current.json flow with direct development loading\nfrom extension project roots and flat built-in package output.\n\n- pass development extensions through KISAKI_DEV_EXTENSIONS\n- add pending-reload tracking for development extension changes\n- make host reload restart reliabl\n[…]\n icon changes\n- tighten dev-server origin parsing to loopback HTTP origins\n- update CLI output/build/dev commands and documentation\n- remove obsolete publication helpers and stale --dev-extension docs",
"is_bot": false,
"headline": "refactor(extension): simplify dev loading and package output",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T11:11:00Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4affbe562be156c6742fbbd5edb0e5e2bd5751c5",
"body": "Scrollbars: on Electron 39 (Chromium 140) the standard scrollbar-width /\nscrollbar-color properties take precedence over ::-webkit-scrollbar, so the\npseudo-element rules were dead code (or fell back to the chunky classic\nscrollbar). Drop them and set scrollbar-width / scrollbar-color directly; since\n[…]\nrollbar actually resolved to here.\n\nFonts: load the Noto Sans SC / Noto Sans Mono Fontsource packages through\n@import in globals.css instead of runtime injection, which is robust in both\ndev and prod.",
"is_bot": false,
"headline": "fix(ui): correct global scrollbar styling and app font loading",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T07:35:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "421155ee56aaadfe9ddb87096d2f6ed24cf0478d",
"body": "…-run results\n\nRebuild the extension webview UI/styling system end to end, bound task-run\nresults, and rewrite the two builtin extensions on the new foundation. No\nbackward compatibility kept.\n\nAppearance bridge & styling:\n- Mirror the full resolved app appearance (color tokens, radius, fonts, base\n\n[…]\nf polling task runs;\n previews no longer fake a task run through notifications.\n\nScaffold:\n- Add the vue-kit UI variant (Vue + UI kit, iconify prewired); templates\n assemble base.css + tailwind.css.",
"is_bot": false,
"headline": "refactor(extension): overhaul webview UI, appearance bridge, and task…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-13T06:51:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "15303da5347e988b3c30af4eecf583a724ec3444",
"body": "- rename RPC/webview message types to *Envelope and RpcMessageChannel to RpcChannel\n- normalize every outgoing main<->host value via new toRpcValue inside RpcChannel\n- make webview.postMessage and the renderer relay the JSON gates for documents\n- drop facade-level normalization and delete sdk-bridge\n[…]\nze limits and rename secret field data to ciphertext\n- assert main<->renderer extension DTOs are strictly JSON via new JsonSafe<T>\n- fix pending-request leaks when a transport send fails synchronously",
"is_bot": false,
"headline": "refactor(extension): centralize wire serialization at transport gates",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-12T11:47:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0b2e6b2bfee210129cedec0587d1dc19d25fcb2c",
"body": "- freeze the webview iframe bootstrap URL so theme switches no longer\n reload open documents and drop their state\n- rename the extension-api ExtensionTaskRun* family to TaskRun*; main-side\n task-run adapters alias the public types where both vocabularies meet\n- enforce extension host/ui/shared bou\n[…]\n a shared\n slot helper and unify the webviews capability on createUnavailableError\n- add file header comments to extension webview components and mark\n superseded extension design docs as historical",
"is_bot": false,
"headline": "refactor(extension): tighten webview UI conventions and layer boundaries",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-12T09:31:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3d19d5785d2693d45ad63820ec5ef6ecd4abd414",
"body": "…sion UI\n\n- remove the settingsPanels contribution and DSL; add cardActions plus\n kisaki.webviews with main-owned dialog/page sessions and the\n kisaki-extension-ui:// asset scheme\n- add the SDK /webview document client, createWebviewRpc, and the theme.css\n Tailwind bridge\n- rebuild kisx on embedd\n[…]\nk dev loop (UI HMR, host\n republish); scaffold gains vanilla/vue webview UI variants\n- migrate bangumi settings and the vnite-importer wizard to the\n host/shared/ui layout with Vue webview documents",
"is_bot": false,
"headline": "refactor(extension): replace settings panels with webview-based exten…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-12T08:45:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3094b139c2af69ced85cc3a29466d2d05815802a",
"body": "…ndary\n\n- add compile-time WireSafe assertions covering every RPC method and event map\n- tighten contract gaps the assertions exposed: task-run output and scanner\n snapshot rules become JsonValue, network response data defaults to RpcValue\n- consolidate the JSON value model into shared/json.ts as i\n[…]\ntics, and document boundary casts and the strict JSON value contract\n- drop dead code: unused RPC error payload validators and the unreferenced\n extension:get-settings-panel-contributions IPC channel",
"is_bot": false,
"headline": "refactor(extension): enforce wire-safe value contracts across the bou…",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-10T15:43:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ad74894a6d5e7b84a8855a78d0a515ef147f880d",
"body": "Remove the separate analysis layer from the Vnite importer UI and replace the old flow steps with config and preview. Keep configuration focused on import options, drop analysis distribution/coverage display, and sync related design docs.",
"is_bot": false,
"headline": "refactor(vnite-importer): simplify settings import flow",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-09T11:09:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f56f2533d222fd0703bc93d7d226b22478e3438b",
"body": null,
"is_bot": false,
"headline": "fix(bangumi): explicitly set non-preview settings fields to horizontal",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-08T15:28:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67b5cea53d74521860d6c408ecee2e3c66b3baf1",
"body": "- preflight external ID ownership conflicts during graph matching\n- mark conflicted entity nodes as failed instead of aborting the whole import\n- dedupe Vnite import diagnostics and surface error counts consistently",
"is_bot": false,
"headline": "fix(library): contain graph external id conflicts per node",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-08T14:59:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7e82bf4775be513687a534f3037d8b5463a0a1a",
"body": "…- add footerActions contract, validation, normalization, and renderer support - move Vnite importer flow controls into panel footer actions - remove advanced cleanup state and stale settings history behavior - refine Vnite preview and diagnostics UI for import planning - close the settings panel after starting a Vnite import task",
"is_bot": false,
"headline": "feat(extension-settings): support footer actions in settings panels …",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-08T11:42:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8e487a5ef456d29b5508eaf843aa6cda97efc15a",
"body": null,
"is_bot": false,
"headline": "feat(extension-settings): default fields to vertical layout",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-08T08:55:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "77708e3ead372eb45862ab86cdf408ee23d1dcb2",
"body": "Publish dev extension output as immutable versions switched by current.json,\nresolve dev/built-in publications before runtime load, and limit filesystem\nreload watching to development-mode extensions.\n\nBREAKING CHANGE: installed extensions no longer reload from package directory\nfile changes; runtime changes now flow through install/update/enable/disable.",
"is_bot": false,
"headline": "refactor(extension): make hot reload dev-only and atomic",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-08T08:39:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0c75bed669d7d0ea7c0bb69dae284f9d99c1a6f",
"body": "- validate settings panel models before JSON serialization\n- register onClick/onChange callbacks during settings normalization\n- keep resolved settings payloads JSON-only with callbackId\n- avoid reshaping Vnite button nodes after creation",
"is_bot": false,
"headline": "fix(extension): normalize settings panel callbacks before serialization",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-07T13:40:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5b3bb92f02c9d75986cac56628a4eb4ef003aad3",
"body": "- move Vnite backup file selection into the field-level control\n- use footer next action for the importer first step\n- stop dev output watcher from watching generated dist artifacts\n- ignore generated dependency paths in extension reload watcher logs",
"is_bot": false,
"headline": "fix(extension): stabilize vnite import flow and dev output watching",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-07T13:34:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc3e93360c6a804b81a5ac2c81d70d6321c93cc2",
"body": "- replace Serializable* contracts with JsonValue and JsonObject\n- centralize extension JSON serialization and validation helpers\n- tighten storage and secrets APIs to JSON-bounded values\n- normalize host, renderer, tooling, and built-in extension usage\n- preserve validation_failure semantics for task run JSON payload errors",
"is_bot": false,
"headline": "refactor(extension): unify extension JSON value contracts",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-07T11:40:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be6a2743629c3252e6021aebde8ebe2f7ebe19d3",
"body": "Add the Vnite importer configuration flow, preview UI, completion summary,\nfield options, advanced settings, and persisted import defaults. Wire import\ncommands through the new settings runtime and apply configured merge behavior\nduring import execution.\n\nModernize extension package/runtime handling\n[…]\nh constants, and sharing unpacked/archive package layout logic across the\nCLI. Runtime dependencies are now copied into extension outputs consistently\nfor dev, built-in, and packaged extension builds.",
"is_bot": false,
"headline": "feat(vnite-importer): complete phase 8 import configuration",
"author_name": "ximu3",
"author_login": "ximu3",
"committed_at": "2026-06-07T08:43:45Z",
"body_truncated": true,
"is_coding_agent": false
}
],
"releases_count": 17,
"commits_last_year": 398,
"latest_release_at": "2026-07-19T15:58:54Z",
"latest_release_tag": "desktop-v0.0.6",
"releases_from_tags": false,
"days_since_last_push": 0,
"active_weeks_last_year": 22,
"days_since_latest_release": 5,
"mean_days_between_releases": 1.8
},
"community": {
"has_readme": true,
"has_license": false,
"has_description": true,
"has_contributing": false,
"health_percentage": 28,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "kisaki",
"exists": true,
"license": "ISC",
"keywords": [],
"ecosystem": "npm",
"matches_repo": null,
"registry_url": "https://www.npmjs.com/package/kisaki",
"is_deprecated": false,
"latest_version": "0.0.0",
"repository_url": null,
"versions_count": 1,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 10,
"first_published_at": "2024-01-23T16:47:49.104000Z",
"latest_published_at": "2024-01-23T16:47:49.245000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 913
},
{
"name": "@kisaki3/extension-api",
"exists": true,
"license": "MIT",
"keywords": [
"kisaki",
"extension",
"api",
"contracts"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@kisaki3/extension-api",
"is_deprecated": false,
"latest_version": "0.0.11",
"repository_url": "https://github.com/ximu3/kisaki",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 2184,
"first_published_at": "2026-05-23T14:01:57.768000Z",
"latest_published_at": "2026-07-19T15:56:26.911000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "@kisaki3/extension-cli",
"exists": true,
"license": "MIT",
"keywords": [
"kisaki",
"extension",
"cli",
"kisx"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@kisaki3/extension-cli",
"is_deprecated": false,
"latest_version": "0.0.11",
"repository_url": "https://github.com/ximu3/kisaki",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1867,
"first_published_at": "2026-05-23T14:02:10.712000Z",
"latest_published_at": "2026-07-19T15:56:45.606000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "@kisaki3/extension-sdk",
"exists": true,
"license": "MIT",
"keywords": [
"kisaki",
"extension",
"sdk"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@kisaki3/extension-sdk",
"is_deprecated": false,
"latest_version": "0.0.11",
"repository_url": "https://github.com/ximu3/kisaki",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1784,
"first_published_at": "2026-05-23T14:02:06.300000Z",
"latest_published_at": "2026-07-19T15:56:36.191000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "@kisaki3/extension-ui-vue",
"exists": true,
"license": "MIT",
"keywords": [
"kisaki",
"extension",
"webview",
"ui",
"vue"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@kisaki3/extension-ui-vue",
"is_deprecated": false,
"latest_version": "0.0.11",
"repository_url": "https://github.com/ximu3/kisaki",
"versions_count": 10,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1617,
"first_published_at": "2026-06-20T11:53:46.924000Z",
"latest_published_at": "2026-07-19T15:56:40.705000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "@kisaki3/extension-registry",
"exists": true,
"license": "MIT",
"keywords": [
"kisaki",
"extension",
"registry"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/@kisaki3/extension-registry",
"is_deprecated": false,
"latest_version": "0.0.11",
"repository_url": "https://github.com/ximu3/kisaki",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1968,
"first_published_at": "2026-05-23T14:02:01.762000Z",
"latest_published_at": "2026-07-19T15:56:31.483000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
},
{
"name": "create-kisaki-extension",
"exists": true,
"license": "MIT",
"keywords": [
"kisaki",
"extension",
"create",
"scaffolding"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/create-kisaki-extension",
"is_deprecated": false,
"latest_version": "0.0.11",
"repository_url": "https://github.com/ximu3/kisaki",
"versions_count": 11,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1811,
"first_published_at": "2026-05-23T14:02:14.378000Z",
"latest_published_at": "2026-07-19T15:56:51.209000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 2,
"stars": 26,
"watchers": 0,
"fork_history": {
"days": [
{
"date": "2026-02-20",
"count": 2
}
],
"complete": true,
"collected": 2,
"total_forks": 2
},
"star_history": null,
"open_issues_and_prs": 6
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"apps/desktop/tsconfig.json",
"extensions/bangumi/tsconfig.json",
"packages/create-kisaki-extension/templates/extension/base/tsconfig.json",
"packages/create-kisaki-extension/templates/extension/webview/base/patches/tsconfig.json",
"packages/create-kisaki-extension/templates/workspace/base/tsconfig.json",
"packages/create-kisaki-extension/tsconfig.json",
"packages/extension-api/tsconfig.json",
"packages/extension-cli/tsconfig.json",
"packages/extension-registry/tsconfig.json",
"packages/extension-sdk/tsconfig.json",
"packages/extension-ui-vue/tsconfig.json",
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 33276,
"source_files_sampled": 1229,
"oversized_source_files": 0,
"agent_instruction_files": [
"AGENTS.md"
],
"agent_instruction_max_bytes": 6187
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@kisaki3/extension-api",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@kisaki3/extension-registry",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@ximu3/process-list",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^0.0.2"
},
{
"name": "async-mutex",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^0.5.0"
},
{
"name": "better-sqlite3",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^12.11.1"
},
{
"name": "chokidar",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "cron-parser",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^5.6.1"
},
{
"name": "cross-spawn",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "drizzle-orm",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^0.45.2"
},
{
"name": "electron-log",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^5.4.4"
},
{
"name": "electron-updater",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^6.8.9"
},
{
"name": "electron-window-state",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^5.0.3"
},
{
"name": "fflate",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "file-type",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^22.0.1"
},
{
"name": "i18next",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^26.3.6"
},
{
"name": "nanoid",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^5.1.16"
},
{
"name": "semver",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "sharp",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^0.35.3"
},
{
"name": "sharp-phash",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^2.2.0"
},
{
"name": "smartcrop-sharp",
"manifest": "apps/desktop/package.json",
"ecosystem": "npm",
"version_constraint": "^2.0.8"
},
{
"name": "@clack/prompts",
"manifest": "packages/create-kisaki-extension/package.json",
"ecosystem": "npm",
"version_constraint": "^1.7.0"
},
{
"name": "@kisaki3/extension-api",
"manifest": "packages/create-kisaki-extension/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@kisaki3/extension-registry",
"manifest": "packages/create-kisaki-extension/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "commander",
"manifest": "packages/create-kisaki-extension/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "cross-spawn",
"manifest": "packages/create-kisaki-extension/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "kolorist",
"manifest": "packages/create-kisaki-extension/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "semver",
"manifest": "packages/extension-api/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "@kisaki3/extension-api",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@kisaki3/extension-registry",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "chokidar",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "commander",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "cross-spawn",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "fflate",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "kolorist",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "semver",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "vite",
"manifest": "packages/extension-cli/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "@kisaki3/extension-api",
"manifest": "packages/extension-registry/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "semver",
"manifest": "packages/extension-registry/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "@kisaki3/extension-api",
"manifest": "packages/extension-sdk/package.json",
"ecosystem": "npm",
"version_constraint": "workspace:*"
},
{
"name": "@vueuse/core",
"manifest": "packages/extension-ui-vue/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "class-variance-authority",
"manifest": "packages/extension-ui-vue/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "clsx",
"manifest": "packages/extension-ui-vue/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "reka-ui",
"manifest": "packages/extension-ui-vue/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "tailwind-merge",
"manifest": "packages/extension-ui-vue/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "tw-animate-css",
"manifest": "packages/extension-ui-vue/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 4,
"merged_prs": 3,
"open_issues": 2,
"closed_ratio": 0.333,
"closed_issues": 1,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "ximu3",
"commits": 395,
"avatar_url": "https://avatars.githubusercontent.com/u/152481053?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"pnpm-lock.yaml"
],
"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": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 10,
"reason": "update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 0,
"reason": "license file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 8,
"reason": "dependency not pinned by hash detected -- score normalized to 8",
"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": 10,
"reason": "GitHub workflow tokens follow principle of least privilege",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "27 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "5641e798e4536a1c3dab460b9d8604350504ae01",
"ran_at": "2026-07-25T13:59:59Z",
"aggregate_score": 4.6,
"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-25T08:42:36Z",
"oldest_open_prs": [
{
"number": 4,
"created_at": "2026-04-25T16:28:11Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 8,
"created_at": "2026-07-18T08:42:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 9,
"created_at": "2026-07-18T08:42:37Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 10,
"created_at": "2026-07-25T08:42:31Z",
"last_comment_at": null,
"last_comment_author": null
}
],
"last_merged_pr_at": "2026-06-25T04:59:00Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 1,
"created_at": "2026-02-19T16:20:59Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 3,
"created_at": "2026-02-22T04:11:33Z",
"last_comment_at": "2026-02-22T05:34:32Z",
"last_comment_author": "ximu3"
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/ximu3/kisaki",
"host": "github.com",
"name": "kisaki",
"owner": "ximu3"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"security": 46,
"vitality": 83,
"community": 35,
"governance": 47,
"engineering": 71
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 83,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 79,
"inputs": {
"commits_last_year": 398,
"human_commit_share": 0.97,
"days_since_last_push": 0,
"active_weeks_last_year": 22
},
"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": "22/52 weeks with commits",
"points": 15.2,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 22
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "398 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 398
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 17,
"latest_release_tag": "desktop-v0.0.6",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 1.8
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "17 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 17
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~1.8 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 1.8
}
}
],
"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": "at_risk",
"name": "Community & Adoption",
"value": 35,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 23,
"inputs": {
"forks": 2,
"stars": 26,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "26 stars",
"points": 22.7,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 26
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "2 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 2
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": true,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "no license file detected",
"points": 0,
"status": "missed",
"details": [
{
"code": "license_absent",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 68,
"inputs": {
"packages": [
"kisaki",
"@kisaki3/extension-api",
"@kisaki3/extension-cli",
"@kisaki3/extension-sdk",
"@kisaki3/extension-ui-vue",
"@kisaki3/extension-registry",
"create-kisaki-extension"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 11241
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "11,241 downloads/month across npm",
"points": 54,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 11241,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "at_risk",
"name": "Sustainability & Governance",
"value": 47,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 54,
"inputs": {
"merged_prs": 3,
"open_issues": 2,
"closed_issues": 1,
"issue_closed_ratio": 0.333,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "33% of issues closed",
"points": 15.6,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 33
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "3/3 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 3,
"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": 42,
"inputs": {
"followers": 46,
"owner_type": "User",
"is_verified": null,
"owner_login": "ximu3",
"public_repos": 6,
"account_age_days": 968
},
"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": "46 followers of ximu3",
"points": 12,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 46,
"login": "ximu3"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "6 public repos, account ~2 yr old",
"points": 11.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 6
}
},
{
"code": "account_age_years",
"params": {
"years": 2
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"kisaki",
"@kisaki3/extension-api",
"@kisaki3/extension-cli",
"@kisaki3/extension-sdk",
"@kisaki3/extension-ui-vue",
"@kisaki3/extension-registry",
"create-kisaki-extension"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "7 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 7,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "11 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 11
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 71,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": "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": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "2 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 2
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"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": "good",
"name": "Documentation",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 46,
"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": 46,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 4.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "binaries present in source code",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "update tool detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 8",
"points": 4,
"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": "GitHub workflow tokens follow principle of least privilege",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "27 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 75,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
"AGENTS.md"
],
"agent_instruction_max_bytes": 6187
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "97 of 97 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 97,
"sampled": 97
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"pnpm-lock.yaml"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [
"apps/desktop/tsconfig.json",
"extensions/bangumi/tsconfig.json",
"packages/create-kisaki-extension/templates/extension/base/tsconfig.json",
"packages/create-kisaki-extension/templates/extension/webview/base/patches/tsconfig.json",
"packages/create-kisaki-extension/templates/workspace/base/tsconfig.json",
"packages/create-kisaki-extension/tsconfig.json",
"packages/extension-api/tsconfig.json",
"packages/extension-cli/tsconfig.json",
"packages/extension-registry/tsconfig.json",
"packages/extension-sdk/tsconfig.json",
"packages/extension-ui-vue/tsconfig.json",
"tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.03
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "apps/desktop/tsconfig.json, extensions/bangumi/tsconfig.json, packages/create-kisaki-extension/templates/extension/base/tsconfig.json, packages/create-kisaki-extension/templates/extension/webview/base/patches/tsconfig.json, packages/create-kisaki-extension/templates/workspace/base/tsconfig.json, packages/create-kisaki-extension/tsconfig.json, packages/extension-api/tsconfig.json, packages/extension-cli/tsconfig.json, packages/extension-registry/tsconfig.json, packages/extension-sdk/tsconfig.json, packages/extension-ui-vue/tsconfig.json, tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "apps/desktop/tsconfig.json, extensions/bangumi/tsconfig.json, packages/create-kisaki-extension/templates/extension/base/tsconfig.json, packages/create-kisaki-extension/templates/extension/webview/base/patches/tsconfig.json, packages/create-kisaki-extension/templates/workspace/base/tsconfig.json, packages/create-kisaki-extension/tsconfig.json, packages/extension-api/tsconfig.json, packages/extension-cli/tsconfig.json, packages/extension-registry/tsconfig.json, packages/extension-sdk/tsconfig.json, packages/extension-ui-vue/tsconfig.json, tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "3 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 3,
"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 8",
"points": 8,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 33276,
"source_files_sampled": 1229,
"oversized_source_files": 0
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "0/1229 source files over 60KB",
"points": 55,
"status": "met",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1229,
"oversized": 0
}
}
],
"max_points": 55
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
],
"report_type": "repository",
"generated_at": "2026-07-25T14:00:07.275078Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/x/ximu3/kisaki.svg",
"full_name": "ximu3/kisaki",
"license_state": "absent",
"license_spdx": null
}