Darkmatter · agent stage: prod
preview@internal.darkmatter
Events received
124429
Ignored
124261
Jobs dispatched
174

Event ffaf5ee0…

← All events

Event

Delivery
ffaf5ee0-5bfe-11f1-956b-2cd1a91c444b
Event
pull_request_review_thread
Action
resolved
Received
2026-05-30T08:10:20.615Z
Signature
valid
Parsed
yes
Sender
github-code-quality[bot]
Repo
darkmatter/nixmac
Status
ignored — unsupported_event

Headers

{
  "accept": "*/*",
  "accept-encoding": "gzip, br",
  "cf-connecting-ip": "140.82.115.174",
  "cf-ipcountry": "US",
  "cf-ray": "a03c4306c8e3db71",
  "cf-visitor": "{\"scheme\":\"https\"}",
  "connection": "Keep-Alive",
  "content-length": "64533",
  "content-type": "application/json",
  "host": "github-bot.darkmatter.io",
  "user-agent": "GitHub-Hookshot/c97f169",
  "x-forwarded-proto": "https",
  "x-github-delivery": "ffaf5ee0-5bfe-11f1-956b-2cd1a91c444b",
  "x-github-event": "pull_request_review_thread",
  "x-github-hook-id": "628737947",
  "x-github-hook-installation-target-id": "3663660",
  "x-github-hook-installation-target-type": "integration",
  "x-real-ip": "140.82.115.174"
}

Payload

