Darkmatter · github-bot stage: prod
preview@internal.darkmatter
Events received
74796
Ignored
74760
Jobs dispatched
36

Event 40d655f0…

← All events

Event

Delivery
40d655f0-659f-11f1-9330-a86e738d90ec
Event
issue_comment
Action
created
Received
2026-06-11T14:10:10.604Z
Signature
valid
Parsed
yes
Sender
amacbride
Repo
darkmatter/nixmac
Status
ignored — missing_command

Headers

{
  "accept": "*/*",
  "accept-encoding": "gzip, br",
  "cf-connecting-ip": "140.82.115.42",
  "cf-ipcountry": "US",
  "cf-ray": "a0a132a03fda5d04",
  "cf-visitor": "{\"scheme\":\"https\"}",
  "connection": "Keep-Alive",
  "content-length": "13820",
  "content-type": "application/json",
  "host": "github-bot.darkmatter.io",
  "user-agent": "GitHub-Hookshot/43c13bc",
  "x-forwarded-proto": "https",
  "x-github-delivery": "40d655f0-659f-11f1-9330-a86e738d90ec",
  "x-github-event": "issue_comment",
  "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.42"
}

Payload

{
  "action": "created",
  "issue": {
    "url": "https://api.github.com/repos/darkmatter/nixmac/issues/395",
    "repository_url": "https://api.github.com/repos/darkmatter/nixmac",
    "labels_url": "https://api.github.com/repos/darkmatter/nixmac/issues/395/labels{/name}",
    "comments_url": "https://api.github.com/repos/darkmatter/nixmac/issues/395/comments",
    "events_url": "https://api.github.com/repos/darkmatter/nixmac/issues/395/events",
    "html_url": "https://github.com/darkmatter/nixmac/pull/395",
    "id": 4641030423,
    "node_id": "PR_kwDOSB6EzM7lVrge",
    "number": 395,
    "title": "fix(evolve): resolve nested attrset leaves in nix_file_editor add()",
    "user": {
      "login": "amacbride",
      "id": 1263544,
      "node_id": "MDQ6VXNlcjEyNjM1NDQ=",
      "avatar_url": "https://avatars.githubusercontent.com/u/1263544?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/amacbride",
      "html_url": "https://github.com/amacbride",
      "followers_url": "https://api.github.com/users/amacbride/followers",
      "following_url": "https://api.github.com/users/amacbride/following{/other_user}",
      "gists_url": "https://api.github.com/users/amacbride/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/amacbride/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/amacbride/subscriptions",
      "organizations_url": "https://api.github.com/users/amacbride/orgs",
      "repos_url": "https://api.github.com/users/amacbride/repos",
      "events_url": "https://api.github.com/users/amacbride/events{/privacy}",
      "received_events_url": "https://api.github.com/users/amacbride/received_events",
      "type": "User",
      "user_view_type": "public",
      "site_admin": false
    },
    "labels": [],
    "state": "closed",
    "locked": false,
    "assignees": [],
    "milestone": null,
    "comments": 3,
    "created_at": "2026-06-11T13:42:50Z",
    "updated_at": "2026-06-11T14:10:08Z",
    "closed_at": "2026-06-11T14:09:27Z",
    "assignee": null,
    "author_association": "CONTRIBUTOR",
    "issue_field_values": [],
    "type": null,
    "active_lock_reason": null,
    "draft": false,
    "pull_request": {
      "url": "https://api.github.com/repos/darkmatter/nixmac/pulls/395",
      "html_url": "https://github.com/darkmatter/nixmac/pull/395",
      "diff_url": "https://github.com/darkmatter/nixmac/pull/395.diff",
      "patch_url": "https://github.com/darkmatter/nixmac/pull/395.patch",
      "merged_at": null
    },
    "body": "## Summary\n\nFollow-up to #336. The non-list duplicate guard added there used `find_assignment_value_range`, which matches only a **flat dotted LHS** (`a.b.c = …`). When the attr is instead defined **nested inside an attrset literal**:\n\n```nix\nsystem.defaults.dock = { magnification = 1; mru-spaces = 0; };\n```\n\nthe guard couldn't see `system.defaults.dock.mru-spaces`, so `add()` fell through and inserted a second `system.defaults.dock.mru-spaces = [ … ];` — two assignments to the same attribute, which is invalid Nix. This is the case Scott hit in real configs.\n\nThis PR adds a structural resolver (`find_attrpath_value_node`) that walks the parsed AST, descending through attrset literals as well as flat dotted assignments, and returns the leaf's value node regardless of how it was written. `add()` now:\n- **appends** when the leaf resolves to a list (including lists nested deeper than `find_list_for_attrpath` reconstructs),\n- **errors** when it resolves to a non-list (flat or nested),\n- **inserts** only when the leaf is genuinely absent.\n\n**Known limitation (documented in code):** a quoted key containing dots, e.g. `NSGlobalDomain.\"com.apple.sound.beep.feedback\"`, is one AST segment but splits into several here, so such paths still won't resolve — consistent with the dot-splitting used elsewhere in this module. Worth a follow-up if it bites.\n\n## Test Plan\n\n- [ ] No test plan needed\n\nReproduced the duplication on the unfixed code first (the leaf appeared twice in `add()`'s output), then confirmed the fix. Three regression tests added:\n- `add_refuses_to_duplicate_nested_attrset_leaf` — nested non-list leaf errors instead of duplicating\n- `add_inserts_new_leaf_under_existing_attrset` — a brand-new leaf still inserts (no false positive from a sibling attrset at a prefix)\n- `add_appends_to_list_nested_in_attrset` — a list nested two levels deep is appended, not duplicated\n\n```\ncargo test evolve::      # 178 passed / 0 failed\ncargo clippy --tests     # clean for nix_file_editor.rs\n```\n\n## Docs\n\n- [ ] Docs updated (companion PR in darkmatter/nixmac-web: #\\_\\_\\_)\n- [x] No docs update needed\n\nInternal correctness fix to the evolve `edit_nix_file` tool — no user-facing behavior change.\n\n---\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n",
    "reactions": {
      "url": "https://api.github.com/repos/darkmatter/nixmac/issues/395/reactions",
      "total_count": 0,
      "+1": 0,
      "-1": 0,
      "laugh": 0,
      "hooray": 0,
      "confused": 0,
      "heart": 0,
      "rocket": 0,
      "eyes": 0
    },
    "timeline_url": "https://api.github.com/repos/darkmatter/nixmac/issues/395/timeline",
    "performed_via_github_app": null,
    "state_reason": null
  },
  "comment": {
    "url": "https://api.github.com/repos/darkmatter/nixmac/issues/comments/4681457028",
    "html_url": "https://github.com/darkmatter/nixmac/pull/395#issuecomment-4681457028",
    "issue_url": "https://api.github.com/repos/darkmatter/nixmac/issues/395",
    "id": 4681457028,
    "node_id": "IC_kwDOSB6EzM8AAAABFwldhA",
    "user": {
      "login": "amacbride",
      "id": 1263544,
      "node_id": "MDQ6VXNlcjEyNjM1NDQ=",
      "avatar_url": "https://avatars.githubusercontent.com/u/1263544?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/amacbride",
      "html_url": "https://github.com/amacbride",
      "followers_url": "https://api.github.com/users/amacbride/followers",
      "following_url": "https://api.github.com/users/amacbride/following{/other_user}",
      "gists_url": "https://api.github.com/users/amacbride/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/amacbride/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/amacbride/subscriptions",
      "organizations_url": "https://api.github.com/users/amacbride/orgs",
      "repos_url": "https://api.github.com/users/amacbride/repos",
      "events_url": "https://api.github.com/users/amacbride/events{/privacy}",
      "received_events_url": "https://api.github.com/users/amacbride/received_events",
      "type": "User",
      "user_view_type": "public",
      "site_admin": false
    },
    "created_at": "2026-06-11T14:10:08Z",
    "updated_at": "2026-06-11T14:10:08Z",
    "body": "Superseded by #396 — branch renamed to `andrew-dev` (the rename closed this one instead of retargeting). Same commit, same change.",
    "author_association": "MEMBER",
    "reactions": {
      "url": "https://api.github.com/repos/darkmatter/nixmac/issues/comments/4681457028/reactions",
      "total_count": 0,
      "+1": 0,
      "-1": 0,
      "laugh": 0,
      "hooray": 0,
      "confused": 0,
      "heart": 0,
      "rocket": 0,
      "eyes": 0
    },
    "performed_via_github_app": null
  },
  "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-06-10T15:32:59Z",
    "pushed_at": "2026-06-11T14:09:26Z",
    "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": 681533,
    "stargazers_count": 5,
    "watchers_count": 5,
    "language": "Rust",
    "has_issues": true,
    "has_projects": false,
    "has_downloads": true,
    "has_wiki": false,
    "has_pages": true,
    "has_discussions": false,
    "forks_count": 1,
    "mirror_url": null,
    "archived": false,
    "disabled": false,
    "open_issues_count": 90,
    "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": 90,
    "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-06-07T16:53:26Z"
  },
  "sender": {
    "login": "amacbride",
    "id": 1263544,
    "node_id": "MDQ6VXNlcjEyNjM1NDQ=",
    "avatar_url": "https://avatars.githubusercontent.com/u/1263544?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/amacbride",
    "html_url": "https://github.com/amacbride",
    "followers_url": "https://api.github.com/users/amacbride/followers",
    "following_url": "https://api.github.com/users/amacbride/following{/other_user}",
    "gists_url": "https://api.github.com/users/amacbride/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/amacbride/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/amacbride/subscriptions",
    "organizations_url": "https://api.github.com/users/amacbride/orgs",
    "repos_url": "https://api.github.com/users/amacbride/repos",
    "events_url": "https://api.github.com/users/amacbride/events{/privacy}",
    "received_events_url": "https://api.github.com/users/amacbride/received_events",
    "type": "User",
    "user_view_type": "public",
    "site_admin": false
  },
  "installation": {
    "id": 131074261,
    "node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMTMxMDc0MjYx"
  }
}