{
  "action": "resolved",
  "pull_request": {
    "url": "https://api.github.com/repos/darkmatter/nixmac/pulls/235",
    "id": 3765979861,
    "node_id": "PR_kwDOSB6EzM7geErV",
    "html_url": "https://github.com/darkmatter/nixmac/pull/235",
    "diff_url": "https://github.com/darkmatter/nixmac/pull/235.diff",
    "patch_url": "https://github.com/darkmatter/nixmac/pull/235.patch",
    "issue_url": "https://api.github.com/repos/darkmatter/nixmac/issues/235",
    "number": 235,
    "state": "open",
    "locked": false,
    "title": "fix: generate Specta bindings via build script",
    "user": {
      "login": "scottmcmaster",
      "id": 3137688,
      "node_id": "MDQ6VXNlcjMxMzc2ODg=",
      "avatar_url": "https://avatars.githubusercontent.com/u/3137688?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/scottmcmaster",
      "html_url": "https://github.com/scottmcmaster",
      "followers_url": "https://api.github.com/users/scottmcmaster/followers",
      "following_url": "https://api.github.com/users/scottmcmaster/following{/other_user}",
      "gists_url": "https://api.github.com/users/scottmcmaster/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/scottmcmaster/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/scottmcmaster/subscriptions",
      "organizations_url": "https://api.github.com/users/scottmcmaster/orgs",
      "repos_url": "https://api.github.com/users/scottmcmaster/repos",
      "events_url": "https://api.github.com/users/scottmcmaster/events{/privacy}",
      "received_events_url": "https://api.github.com/users/scottmcmaster/received_events",
      "type": "User",
      "user_view_type": "public",
      "site_admin": false
    },
    "body": "## Summary\r\n\r\nSomebody moved the location of the specta-generated .ts files and changed the name of one and didn't update the regeneration hashing script, as evidenced by the increased dev build startup time and the diagnostic messages that appear.\r\n\r\n## Test Plan\r\n\r\nRun the dev build, watch the logs.\r\n\r\n## Docs\r\n\r\n- [ ] Docs updated\r\n- [x] No docs update needed\r\n",
    "created_at": "2026-05-29T01:55:56Z",
    "updated_at": "2026-05-30T08:09:54Z",
    "closed_at": null,
    "merged_at": null,
    "merge_commit_sha": "8e2b3165cbd91b57cc678d1b59a01f197bacd183",
    "assignees": [],
    "requested_reviewers": [
      {
        "login": "CasLinden",
        "id": 83954807,
        "node_id": "MDQ6VXNlcjgzOTU0ODA3",
        "avatar_url": "https://avatars.githubusercontent.com/u/83954807?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/CasLinden",
        "html_url": "https://github.com/CasLinden",
        "followers_url": "https://api.github.com/users/CasLinden/followers",
        "following_url": "https://api.github.com/users/CasLinden/following{/other_user}",
        "gists_url": "https://api.github.com/users/CasLinden/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/CasLinden/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/CasLinden/subscriptions",
        "organizations_url": "https://api.github.com/users/CasLinden/orgs",
        "repos_url": "https://api.github.com/users/CasLinden/repos",
        "events_url": "https://api.github.com/users/CasLinden/events{/privacy}",
        "received_events_url": "https://api.github.com/users/CasLinden/received_events",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
      }
    ],
    "requested_teams": [],
    "labels": [],
    "milestone": null,
    "draft": false,
    "commits_url": "https://api.github.com/repos/darkmatter/nixmac/pulls/235/commits",
    "review_comments_url": "https://api.github.com/repos/darkmatter/nixmac/pulls/235/comments",
    "review_comment_url": "https://api.github.com/repos/darkmatter/nixmac/pulls/comments{/number}",
    "comments_url": "https://api.github.com/repos/darkmatter/nixmac/issues/235/comments",
    "statuses_url": "https://api.github.com/repos/darkmatter/nixmac/statuses/e519da8ba290b8c6709020c02f0ac213b49257e0",
    "head": {
      "label": "darkmatter:scott/fix-specta-hashing",
      "ref": "scott/fix-specta-hashing",
      "sha": "e519da8ba290b8c6709020c02f0ac213b49257e0",
      "user": {
        "login": "darkmatter",
        "id": 17834193,
        "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/darkmatter",
        "html_url": "https://github.com/darkmatter",
        "followers_url": "https://api.github.com/users/darkmatter/followers",
        "following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
        "gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
        "organizations_url": "https://api.github.com/users/darkmatter/orgs",
        "repos_url": "https://api.github.com/users/darkmatter/repos",
        "events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
        "received_events_url": "https://api.github.com/users/darkmatter/received_events",
        "type": "Organization",
        "user_view_type": "public",
        "site_admin": false
      },
      "repo": {
        "id": 1209959628,
        "node_id": "R_kgDOSB6EzA",
        "name": "nixmac",
        "full_name": "darkmatter/nixmac",
        "private": false,
        "owner": {
          "login": "darkmatter",
          "id": 17834193,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
          "avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/darkmatter",
          "html_url": "https://github.com/darkmatter",
          "followers_url": "https://api.github.com/users/darkmatter/followers",
          "following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
          "gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
          "organizations_url": "https://api.github.com/users/darkmatter/orgs",
          "repos_url": "https://api.github.com/users/darkmatter/repos",
          "events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
          "received_events_url": "https://api.github.com/users/darkmatter/received_events",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "html_url": "https://github.com/darkmatter/nixmac",
        "description": "Home manager and nix-darwin that understands plain English",
        "fork": false,
        "url": "https://api.github.com/repos/darkmatter/nixmac",
        "forks_url": "https://api.github.com/repos/darkmatter/nixmac/forks",
        "keys_url": "https://api.github.com/repos/darkmatter/nixmac/keys{/key_id}",
        "collaborators_url": "https://api.github.com/repos/darkmatter/nixmac/collaborators{/collaborator}",
        "teams_url": "https://api.github.com/repos/darkmatter/nixmac/teams",
        "hooks_url": "https://api.github.com/repos/darkmatter/nixmac/hooks",
        "issue_events_url": "https://api.github.com/repos/darkmatter/nixmac/issues/events{/number}",
        "events_url": "https://api.github.com/repos/darkmatter/nixmac/events",
        "assignees_url": "https://api.github.com/repos/darkmatter/nixmac/assignees{/user}",
        "branches_url": "https://api.github.com/repos/darkmatter/nixmac/branches{/branch}",
        "tags_url": "https://api.github.com/repos/darkmatter/nixmac/tags",
        "blobs_url": "https://api.github.com/repos/darkmatter/nixmac/git/blobs{/sha}",
        "git_tags_url": "https://api.github.com/repos/darkmatter/nixmac/git/tags{/sha}",
        "git_refs_url": "https://api.github.com/repos/darkmatter/nixmac/git/refs{/sha}",
        "trees_url": "https://api.github.com/repos/darkmatter/nixmac/git/trees{/sha}",
        "statuses_url": "https://api.github.com/repos/darkmatter/nixmac/statuses/{sha}",
        "languages_url": "https://api.github.com/repos/darkmatter/nixmac/languages",
        "stargazers_url": "https://api.github.com/repos/darkmatter/nixmac/stargazers",
        "contributors_url": "https://api.github.com/repos/darkmatter/nixmac/contributors",
        "subscribers_url": "https://api.github.com/repos/darkmatter/nixmac/subscribers",
        "subscription_url": "https://api.github.com/repos/darkmatter/nixmac/subscription",
        "commits_url": "https://api.github.com/repos/darkmatter/nixmac/commits{/sha}",
        "git_commits_url": "https://api.github.com/repos/darkmatter/nixmac/git/commits{/sha}",
        "comments_url": "https://api.github.com/repos/darkmatter/nixmac/comments{/number}",
        "issue_comment_url": "https://api.github.com/repos/darkmatter/nixmac/issues/comments{/number}",
        "contents_url": "https://api.github.com/repos/darkmatter/nixmac/contents/{+path}",
        "compare_url": "https://api.github.com/repos/darkmatter/nixmac/compare/{base}...{head}",
        "merges_url": "https://api.github.com/repos/darkmatter/nixmac/merges",
        "archive_url": "https://api.github.com/repos/darkmatter/nixmac/{archive_format}{/ref}",
        "downloads_url": "https://api.github.com/repos/darkmatter/nixmac/downloads",
        "issues_url": "https://api.github.com/repos/darkmatter/nixmac/issues{/number}",
        "pulls_url": "https://api.github.com/repos/darkmatter/nixmac/pulls{/number}",
        "milestones_url": "https://api.github.com/repos/darkmatter/nixmac/milestones{/number}",
        "notifications_url": "https://api.github.com/repos/darkmatter/nixmac/notifications{?since,all,participating}",
        "labels_url": "https://api.github.com/repos/darkmatter/nixmac/labels{/name}",
        "releases_url": "https://api.github.com/repos/darkmatter/nixmac/releases{/id}",
        "deployments_url": "https://api.github.com/repos/darkmatter/nixmac/deployments",
        "created_at": "2026-04-14T00:37:13Z",
        "updated_at": "2026-05-29T02:08:22Z",
        "pushed_at": "2026-05-30T08:09:14Z",
        "git_url": "git://github.com/darkmatter/nixmac.git",
        "ssh_url": "git@github.com:darkmatter/nixmac.git",
        "clone_url": "https://github.com/darkmatter/nixmac.git",
        "svn_url": "https://github.com/darkmatter/nixmac",
        "homepage": "https://nixmac.com",
        "size": 678704,
        "stargazers_count": 5,
        "watchers_count": 5,
        "language": "Rust",
        "has_issues": true,
        "has_projects": true,
        "has_downloads": true,
        "has_wiki": true,
        "has_pages": false,
        "has_discussions": false,
        "forks_count": 1,
        "mirror_url": null,
        "archived": false,
        "disabled": false,
        "open_issues_count": 85,
        "license": {
          "key": "mit",
          "name": "MIT License",
          "spdx_id": "MIT",
          "url": "https://api.github.com/licenses/mit",
          "node_id": "MDc6TGljZW5zZTEz"
        },
        "allow_forking": true,
        "is_template": false,
        "web_commit_signoff_required": false,
        "has_pull_requests": true,
        "pull_request_creation_policy": "all",
        "topics": [
          "home-manager",
          "nix",
          "nix-darwin",
          "nix-flake",
          "opencode"
        ],
        "visibility": "public",
        "forks": 1,
        "open_issues": 85,
        "watchers": 5,
        "default_branch": "develop"
      }
    },
    "base": {
      "label": "darkmatter:develop",
      "ref": "develop",
      "sha": "76ad8805cbd9f455e6ffa30b13329a9fbfb9e207",
      "user": {
        "login": "darkmatter",
        "id": 17834193,
        "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
        "avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
        "gravatar_id": "",
        "url": "https://api.github.com/users/darkmatter",
        "html_url": "https://github.com/darkmatter",
        "followers_url": "https://api.github.com/users/darkmatter/followers",
        "following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
        "gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
        "starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
        "subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
        "organizations_url": "https://api.github.com/users/darkmatter/orgs",
        "repos_url": "https://api.github.com/users/darkmatter/repos",
        "events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
        "received_events_url": "https://api.github.com/users/darkmatter/received_events",
        "type": "Organization",
        "user_view_type": "public",
        "site_admin": false
      },
      "repo": {
        "id": 1209959628,
        "node_id": "R_kgDOSB6EzA",
        "name": "nixmac",
        "full_name": "darkmatter/nixmac",
        "private": false,
        "owner": {
          "login": "darkmatter",
          "id": 17834193,
          "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
          "avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/darkmatter",
          "html_url": "https://github.com/darkmatter",
          "followers_url": "https://api.github.com/users/darkmatter/followers",
          "following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
          "gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
          "organizations_url": "https://api.github.com/users/darkmatter/orgs",
          "repos_url": "https://api.github.com/users/darkmatter/repos",
          "events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
          "received_events_url": "https://api.github.com/users/darkmatter/received_events",
          "type": "Organization",
          "user_view_type": "public",
          "site_admin": false
        },
        "html_url": "https://github.com/darkmatter/nixmac",
        "description": "Home manager and nix-darwin that understands plain English",
        "fork": false,
        "url": "https://api.github.com/repos/darkmatter/nixmac",
        "forks_url": "https://api.github.com/repos/darkmatter/nixmac/forks",
        "keys_url": "https://api.github.com/repos/darkmatter/nixmac/keys{/key_id}",
        "collaborators_url": "https://api.github.com/repos/darkmatter/nixmac/collaborators{/collaborator}",
        "teams_url": "https://api.github.com/repos/darkmatter/nixmac/teams",
        "hooks_url": "https://api.github.com/repos/darkmatter/nixmac/hooks",
        "issue_events_url": "https://api.github.com/repos/darkmatter/nixmac/issues/events{/number}",
        "events_url": "https://api.github.com/repos/darkmatter/nixmac/events",
        "assignees_url": "https://api.github.com/repos/darkmatter/nixmac/assignees{/user}",
        "branches_url": "https://api.github.com/repos/darkmatter/nixmac/branches{/branch}",
        "tags_url": "https://api.github.com/repos/darkmatter/nixmac/tags",
        "blobs_url": "https://api.github.com/repos/darkmatter/nixmac/git/blobs{/sha}",
        "git_tags_url": "https://api.github.com/repos/darkmatter/nixmac/git/tags{/sha}",
        "git_refs_url": "https://api.github.com/repos/darkmatter/nixmac/git/refs{/sha}",
        "trees_url": "https://api.github.com/repos/darkmatter/nixmac/git/trees{/sha}",
        "statuses_url": "https://api.github.com/repos/darkmatter/nixmac/statuses/{sha}",
        "languages_url": "https://api.github.com/repos/darkmatter/nixmac/languages",
        "stargazers_url": "https://api.github.com/repos/darkmatter/nixmac/stargazers",
        "contributors_url": "https://api.github.com/repos/darkmatter/nixmac/contributors",
        "subscribers_url": "https://api.github.com/repos/darkmatter/nixmac/subscribers",
        "subscription_url": "https://api.github.com/repos/darkmatter/nixmac/subscription",
        "commits_url": "https://api.github.com/repos/darkmatter/nixmac/commits{/sha}",
        "git_commits_url": "https://api.github.com/repos/darkmatter/nixmac/git/commits{/sha}",
        "comments_url": "https://api.github.com/repos/darkmatter/nixmac/comments{/number}",
        "issue_comment_url": "https://api.github.com/repos/darkmatter/nixmac/issues/comments{/number}",
        "contents_url": "https://api.github.com/repos/darkmatter/nixmac/contents/{+path}",
        "compare_url": "https://api.github.com/repos/darkmatter/nixmac/compare/{base}...{head}",
        "merges_url": "https://api.github.com/repos/darkmatter/nixmac/merges",
        "archive_url": "https://api.github.com/repos/darkmatter/nixmac/{archive_format}{/ref}",
        "downloads_url": "https://api.github.com/repos/darkmatter/nixmac/downloads",
        "issues_url": "https://api.github.com/repos/darkmatter/nixmac/issues{/number}",
        "pulls_url": "https://api.github.com/repos/darkmatter/nixmac/pulls{/number}",
        "milestones_url": "https://api.github.com/repos/darkmatter/nixmac/milestones{/number}",
        "notifications_url": "https://api.github.com/repos/darkmatter/nixmac/notifications{?since,all,participating}",
        "labels_url": "https://api.github.com/repos/darkmatter/nixmac/labels{/name}",
        "releases_url": "https://api.github.com/repos/darkmatter/nixmac/releases{/id}",
        "deployments_url": "https://api.github.com/repos/darkmatter/nixmac/deployments",
        "created_at": "2026-04-14T00:37:13Z",
        "updated_at": "2026-05-29T02:08:22Z",
        "pushed_at": "2026-05-30T08:09:14Z",
        "git_url": "git://github.com/darkmatter/nixmac.git",
        "ssh_url": "git@github.com:darkmatter/nixmac.git",
        "clone_url": "https://github.com/darkmatter/nixmac.git",
        "svn_url": "https://github.com/darkmatter/nixmac",
        "homepage": "https://nixmac.com",
        "size": 678704,
        "stargazers_count": 5,
        "watchers_count": 5,
        "language": "Rust",
        "has_issues": true,
        "has_projects": true,
        "has_downloads": true,
        "has_wiki": true,
        "has_pages": false,
        "has_discussions": false,
        "forks_count": 1,
        "mirror_url": null,
        "archived": false,
        "disabled": false,
        "open_issues_count": 85,
        "license": {
          "key": "mit",
          "name": "MIT License",
          "spdx_id": "MIT",
          "url": "https://api.github.com/licenses/mit",
          "node_id": "MDc6TGljZW5zZTEz"
        },
        "allow_forking": true,
        "is_template": false,
        "web_commit_signoff_required": false,
        "has_pull_requests": true,
        "pull_request_creation_policy": "all",
        "topics": [
          "home-manager",
          "nix",
          "nix-darwin",
          "nix-flake",
          "opencode"
        ],
        "visibility": "public",
        "forks": 1,
        "open_issues": 85,
        "watchers": 5,
        "default_branch": "develop"
      }
    },
    "_links": {
      "self": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/pulls/235"
      },
      "html": {
        "href": "https://github.com/darkmatter/nixmac/pull/235"
      },
      "issue": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/issues/235"
      },
      "comments": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/issues/235/comments"
      },
      "review_comments": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/pulls/235/comments"
      },
      "review_comment": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/pulls/comments{/number}"
      },
      "commits": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/pulls/235/commits"
      },
      "statuses": {
        "href": "https://api.github.com/repos/darkmatter/nixmac/statuses/e519da8ba290b8c6709020c02f0ac213b49257e0"
      }
    },
    "author_association": "CONTRIBUTOR",
    "auto_merge": null,
    "assignee": null,
    "active_lock_reason": null
  },
  "thread": {
    "node_id": "PRRT_kwDOSB6EzM6F2yEE",
    "comments": [
      {
        "url": "https://api.github.com/repos/darkmatter/nixmac/pulls/comments/3328436250",
        "pull_request_review_id": 4395002106,
        "id": 3328436250,
        "node_id": "PRRC_kwDOSB6EzM7GY-ga",
        "diff_hunk": "@@ -0,0 +1,1451 @@\n+// GENERATED by tauri-specta — DO NOT EDIT.\n+// Re-run: cd apps/native/src-tauri && cargo build\n+// Source: src-tauri/codegen/specta_commands.rs\n+// This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually.\n+\n+/** user-defined commands **/\n+\n+\n+export const commands = {\n+async configGet() : Promise<Config> {\n+    return await TAURI_INVOKE(\"config_get\");\n+},\n+async configSetHostAttr(host: string) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"config_set_host_attr\", { host });\n+},\n+async configSetDir(dir: string) : Promise<SetDirResult> {\n+    return await TAURI_INVOKE(\"config_set_dir\", { dir });\n+},\n+async configPrepareNewDir(dir: string) : Promise<SetDirResult> {\n+    return await TAURI_INVOKE(\"config_prepare_new_dir\", { dir });\n+},\n+async configPickDir() : Promise<SetDirResult | null> {\n+    return await TAURI_INVOKE(\"config_pick_dir\");\n+},\n+async flakeExistsAt(dir: string) : Promise<boolean> {\n+    return await TAURI_INVOKE(\"flake_exists_at\", { dir });\n+},\n+async pathExists(dir: string) : Promise<boolean> {\n+    return await TAURI_INVOKE(\"path_exists\", { dir });\n+},\n+async pathNormalize(input: string) : Promise<string> {\n+    return await TAURI_INVOKE(\"path_normalize\", { input });\n+},\n+async feedbackGatherMetadata(request: FeedbackMetadataRequest) : Promise<FeedbackMetadata> {\n+    return await TAURI_INVOKE(\"feedback_gather_metadata\", { request });\n+},\n+async feedbackSubmit(payload: string) : Promise<boolean> {\n+    return await TAURI_INVOKE(\"feedback_submit\", { payload });\n+},\n+async triggerTestPanic() : Promise<null> {\n+    return await TAURI_INVOKE(\"trigger_test_panic\");\n+},\n+async debugSentryEvent() : Promise<DebugSentryResult> {\n+    return await TAURI_INVOKE(\"debug_sentry_event\");\n+},\n+async developerClearTauriState() : Promise<null> {\n+    return await TAURI_INVOKE(\"developer_clear_tauri_state\");\n+},\n+async e2eLogBreadcrumb(label: string, detail: string | null, clientTimestampUnixMs: number | null) : Promise<null> {\n+    return await TAURI_INVOKE(\"e2e_log_breadcrumb\", { label, detail, clientTimestampUnixMs });\n+},\n+async e2eMarkBootStage(stage: string, clientTimestampUnixMs: number | null) : Promise<null> {\n+    return await TAURI_INVOKE(\"e2e_mark_boot_stage\", { stage, clientTimestampUnixMs });\n+},\n+async homebrewApplyDiff(diff: HomebrewState) : Promise<ConfigEditApplyResult> {\n+    return await TAURI_INVOKE(\"homebrew_apply_diff\", { diff });\n+},\n+async homebrewGetStateDiff() : Promise<HomebrewState> {\n+    return await TAURI_INVOKE(\"homebrew_get_state_diff\");\n+},\n+async gitStatus() : Promise<GitStatus> {\n+    return await TAURI_INVOKE(\"git_status\");\n+},\n+async gitStatusAndCache() : Promise<GitStatus> {\n+    return await TAURI_INVOKE(\"git_status_and_cache\");\n+},\n+async gitCommit(message: string) : Promise<CommitResult> {\n+    return await TAURI_INVOKE(\"git_commit\", { message });\n+},\n+async gitStash(message: string) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"git_stash\", { message });\n+},\n+async gitFileDiffContents(filenames: string[]) : Promise<Partial<{ [key in string]: FileDiffContents }>> {\n+    return await TAURI_INVOKE(\"git_file_diff_contents\", { filenames });\n+},\n+async darwinEvolve(description: string) : Promise<EvolutionResult> {\n+    return await TAURI_INVOKE(\"darwin_evolve\", { description });\n+},\n+async darwinEvolveCancel() : Promise<EvolveCancelResult> {\n+    return await TAURI_INVOKE(\"darwin_evolve_cancel\");\n+},\n+async darwinEvolveAnswer(answer: string) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"darwin_evolve_answer\", { answer });\n+},\n+async darwinApplyStreamStart(hostOverride: string | null) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"darwin_apply_stream_start\", { hostOverride });\n+},\n+async darwinActivateStorePath(storePath: string) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"darwin_activate_store_path\", { storePath });\n+},\n+async finalizeApply() : Promise<FinalizeApplyResult> {\n+    return await TAURI_INVOKE(\"finalize_apply\");\n+},\n+async finalizeRollback(storePath: string | null, changesetId: number | null) : Promise<FinalizeApplyResult> {\n+    return await TAURI_INVOKE(\"finalize_rollback\", { storePath, changesetId });\n+},\n+async rollbackErase() : Promise<RollbackResult> {\n+    return await TAURI_INVOKE(\"rollback_erase\");\n+},\n+async darwinBuildCheck() : Promise<BuildCheckResult> {\n+    return await TAURI_INVOKE(\"darwin_build_check\");\n+},\n+async darwinAdoptManualChanges() : Promise<number> {\n+    return await TAURI_INVOKE(\"darwin_adopt_manual_changes\");\n+},\n+async prepareRestore(targetHash: string) : Promise<null> {\n+    return await TAURI_INVOKE(\"prepare_restore\", { targetHash });\n+},\n+async abortRestore() : Promise<null> {\n+    return await TAURI_INVOKE(\"abort_restore\");\n+},\n+async finalizeRestore(targetHash: string) : Promise<GitStatus> {\n+    return await TAURI_INVOKE(\"finalize_restore\", { targetHash });\n+},\n+async routingStateGet() : Promise<EvolveState> {\n+    return await TAURI_INVOKE(\"routing_state_get\");\n+},\n+async routingStateClear() : Promise<EvolveState> {\n+    return await TAURI_INVOKE(\"routing_state_clear\");\n+},\n+async nixCheck() : Promise<NixCheckResult> {\n+    return await TAURI_INVOKE(\"nix_check\");\n+},\n+async nixInstallStart() : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"nix_install_start\");\n+},\n+async darwinRebuildPrefetch() : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"darwin_rebuild_prefetch\");\n+},\n+async flakeListHosts() : Promise<string[]> {\n+    return await TAURI_INVOKE(\"flake_list_hosts\");\n+},\n+async flakeExists() : Promise<boolean> {\n+    return await TAURI_INVOKE(\"flake_exists\");\n+},\n+async bootstrapDefaultConfig(hostname: string) : Promise<null> {\n+    return await TAURI_INVOKE(\"bootstrap_default_config\", { hostname });\n+},\n+async findChangeMap() : Promise<SemanticChangeMap> {\n+    return await TAURI_INVOKE(\"find_change_map\");\n+},\n+async getHistory() : Promise<HistoryItem[]> {\n+    return await TAURI_INVOKE(\"get_history\");\n+},\n+async generateHistoryFrom(commitHash: string, number: number) : Promise<null> {\n+    return await TAURI_INVOKE(\"generate_history_from\", { commitHash, number });\n+},\n+async summarizeCurrent() : Promise<SemanticChangeMap> {\n+    return await TAURI_INVOKE(\"summarize_current\");\n+},\n+async generateCommitMessage() : Promise<string> {\n+    return await TAURI_INVOKE(\"generate_commit_message\");\n+},\n+async uiGetPrefs() : Promise<UiPrefs> {\n+    return await TAURI_INVOKE(\"ui_get_prefs\");\n+},\n+async uiSetPrefs(prefs: UiPrefsUpdate) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"ui_set_prefs\", { prefs });\n+},\n+async getCachedModels(provider: string) : Promise<string[] | null> {\n+    return await TAURI_INVOKE(\"get_cached_models\", { provider });\n+},\n+async setCachedModels(provider: string, models: string[]) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"set_cached_models\", { provider, models });\n+},\n+async clearCachedModels(provider: string) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"clear_cached_models\", { provider });\n+},\n+async checkCliTools() : Promise<CliToolsState> {\n+    return await TAURI_INVOKE(\"check_cli_tools\");\n+},\n+async listCliModels(tool: string) : Promise<string[]> {\n+    return await TAURI_INVOKE(\"list_cli_models\", { tool });\n+},\n+async getPromptHistory() : Promise<string[]> {\n+    return await TAURI_INVOKE(\"get_prompt_history\");\n+},\n+async addToPromptHistory(prompt: string) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"add_to_prompt_history\", { prompt });\n+},\n+async editorReadFile(relPath: string) : Promise<string> {\n+    return await TAURI_INVOKE(\"editor_read_file\", { relPath });\n+},\n+async editorWriteFile(relPath: string, content: string) : Promise<null> {\n+    return await TAURI_INVOKE(\"editor_write_file\", { relPath, content });\n+},\n+async lspStart() : Promise<null> {\n+    return await TAURI_INVOKE(\"lsp_start\");\n+},\n+async lspSend(message: string) : Promise<null> {\n+    return await TAURI_INVOKE(\"lsp_send\", { message });\n+},\n+async lspStop() : Promise<null> {\n+    return await TAURI_INVOKE(\"lsp_stop\");\n+},\n+async previewIndicatorShow() : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"preview_indicator_show\");\n+},\n+async previewIndicatorHide() : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"preview_indicator_hide\");\n+},\n+async previewIndicatorUpdate(state: PreviewIndicatorState) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"preview_indicator_update\", { state });\n+},\n+async previewIndicatorGetState() : Promise<PreviewIndicatorState> {\n+    return await TAURI_INVOKE(\"preview_indicator_get_state\");\n+},\n+async showMainWindow() : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"show_main_window\");\n+},\n+async setHasUncommittedChanges(hasChanges: boolean) : Promise<OkResult> {\n+    return await TAURI_INVOKE(\"set_has_uncommitted_changes\", { hasChanges });\n+},\n+async getRecommendedPrompt() : Promise<RecommendedPrompt | null> {\n+    return await TAURI_INVOKE(\"get_recommended_prompt\");\n+},\n+async scanSystemDefaults() : Promise<SystemDefaultsScan> {\n+    return await TAURI_INVOKE(\"scan_system_defaults\");\n+},\n+async applySystemDefaults(defaults: SystemDefault[]) : Promise<ConfigEditApplyResult> {\n+    return await TAURI_INVOKE(\"apply_system_defaults\", { defaults });\n+},\n+async permissionsCheckAll() : Promise<PermissionsState> {\n+    return await TAURI_INVOKE(\"permissions_check_all\");\n+},\n+async permissionsRequest(permissionId: string) : Promise<Permission> {\n+    return await TAURI_INVOKE(\"permissions_request\", { permissionId });\n+},\n+async checkUpdate() : Promise<UpdateInfo | null> {\n+    return await TAURI_INVOKE(\"check_update\");\n+},\n+async installUpdate() : Promise<null> {\n+    return await TAURI_INVOKE(\"install_update\");\n+},\n+async relaunchAfterUpdate() : Promise<null> {\n+    return await TAURI_INVOKE(\"relaunch_after_update\");\n+},\n+async installVersion(version: string) : Promise<null> {\n+    return await TAURI_INVOKE(\"install_version\", { version });\n+},\n+async clearPinnedVersion() : Promise<null> {\n+    return await TAURI_INVOKE(\"clear_pinned_version\");\n+}\n+}\n+\n+/** user-defined events **/\n+\n+\n+\n+/** user-defined constants **/\n+\n+\n+\n+/** user-defined types **/\n+\n+/**\n+ * Result of `darwin_build_check` — dry-run build outcome.\n+ */\n+export type BuildCheckResult = { \n+/**\n+ * Whether the dry-run build passed.\n+ */\n+passed: boolean; \n+/**\n+ * Build output or failure details.\n+ */\n+output: string }\n+export type Change = { id: number; hash: string; filename: string; diff: string; lineCount: number; createdAt: number; ownSummaryId: number | null }\n+export type ChangeSummary = { id: number; title: string; description: string; \n+/**\n+ * One of `\"QUEUED\"`, `\"DONE\"`, `\"FAILED\"`, `\"CANCELLED\"`.\n+ */\n+status: string; createdAt: number }\n+/**\n+ * Type of change for a file in git status.\n+ */\n+export type ChangeType = \n+/**\n+ * File was added.\n+ */\n+\"new\" | \n+/**\n+ * File contents changed.\n+ */\n+\"edited\" | \n+/**\n+ * File was deleted.\n+ */\n+\"removed\" | \n+/**\n+ * File was renamed or moved.\n+ */\n+\"renamed\"\n+export type ChangeWithSummary = { \n+/**\n+ * Change row identifier.\n+ */\n+id: number; \n+/**\n+ * Stable content hash for the change.\n+ */\n+hash: string; \n+/**\n+ * Repository-relative changed file path.\n+ */\n+filename: string; \n+/**\n+ * Unified diff content for this change.\n+ */\n+diff: string; \n+/**\n+ * Number of lines in the change diff.\n+ */\n+lineCount: number; \n+/**\n+ * Unix timestamp when the change was recorded.\n+ */\n+createdAt: number; \n+/**\n+ * Direct summary row id assigned to this change, if any.\n+ */\n+ownSummaryId: number | null; \n+/**\n+ * Summary title used for display.\n+ */\n+title: string; \n+/**\n+ * Summary description used for display.\n+ */\n+description: string }\n+/**\n+ * Availability of known AI CLI tools.\n+ */\n+export type CliToolsState = { \n+/**\n+ * Whether the Claude CLI is installed.\n+ */\n+claude: boolean; \n+/**\n+ * Whether the Codex CLI is installed.\n+ */\n+codex: boolean; \n+/**\n+ * Whether the OpenCode CLI is installed.\n+ */\n+opencode: boolean }\n+export type Commit = { id: number; hash: string; treeHash: string; message: string | null; createdAt: number }\n+/**\n+ * Result of a successful `git_commit` command.\n+ */\n+export type CommitResult = { \n+/**\n+ * Hash of the commit that was created.\n+ */\n+hash: string; \n+/**\n+ * Evolve state after committing.\n+ */\n+evolveState: EvolveState }\n+/**\n+ * Application configuration returned by `config_get`.\n+ */\n+export type Config = { \n+/**\n+ * Absolute path to the selected nix-darwin flake/config directory.\n+ */\n+configDir: string; \n+/**\n+ * Selected `darwinConfigurations.<host>` attribute, when configured.\n+ */\n+hostAttr: string | null }\n+/**\n+ * Result of a managed-edit apply operation (homebrew, system-defaults, etc.).\n+ */\n+export type ConfigEditApplyResult = { \n+/**\n+ * Whether the config edit was applied.\n+ */\n+ok: boolean; \n+/**\n+ * Number of items applied.\n+ */\n+count: number; \n+/**\n+ * Semantic summary after applying the edit.\n+ */\n+changeMap: SemanticChangeMap; \n+/**\n+ * Git status after applying the edit.\n+ */\n+gitStatus: GitStatus; \n+/**\n+ * Evolve routing state after applying the edit.\n+ */\n+evolveState: EvolveState }\n+/**\n+ * Response from the debug-only Sentry event command.\n+ */\n+export type DebugSentryResult = { \n+/**\n+ * Whether the debug event was sent.\n+ */\n+ok: boolean; \n+/**\n+ * Human-readable result message.\n+ */\n+message: string }\n+/**\n+ * Evolution result returned to the frontend on completion.\n+ */\n+export type EvolutionResult = { \n+/**\n+ * Semantic summary of the generated changes.\n+ */\n+changeMap: SemanticChangeMap; \n+/**\n+ * Git status after evolution completes.\n+ */\n+gitStatus: GitStatus; \n+/**\n+ * Evolve routing state after evolution completes.\n+ */\n+evolveState: EvolveState; \n+/**\n+ * Assistant response when no file changes were produced.\n+ */\n+conversationalResponse: string | null; \n+/**\n+ * Telemetry collected during evolution.\n+ */\n+telemetry: EvolutionTelemetry }\n+/**\n+ * Evolution lifecycle state.\n+ */\n+export type EvolutionState = \n+/**\n+ * Initial state before generation starts.\n+ */\n+\"pending\" | \n+/**\n+ * Currently generating/processing.\n+ */\n+\"loading\" | \n+/**\n+ * Generation complete, ready for review.\n+ */\n+\"generated\" | \n+/**\n+ * Changes have been applied (darwin-rebuild ran).\n+ */\n+\"applied\" | \n+/**\n+ * Changes have been committed.\n+ */\n+\"committed\" | \n+/**\n+ * An error occurred.\n+ */\n+\"failed\" | \n+/**\n+ * Agent responded conversationally without making any environment changes.\n+ */\n+\"conversational\"\n+/**\n+ * Telemetry counters from a completed evolution run.\n+ */\n+export type EvolutionTelemetry = { \n+/**\n+ * Final lifecycle state for the evolution.\n+ */\n+state: EvolutionState; \n+/**\n+ * Number of agent iterations completed.\n+ */\n+iterations: number; \n+/**\n+ * Number of build attempts completed.\n+ */\n+buildAttempts: number; \n+/**\n+ * Total token count reported by the provider.\n+ */\n+totalTokens: number; \n+/**\n+ * Number of edit operations performed.\n+ */\n+editsCount: number; \n+/**\n+ * Number of reasoning/thinking events observed.\n+ */\n+thinkingCount: number; \n+/**\n+ * Number of tool calls performed.\n+ */\n+toolCallsCount: number; \n+/**\n+ * Total evolution duration in milliseconds.\n+ */\n+durationMs: number }\n+/**\n+ * Acknowledgement from `darwin_evolve_cancel`.\n+ */\n+export type EvolveCancelResult = { \n+/**\n+ * Whether the cancellation request was accepted.\n+ */\n+ok: boolean; \n+/**\n+ * Human-readable cancellation result.\n+ */\n+message: string }\n+/**\n+ * Persisted evolve state stored in `evolve-state.json`.\n+ */\n+export type EvolveState = { \n+/**\n+ * Active evolution database id.\n+ */\n+evolutionId: number | null; \n+/**\n+ * Active changeset id for the current repo state.\n+ */\n+currentChangesetId: number | null; \n+/**\n+ * Whether the current state has been successfully built and can be committed.\n+ */\n+committable: boolean; \n+/**\n+ * Branch used to reset repo state on evolve failure.\n+ */\n+backupBranch: string | null; \n+/**\n+ * Branch used to recover repo state during rollback.\n+ */\n+rollbackBranch: string | null; \n+/**\n+ * Nix store path that should be reactivated during rollback.\n+ */\n+rollbackStorePath: string | null; \n+/**\n+ * Changeset id associated with the rollback target.\n+ */\n+rollbackChangesetId: number | null; \n+/**\n+ * UI step derived from the routing state.\n+ */\n+step: EvolveStep; \n+/**\n+ * Last terminal state observed for this routing session.\n+ * \n+ * This supports transition-sensitive behavior when returning to Begin\n+ * and maybe some other useful things in the future.\n+ */\n+lastEvolutionState?: EvolutionState | null }\n+/**\n+ * Widget step derived from `EvolveState` fields.\n+ */\n+export type EvolveStep = \n+/**\n+ * Initial prompt entry state.\n+ */\n+\"begin\" | \n+/**\n+ * AI evolution is in progress or ready for review.\n+ */\n+\"evolve\" | \n+/**\n+ * Changes are built and ready to commit.\n+ */\n+\"commit\" | \n+/**\n+ * User is manually editing generated changes.\n+ */\n+\"manualEvolve\" | \n+/**\n+ * Manual changes are ready to commit.\n+ */\n+\"manualCommit\"\n+/**\n+ * AI provider/model info and usage signals.\n+ */\n+export type FeedbackAiProviderModelInfo = { \n+/**\n+ * Provider used for evolution requests.\n+ */\n+evolveProvider: string | null; \n+/**\n+ * Model used for evolution requests.\n+ */\n+evolveModel: string | null; \n+/**\n+ * Provider used for summary requests.\n+ */\n+summaryProvider: string | null; \n+/**\n+ * Model used for summary requests.\n+ */\n+summaryModel: string | null; \n+/**\n+ * Token count reported for the related AI run.\n+ */\n+totalTokens: number | null; \n+/**\n+ * Latency in milliseconds for the related AI run.\n+ */\n+latencyMs: number | null; \n+/**\n+ * Iterations completed by the related evolution.\n+ */\n+iterations: number | null; \n+/**\n+ * Build attempts completed by the related evolution.\n+ */\n+buildAttempts: number | null }\n+/**\n+ * Flake input metadata captured from flake.lock.\n+ */\n+export type FeedbackFlakeInputEntry = { \n+/**\n+ * Git revision for the flake input.\n+ */\n+rev: string | null; \n+/**\n+ * Flake input last-modified timestamp from `flake.lock`.\n+ */\n+lastModified: number | null; \n+/**\n+ * Store hash for the locked input.\n+ */\n+narHash: string | null }\n+/**\n+ * Snapshot of selected flake inputs.\n+ */\n+export type FeedbackFlakeInputsSnapshot = { \n+/**\n+ * Locked `nixpkgs` input metadata.\n+ */\n+nixpkgs: FeedbackFlakeInputEntry | null; \n+/**\n+ * Locked `nix-darwin` input metadata.\n+ */\n+\"nix-darwin\": FeedbackFlakeInputEntry | null; \n+/**\n+ * Locked `home-manager` input metadata.\n+ */\n+\"home-manager\": FeedbackFlakeInputEntry | null }\n+/**\n+ * Metadata collected for feedback submission based on user opt-in.\n+ */\n+export type FeedbackMetadata = { \n+/**\n+ * Current frontend/store snapshot, represented as arbitrary JSON.\n+ */\n+currentAppStateSnapshot: JsonValue | null; \n+/**\n+ * Runtime system information.\n+ */\n+systemInfo: FeedbackSystemInfo | null; \n+/**\n+ * Aggregated local usage statistics.\n+ */\n+usageStats: FeedbackUsageStats | null; \n+/**\n+ * Captured evolution log content.\n+ */\n+evolutionLogContent: string | null; \n+/**\n+ * Diff for changed Nix files at submission time.\n+ */\n+changedNixFilesDiff: string | null; \n+/**\n+ * AI provider/model metadata for the related run.\n+ */\n+aiProviderModelInfo: FeedbackAiProviderModelInfo | null; \n+/**\n+ * Latest build error output.\n+ */\n+buildErrorOutput: string | null; \n+/**\n+ * Selected locked flake input metadata.\n+ */\n+flakeInputsSnapshot: FeedbackFlakeInputsSnapshot | null; \n+/**\n+ * Recent application log content.\n+ */\n+appLogsContent: string | null; \n+/**\n+ * Panic details when feedback is submitted after a crash.\n+ */\n+panicDetails: FeedbackPanicDetails | null }\n+/**\n+ * Request payload for gathering feedback metadata.\n+ */\n+export type FeedbackMetadataRequest = { \n+/**\n+ * Feedback category selected by the user.\n+ */\n+feedbackType: string; \n+/**\n+ * User opt-in flags controlling which artifacts may be gathered.\n+ */\n+share: FeedbackShareOptions }\n+/**\n+ * Panic/crash information captured when a Rust panic occurs.\n+ */\n+export type FeedbackPanicDetails = { \n+/**\n+ * Panic message captured by the panic hook.\n+ */\n+message: string; \n+/**\n+ * Source location reported by Rust, when available.\n+ */\n+location: string | null; \n+/**\n+ * Captured backtrace, when available.\n+ */\n+backtrace: string | null; \n+/**\n+ * UTC timestamp when the panic was captured.\n+ */\n+timestamp: string }\n+/**\n+ * Options indicating which feedback artifacts the user allows sharing.\n+ */\n+export type FeedbackShareOptions = { \n+/**\n+ * Include the current widget/store state snapshot.\n+ */\n+currentAppState: boolean; \n+/**\n+ * Include OS, architecture, Nix, and app version details.\n+ */\n+systemInfo: boolean; \n+/**\n+ * Include aggregated usage statistics.\n+ */\n+usageStats: boolean; \n+/**\n+ * Include the active evolution log.\n+ */\n+evolutionLog: boolean; \n+/**\n+ * Include the current diff for changed Nix files.\n+ */\n+changedNixFiles: boolean; \n+/**\n+ * Include selected AI provider/model and usage details.\n+ */\n+aiProviderModelInfo: boolean; \n+/**\n+ * Include the latest build error output, if any.\n+ */\n+buildErrorOutput: boolean; \n+/**\n+ * Include selected `flake.lock` input metadata.\n+ */\n+flakeInputsSnapshot: boolean; \n+/**\n+ * Include recent application logs.\n+ */\n+appLogs: boolean }\n+/**\n+ * System information captured from the runtime.\n+ */\n+export type FeedbackSystemInfo = { \n+/**\n+ * Operating system name, e.g. `macOS`.\n+ */\n+osName: string | null; \n+/**\n+ * Operating system version string.\n+ */\n+osVersion: string | null; \n+/**\n+ * Hardware/system architecture, e.g. `aarch64-darwin`.\n+ */\n+arch: string | null; \n+/**\n+ * Installed Nix version, when detected.\n+ */\n+nixVersion: string | null; \n+/**\n+ * nixmac application version.\n+ */\n+appVersion: string | null }\n+/**\n+ * Aggregated usage stats for feedback.\n+ */\n+export type FeedbackUsageStats = { \n+/**\n+ * Number of evolutions recorded locally.\n+ */\n+totalEvolutions: number | null; \n+/**\n+ * Percentage of evolutions that completed successfully.\n+ */\n+successRate: number | null; \n+/**\n+ * Average number of agent iterations per evolution.\n+ */\n+avgIterations: number | null; \n+/**\n+ * Timestamp when the stats were computed.\n+ */\n+lastComputedAt: string | null; \n+/**\n+ * Additional structured usage fields that are not part of the stable contract.\n+ */\n+extra: JsonValue | null }\n+/**\n+ * HEAD content vs working-tree content for a file, used by the diff tab Monaco DiffEditor.\n+ */\n+export type FileDiffContents = { original: string; modified: string }\n+/**\n+ * Result of a successful `finalize_apply` or `finalize_rollback` command.\n+ */\n+export type FinalizeApplyResult = { \n+/**\n+ * Git status after finalization.\n+ */\n+gitStatus: GitStatus; \n+/**\n+ * Evolve state after finalization.\n+ */\n+evolveState: EvolveState }\n+/**\n+ * Individual file status parsed from diff headers.\n+ */\n+export type GitFileStatus = { \n+/**\n+ * Repository-relative file path.\n+ */\n+path: string; \n+/**\n+ * Parsed status category for this file.\n+ */\n+changeType: ChangeType }\n+/**\n+ * Comprehensive git repository status.\n+ */\n+export type GitStatus = { \n+/**\n+ * Changed files parsed from git status/diff output.\n+ */\n+files: GitFileStatus[]; \n+/**\n+ * Current branch name, when the repository has one checked out.\n+ */\n+branch: string | null; \n+/**\n+ * Unified diff for the current working tree/index changes.\n+ */\n+diff: string; \n+/**\n+ * Total added lines in `diff`.\n+ */\n+additions: number; \n+/**\n+ * Total removed lines in `diff`.\n+ */\n+deletions: number; \n+/**\n+ * Current HEAD commit hash, when available.\n+ */\n+headCommitHash: string | null; \n+/**\n+ * Whether HEAD is known to be clean relative to tracked changes.\n+ */\n+cleanHead: boolean; \n+/**\n+ * Raw change rows associated with the current diff.\n+ */\n+changes: Change[] }\n+/**\n+ * A commit entry combining git log data, tag-derived flags, optional DB metadata, and raw diff changes.\n+ */\n+export type HistoryItem = { \n+/**\n+ * Git commit hash represented by this history row.\n+ */\n+hash: string; \n+/**\n+ * Commit message, if available from git or local metadata.\n+ */\n+message: string | null; \n+/**\n+ * Commit timestamp.\n+ */\n+createdAt: number; \n+/**\n+ * Whether this commit corresponds to the active build record.\n+ */\n+isBuilt: boolean; \n+/**\n+ * Whether this commit is the configured base commit.\n+ */\n+isBase: boolean; \n+/**\n+ * Whether this commit was created outside nixmac.\n+ */\n+isExternal: boolean; \n+/**\n+ * Number of files changed in this commit.\n+ */\n+fileCount: number; \n+/**\n+ * Matching persisted commit row, if one exists.\n+ */\n+commit: Commit | null; \n+/**\n+ * Semantic summaries for this commit's changes.\n+ */\n+changeMap: SemanticChangeMap | null; \n+/**\n+ * Change hashes without summaries.\n+ */\n+unsummarizedHashes: string[]; \n+/**\n+ * Raw changes parsed for this history item.\n+ */\n+rawChanges: Change[]; \n+/**\n+ * Message of the commit this entry originated from, for restore/orphan flows.\n+ */\n+originMessage: string | null; \n+/**\n+ * Hash of the commit this entry originated from, for restore/orphan flows.\n+ */\n+originHash: string | null; \n+/**\n+ * Whether this represents a restored build no longer on the visible branch.\n+ */\n+isOrphanedRestore: boolean; \n+/**\n+ * Whether this history item has been undone by a later restore operation.\n+ */\n+isUndone: boolean }\n+/**\n+ * Current Homebrew package state detected on the machine.\n+ */\n+export type HomebrewState = { \n+/**\n+ * Whether Homebrew is installed and discoverable.\n+ */\n+isInstalled: boolean; \n+/**\n+ * Installed cask names.\n+ */\n+casks: string[]; \n+/**\n+ * Installed formula names.\n+ */\n+brews: string[]; \n+/**\n+ * Configured Homebrew tap names.\n+ */\n+taps: string[]; \n+/**\n+ * Source used to collect the state, when known.\n+ */\n+source: string | null; \n+/**\n+ * Unix timestamp when this state was last collected.\n+ */\n+lastChecked: number }\n+export type JsonValue = null | boolean | number | string | JsonValue[] | Partial<{ [key in string]: JsonValue }>\n+/**\n+ * Result of `nix_check` — reports whether Nix and darwin-rebuild are available.\n+ */\n+export type NixCheckResult = { \n+/**\n+ * Whether Nix is installed.\n+ */\n+installed: boolean; \n+/**\n+ * Installed Nix version string, when available.\n+ */\n+version: string | null; \n+/**\n+ * Whether `darwin-rebuild` is available.\n+ */\n+darwinRebuildAvailable: boolean }\n+/**\n+ * Generic acknowledgement returned by fire-and-forget commands.\n+ */\n+export type OkResult = { \n+/**\n+ * True when the command completed successfully.\n+ */\n+ok: boolean }\n+/**\n+ * Individual permission state.\n+ */\n+export type Permission = { \n+/**\n+ * Stable permission identifier.\n+ */\n+id: string; \n+/**\n+ * Human-readable permission name.\n+ */\n+name: string; \n+/**\n+ * Why nixmac needs this permission.\n+ */\n+description: string; \n+/**\n+ * Whether onboarding requires this permission.\n+ */\n+required: boolean; \n+/**\n+ * Whether the app can trigger the system prompt directly.\n+ */\n+canRequestProgrammatically: boolean; \n+/**\n+ * Current permission status.\n+ */\n+status: PermissionStatus; \n+/**\n+ * Manual instructions for permissions that cannot be requested programmatically.\n+ */\n+instructions?: string | null }\n+/**\n+ * Permission status.\n+ */\n+export type PermissionStatus = \n+/**\n+ * Permission has been granted.\n+ */\n+\"granted\" | \n+/**\n+ * Permission was checked and denied.\n+ */\n+\"denied\" | \n+/**\n+ * Permission has not been resolved yet.\n+ */\n+\"pending\" | \n+/**\n+ * Permission state could not be determined.\n+ */\n+\"unknown\"\n+/**\n+ * All permissions state.\n+ */\n+export type PermissionsState = { \n+/**\n+ * Individual permission states.\n+ */\n+permissions: Permission[]; \n+/**\n+ * True when every required permission is granted.\n+ */\n+allRequiredGranted: boolean; \n+/**\n+ * Unix timestamp when permissions were last checked.\n+ */\n+checkedAt: number | null }\n+/**\n+ * State sent to the preview indicator window.\n+ */\n+export type PreviewIndicatorState = { \n+/**\n+ * Whether the floating preview indicator should be visible.\n+ */\n+visible: boolean; \n+/**\n+ * Summary text displayed in the indicator.\n+ */\n+summary: string | null; \n+/**\n+ * Number of changed files represented by the indicator.\n+ */\n+filesChanged: number; \n+/**\n+ * Added lines displayed in the indicator.\n+ */\n+additions: number | null; \n+/**\n+ * Removed lines displayed in the indicator.\n+ */\n+deletions: number | null; \n+/**\n+ * Whether the indicator should show a loading state.\n+ */\n+isLoading: boolean }\n+/**\n+ * A recommended prompt based on the user's current macOS settings.\n+ */\n+export type RecommendedPrompt = { \n+/**\n+ * Stable prompt identifier.\n+ */\n+id: string; \n+/**\n+ * Prompt text suggested to the user.\n+ */\n+promptText: string }\n+/**\n+ * Result returned from a rollback erase operation.\n+ */\n+export type RollbackResult = { \n+/**\n+ * Git status after rollback preparation.\n+ */\n+gitStatus: GitStatus; \n+/**\n+ * Evolve state after rollback preparation.\n+ */\n+evolveState: EvolveState; \n+/**\n+ * Store path to reactivate as part of the rollback flow.\n+ */\n+rollbackStorePath: string | null; \n+/**\n+ * Changeset id associated with the rollback target.\n+ */\n+rollbackChangesetId: number | null }\n+export type SemanticChangeGroup = { \n+/**\n+ * Shared summary describing the grouped changes.\n+ */\n+summary: ChangeSummary; \n+/**\n+ * Changes that belong to this semantic group.\n+ */\n+changes: ChangeWithSummary[] }\n+export type SemanticChangeMap = { \n+/**\n+ * Groups of changes that share a generated semantic summary.\n+ */\n+groups: SemanticChangeGroup[]; \n+/**\n+ * Changes with their own summaries or no group membership.\n+ */\n+singles: ChangeWithSummary[]; \n+/**\n+ * Hashes for changes that could not be summarized.\n+ */\n+unsummarizedHashes: string[] }\n+/**\n+ * Result returned when the config directory is set (typed or picked).\n+ * `evolve_state` and `hosts` are `Some` only when the directory actually changed.\n+ */\n+export type SetDirResult = { \n+/**\n+ * Selected absolute config directory.\n+ */\n+dir: string; \n+/**\n+ * Fresh evolve state after changing directories, when applicable.\n+ */\n+evolveState: EvolveState | null; \n+/**\n+ * Hosts discovered in the selected flake, when applicable.\n+ */\n+hosts: string[] | null }\n+/**\n+ * A single macOS system default that differs from the factory value.\n+ */\n+export type SystemDefault = { \n+/**\n+ * nix-darwin option path for this macOS default.\n+ */\n+nixKey: string; \n+/**\n+ * Human-readable setting label.\n+ */\n+label: string; \n+/**\n+ * UI grouping category.\n+ */\n+category: string; \n+/**\n+ * Current value read from macOS defaults.\n+ */\n+currentValue: string; \n+/**\n+ * Factory/default value used for comparison.\n+ */\n+defaultValue: string }\n+/**\n+ * Result of a full system defaults scan.\n+ */\n+export type SystemDefaultsScan = { \n+/**\n+ * Defaults that differ from known factory values.\n+ */\n+defaults: SystemDefault[]; \n+/**\n+ * Number of defaults keys scanned.\n+ */\n+totalScanned: number }\n+/**\n+ * User interface preferences (synced to settings.json via tauri-plugin-store).\n+ */\n+export type UiPrefs = { \n+/**\n+ * OpenRouter API key stored in local app preferences.\n+ */\n+openrouterApiKey: string | null; \n+/**\n+ * OpenAI API key stored in local app preferences.\n+ */\n+openaiApiKey: string | null; \n+/**\n+ * Base URL for Ollama-compatible local models.\n+ */\n+ollamaApiBaseUrl: string | null; \n+/**\n+ * Base URL for vLLM-compatible model servers.\n+ */\n+vllmApiBaseUrl: string | null; \n+/**\n+ * API key for vLLM-compatible model servers.\n+ */\n+vllmApiKey: string | null; \n+/**\n+ * Provider used for change summaries.\n+ */\n+summaryProvider: string | null; \n+/**\n+ * Model used for change summaries.\n+ */\n+summaryModel: string | null; \n+/**\n+ * Provider used for AI evolution.\n+ */\n+evolveProvider: string | null; \n+/**\n+ * Model used for AI evolution.\n+ */\n+evolveModel: string | null; \n+/**\n+ * Maximum agent iterations per evolution.\n+ */\n+maxIterations: number | null; \n+/**\n+ * Maximum build attempts per evolution.\n+ */\n+maxBuildAttempts: number | null; \n+/**\n+ * Whether diagnostic feedback may be sent.\n+ */\n+sendDiagnostics: boolean; \n+/**\n+ * Whether to confirm before running build/apply.\n+ */\n+confirmBuild: boolean; \n+/**\n+ * Whether to confirm before clearing changes.\n+ */\n+confirmClear: boolean; \n+/**\n+ * Whether to confirm before rollback.\n+ */\n+confirmRollback: boolean; \n+/**\n+ * Whether to auto-summarize changes when the app regains focus.\n+ */\n+autoSummarizeOnFocus: boolean; \n+/**\n+ * Whether Homebrew state should be scanned on app startup.\n+ */\n+scanHomebrewOnStartup: boolean; \n+/**\n+ * Whether the change view defaults to the Diff tab instead of Summary.\n+ */\n+defaultToDiffTab: boolean; \n+/**\n+ * Whether developer-only UI/actions are enabled.\n+ */\n+developerMode: boolean; \n+/**\n+ * Version pinned by the user, when update pinning is active.\n+ */\n+pinnedVersion: string | null; \n+/**\n+ * Auto-update channel used when no explicit version pin is active.\n+ */\n+updateChannel: UpdateChannel }\n+/**\n+ * Partial update to UI preferences — every field is optional so the caller\n+ * can send only the fields they wish to change.\n+ */\n+export type UiPrefsUpdate = { \n+/**\n+ * OpenRouter API key update.\n+ */\n+openrouterApiKey: string | null; \n+/**\n+ * OpenAI API key update.\n+ */\n+openaiApiKey: string | null; \n+/**\n+ * Evolution provider update.\n+ */\n+evolveProvider: string | null; \n+/**\n+ * Evolution model update.\n+ */\n+evolveModel: string | null; \n+/**\n+ * Summary provider update.\n+ */\n+summaryProvider: string | null; \n+/**\n+ * Summary model update.\n+ */\n+summaryModel: string | null; \n+/**\n+ * Maximum iteration count update.\n+ */\n+maxIterations: number | null; \n+/**\n+ * Maximum build-attempt count update.\n+ */\n+maxBuildAttempts: number | null; \n+/**\n+ * Ollama base URL update.\n+ */\n+ollamaApiBaseUrl: string | null; \n+/**\n+ * vLLM base URL update.\n+ */\n+vllmApiBaseUrl: string | null; \n+/**\n+ * vLLM API key update.\n+ */\n+vllmApiKey: string | null; \n+/**\n+ * Diagnostics sharing preference update.\n+ */\n+sendDiagnostics: boolean | null; \n+/**\n+ * Build confirmation preference update.\n+ */\n+confirmBuild: boolean | null; \n+/**\n+ * Clear confirmation preference update.\n+ */\n+confirmClear: boolean | null; \n+/**\n+ * Rollback confirmation preference update.\n+ */\n+confirmRollback: boolean | null; \n+/**\n+ * Focus auto-summary preference update.\n+ */\n+autoSummarizeOnFocus: boolean | null; \n+/**\n+ * Startup Homebrew scan preference update.\n+ */\n+scanHomebrewOnStartup: boolean | null; \n+/**\n+ * Default-to-diff-tab preference update.\n+ */\n+defaultToDiffTab: boolean | null; \n+/**\n+ * Developer mode preference update.\n+ */\n+developerMode: boolean | null; \n+/**\n+ * `None` -> field not sent; `Some(None)` -> clear the pinned version.\n+ */\n+pinnedVersion?: string | null; \n+/**\n+ * Auto-update channel preference update.\n+ */\n+updateChannel: UpdateChannel | null }\n+/**\n+ * Auto-update channel selected for release-mode builds.\n+ */\n+export type UpdateChannel = \"stable\" | \"develop\"\n+/**\n+ * Lightweight update metadata returned by the channel-aware updater command.\n+ */\n+export type UpdateInfo = { \n+/**\n+ * Channel whose manifest produced this update.\n+ */\n+channel: UpdateChannel; \n+/**\n+ * Version advertised by the channel manifest.\n+ */\n+version: string; \n+/**\n+ * Release notes from the channel manifest, when available.\n+ */\n+notes: string | null }\n+\n+/** tauri-specta globals **/\n+\n+import {\n+\tinvoke as TAURI_INVOKE,\n+\tChannel as TAURI_CHANNEL,\n+} from \"@tauri-apps/api/core\";",
        "path": "apps/native/src/ipc/commands.ts",
        "commit_id": "f8d8a4bdc725a3727c43fbedbd9959389fe05b9a",
        "original_commit_id": "f8d8a4bdc725a3727c43fbedbd9959389fe05b9a",
        "user": {
          "login": "github-code-quality[bot]",
          "id": 223894421,
          "node_id": "BOT_kgDODVhblQ",
          "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
          "gravatar_id": "",
          "url": "https://api.github.com/users/github-code-quality%5Bbot%5D",
          "html_url": "https://github.com/apps/github-code-quality",
          "followers_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/followers",
          "following_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/following{/other_user}",
          "gists_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/gists{/gist_id}",
          "starred_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/subscriptions",
          "organizations_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/orgs",
          "repos_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/repos",
          "events_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/events{/privacy}",
          "received_events_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/received_events",
          "type": "Bot",
          "user_view_type": "public",
          "site_admin": false
        },
        "body": "## Unused variable, import, function or class\n\nUnused import TAURI_CHANNEL.\n\n---\n\nTo fix an unused import without changing functionality, remove only the unused symbol from the import list and keep the used symbols unchanged.</p>\n<p>Best fix here: in <code>apps/native/src/ipc/commands.ts</code>, update the <code>@tauri-apps/api/core</code> import block near lines 1395–1398 to remove <code>Channel as TAURI_CHANNEL</code>, leaving only <code>invoke as TAURI_INVOKE</code>. No additional methods, definitions, or dependencies are needed.",
        "created_at": "2026-05-30T08:05:39Z",
        "updated_at": "2026-05-30T08:05:39Z",
        "html_url": "https://github.com/darkmatter/nixmac/pull/235#discussion_r3328436250",
        "pull_request_url": "https://api.github.com/repos/darkmatter/nixmac/pulls/235",
        "_links": {
          "self": {
            "href": "https://api.github.com/repos/darkmatter/nixmac/pulls/comments/3328436250"
          },
          "html": {
            "href": "https://github.com/darkmatter/nixmac/pull/235#discussion_r3328436250"
          },
          "pull_request": {
            "href": "https://api.github.com/repos/darkmatter/nixmac/pulls/235"
          }
        },
        "reactions": {
          "url": "https://api.github.com/repos/darkmatter/nixmac/pulls/comments/3328436250/reactions",
          "total_count": 0,
          "+1": 0,
          "-1": 0,
          "laugh": 0,
          "hooray": 0,
          "confused": 0,
          "heart": 0,
          "rocket": 0,
          "eyes": 0
        },
        "start_line": null,
        "original_start_line": 1395,
        "start_side": "RIGHT",
        "line": null,
        "original_line": 1398,
        "side": "RIGHT",
        "author_association": "NONE",
        "original_position": 1398,
        "position": 1,
        "subject_type": "line"
      }
    ]
  },
  "updated_at": "2026-05-30T08:10:19Z",
  "repository": {
    "id": 1209959628,
    "node_id": "R_kgDOSB6EzA",
    "name": "nixmac",
    "full_name": "darkmatter/nixmac",
    "private": false,
    "owner": {
      "login": "darkmatter",
      "id": 17834193,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
      "avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/darkmatter",
      "html_url": "https://github.com/darkmatter",
      "followers_url": "https://api.github.com/users/darkmatter/followers",
      "following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
      "gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
      "organizations_url": "https://api.github.com/users/darkmatter/orgs",
      "repos_url": "https://api.github.com/users/darkmatter/repos",
      "events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
      "received_events_url": "https://api.github.com/users/darkmatter/received_events",
      "type": "Organization",
      "user_view_type": "public",
      "site_admin": false
    },
    "html_url": "https://github.com/darkmatter/nixmac",
    "description": "Home manager and nix-darwin that understands plain English",
    "fork": false,
    "url": "https://api.github.com/repos/darkmatter/nixmac",
    "forks_url": "https://api.github.com/repos/darkmatter/nixmac/forks",
    "keys_url": "https://api.github.com/repos/darkmatter/nixmac/keys{/key_id}",
    "collaborators_url": "https://api.github.com/repos/darkmatter/nixmac/collaborators{/collaborator}",
    "teams_url": "https://api.github.com/repos/darkmatter/nixmac/teams",
    "hooks_url": "https://api.github.com/repos/darkmatter/nixmac/hooks",
    "issue_events_url": "https://api.github.com/repos/darkmatter/nixmac/issues/events{/number}",
    "events_url": "https://api.github.com/repos/darkmatter/nixmac/events",
    "assignees_url": "https://api.github.com/repos/darkmatter/nixmac/assignees{/user}",
    "branches_url": "https://api.github.com/repos/darkmatter/nixmac/branches{/branch}",
    "tags_url": "https://api.github.com/repos/darkmatter/nixmac/tags",
    "blobs_url": "https://api.github.com/repos/darkmatter/nixmac/git/blobs{/sha}",
    "git_tags_url": "https://api.github.com/repos/darkmatter/nixmac/git/tags{/sha}",
    "git_refs_url": "https://api.github.com/repos/darkmatter/nixmac/git/refs{/sha}",
    "trees_url": "https://api.github.com/repos/darkmatter/nixmac/git/trees{/sha}",
    "statuses_url": "https://api.github.com/repos/darkmatter/nixmac/statuses/{sha}",
    "languages_url": "https://api.github.com/repos/darkmatter/nixmac/languages",
    "stargazers_url": "https://api.github.com/repos/darkmatter/nixmac/stargazers",
    "contributors_url": "https://api.github.com/repos/darkmatter/nixmac/contributors",
    "subscribers_url": "https://api.github.com/repos/darkmatter/nixmac/subscribers",
    "subscription_url": "https://api.github.com/repos/darkmatter/nixmac/subscription",
    "commits_url": "https://api.github.com/repos/darkmatter/nixmac/commits{/sha}",
    "git_commits_url": "https://api.github.com/repos/darkmatter/nixmac/git/commits{/sha}",
    "comments_url": "https://api.github.com/repos/darkmatter/nixmac/comments{/number}",
    "issue_comment_url": "https://api.github.com/repos/darkmatter/nixmac/issues/comments{/number}",
    "contents_url": "https://api.github.com/repos/darkmatter/nixmac/contents/{+path}",
    "compare_url": "https://api.github.com/repos/darkmatter/nixmac/compare/{base}...{head}",
    "merges_url": "https://api.github.com/repos/darkmatter/nixmac/merges",
    "archive_url": "https://api.github.com/repos/darkmatter/nixmac/{archive_format}{/ref}",
    "downloads_url": "https://api.github.com/repos/darkmatter/nixmac/downloads",
    "issues_url": "https://api.github.com/repos/darkmatter/nixmac/issues{/number}",
    "pulls_url": "https://api.github.com/repos/darkmatter/nixmac/pulls{/number}",
    "milestones_url": "https://api.github.com/repos/darkmatter/nixmac/milestones{/number}",
    "notifications_url": "https://api.github.com/repos/darkmatter/nixmac/notifications{?since,all,participating}",
    "labels_url": "https://api.github.com/repos/darkmatter/nixmac/labels{/name}",
    "releases_url": "https://api.github.com/repos/darkmatter/nixmac/releases{/id}",
    "deployments_url": "https://api.github.com/repos/darkmatter/nixmac/deployments",
    "created_at": "2026-04-14T00:37:13Z",
    "updated_at": "2026-05-29T02:08:22Z",
    "pushed_at": "2026-05-30T08:09:14Z",
    "git_url": "git://github.com/darkmatter/nixmac.git",
    "ssh_url": "git@github.com:darkmatter/nixmac.git",
    "clone_url": "https://github.com/darkmatter/nixmac.git",
    "svn_url": "https://github.com/darkmatter/nixmac",
    "homepage": "https://nixmac.com",
    "size": 678704,
    "stargazers_count": 5,
    "watchers_count": 5,
    "language": "Rust",
    "has_issues": true,
    "has_projects": true,
    "has_downloads": true,
    "has_wiki": true,
    "has_pages": false,
    "has_discussions": false,
    "forks_count": 1,
    "mirror_url": null,
    "archived": false,
    "disabled": false,
    "open_issues_count": 85,
    "license": {
      "key": "mit",
      "name": "MIT License",
      "spdx_id": "MIT",
      "url": "https://api.github.com/licenses/mit",
      "node_id": "MDc6TGljZW5zZTEz"
    },
    "allow_forking": true,
    "is_template": false,
    "web_commit_signoff_required": false,
    "has_pull_requests": true,
    "pull_request_creation_policy": "all",
    "topics": [
      "home-manager",
      "nix",
      "nix-darwin",
      "nix-flake",
      "opencode"
    ],
    "visibility": "public",
    "forks": 1,
    "open_issues": 85,
    "watchers": 5,
    "default_branch": "develop",
    "custom_properties": {}
  },
  "organization": {
    "login": "darkmatter",
    "id": 17834193,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
    "url": "https://api.github.com/orgs/darkmatter",
    "repos_url": "https://api.github.com/orgs/darkmatter/repos",
    "events_url": "https://api.github.com/orgs/darkmatter/events",
    "hooks_url": "https://api.github.com/orgs/darkmatter/hooks",
    "issues_url": "https://api.github.com/orgs/darkmatter/issues",
    "members_url": "https://api.github.com/orgs/darkmatter/members{/member}",
    "public_members_url": "https://api.github.com/orgs/darkmatter/public_members{/member}",
    "avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
    "description": ""
  },
  "enterprise": {
    "id": 469843,
    "slug": "darkmatter",
    "name": "darkmatter",
    "node_id": "E_kgDOAAcrUw",
    "avatar_url": "https://avatars.githubusercontent.com/b/469843?v=4",
    "description": "",
    "website_url": "darkmatter.io",
    "html_url": "https://github.com/enterprises/darkmatter",
    "created_at": "2025-09-07T16:01:00Z",
    "updated_at": "2026-05-09T15:34:55Z"
  },
  "sender": {
    "login": "github-code-quality[bot]",
    "id": 223894421,
    "node_id": "BOT_kgDODVhblQ",
    "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/github-code-quality%5Bbot%5D",
    "html_url": "https://github.com/apps/github-code-quality",
    "followers_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/followers",
    "following_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/following{/other_user}",
    "gists_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/subscriptions",
    "organizations_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/orgs",
    "repos_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/repos",
    "events_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/events{/privacy}",
    "received_events_url": "https://api.github.com/users/github-code-quality%5Bbot%5D/received_events",
    "type": "Bot",
    "user_view_type": "public",
    "site_admin": false
  },
  "installation": {
    "id": 131074261,
    "node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMTMxMDc0MjYx"
  }
}