Payload
{
"ref": "refs/heads/06-08-scott-whole-diff-prompt-eng",
"before": "ad175b7dcea7ac18ff8372d3a8156f965c623b70",
"after": "22007f3e00bc7d048c769e9cb1d4121d27b39c48",
"repository": {
"id": 1209959628,
"node_id": "R_kgDOSB6EzA",
"name": "nixmac",
"full_name": "darkmatter/nixmac",
"private": false,
"owner": {
"name": "darkmatter",
"email": "hello@dm.sh",
"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": 1776127033,
"updated_at": "2026-06-08T20:47:22Z",
"pushed_at": 1780951675,
"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": 680797,
"stargazers_count": 5,
"watchers_count": 5,
"language": "Rust",
"has_issues": true,
"has_projects": false,
"has_downloads": true,
"has_wiki": false,
"has_pages": false,
"has_discussions": false,
"forks_count": 1,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 75,
"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": 75,
"watchers": 5,
"default_branch": "develop",
"stargazers": 5,
"master_branch": "develop",
"organization": "darkmatter",
"custom_properties": {}
},
"pusher": {
"name": "czxtm",
"email": "1325802+czxtm@users.noreply.github.com"
},
"forced": false,
"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": "czxtm",
"id": 1325802,
"node_id": "MDQ6VXNlcjEzMjU4MDI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1325802?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/czxtm",
"html_url": "https://github.com/czxtm",
"followers_url": "https://api.github.com/users/czxtm/followers",
"following_url": "https://api.github.com/users/czxtm/following{/other_user}",
"gists_url": "https://api.github.com/users/czxtm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/czxtm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/czxtm/subscriptions",
"organizations_url": "https://api.github.com/users/czxtm/orgs",
"repos_url": "https://api.github.com/users/czxtm/repos",
"events_url": "https://api.github.com/users/czxtm/events{/privacy}",
"received_events_url": "https://api.github.com/users/czxtm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"installation": {
"id": 131074261,
"node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMTMxMDc0MjYx"
},
"created": false,
"deleted": false,
"base_ref": null,
"compare": "https://github.com/darkmatter/nixmac/compare/ad175b7dcea7...22007f3e00bc",
"commits": [
{
"id": "92786de3f7c5e0d018b0fc0802426e3326a10557",
"tree_id": "afb564a2dc50f6f6c5c97e38f720f4c74b2ce7d4",
"distinct": false,
"message": "fix(evolve): four correctness fixes in the evolve loop (#336)\n\n* fix(evolve): make truncate_for_log UTF-8 safe\n\ntruncate_for_log sliced the string with `&s[..max_len]`, a byte index.\nWhen a multi-byte UTF-8 char (accented letters, emoji, arrows — common in\nagent thoughts, which are truncated at 200 for logging) straddled that\nindex, the slice panicked with \"byte index N is not a char boundary\".\n\nTruncate on a char boundary instead, treating max_len as a character\nbudget. Adds tests covering the short-string, newline-collapse, ASCII\ntruncation, and the multi-byte boundary case that previously panicked.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n* fix(evolve): don't duplicate a non-list attr in edit_nix_file add()\n\nWhen add() was given an attrpath that already existed as a non-list\nassignment (e.g. `programs.git = { enable = true; }`), find_list_for_attrpath\nreturned None and add() fell through to inserting a brand-new\n`programs.git = [ ... ];`. The file then had two assignments to the same\nattribute — invalid, duplicated Nix that a later build would reject.\n\nDetect the pre-existing non-list assignment and return a clear error\ninstead of corrupting the file. Adds a test for the duplicate case.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n* fix(evolve): handle ${ } antiquotation in validate_nix_syntax\n\nThe structural validator scanned strings with a flat in_string flag and\nnever recognized `${ ... }` antiquotation. When an interpolation contained\na nested string with a `{`/`}` — e.g. `\"${if a then \"}\" else \"y\"}\"` — the\ninner quotes toggled the flag and the braces were then counted in the\nwrong context, so the validator rejected valid Nix and blocked legitimate\nagent edits.\n\nRewrite the scanner around a single context stack: `${` inside a string\npushes a code frame and its matching `}` pops back to the string, so\ninterpolations can hold nested strings, braces, and further\ninterpolations. Existing behaviour (balanced braces/brackets/parens,\ncomments, indented-string escapes, unclosed detection) and all error\nmessages are preserved; only the antiquotation handling changes.\n\nAdds tests for nested-string and indented-string interpolation (accept)\nand an unbalanced interpolation (still rejected).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n* fix(evolve): reset build_verified on edit and on failed build_check\n\nbuild_verified was set true on the first passing build_check and never\ncleared. Two ways this let `done` complete an unbuildable config:\n\n 1. build_check passes -> the agent edits again -> done accepted, even\n though the latest edit was never built.\n 2. build_check passes -> a later build_check fails -> done accepted as\n \"complete\" despite the currently-failing build.\n\nClear build_verified whenever an editing tool runs (the verified state no\nlonger matches the files) and whenever a build_check fails. The done gate\nthen correctly requires a fresh, passing build_check.\n\nTests drive process_tool_result directly (a free function): a failing\nbuild clears verification, and done after pass-then-fail does not mark the\nevolution Generated.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
"timestamp": "2026-06-08T06:37:06Z",
"url": "https://github.com/darkmatter/nixmac/commit/92786de3f7c5e0d018b0fc0802426e3326a10557",
"author": {
"name": "Andrew MacBride",
"email": "amacbride@users.noreply.github.com",
"date": "2026-06-08T02:37:06-04:00",
"username": "amacbride"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T06:37:06Z",
"username": "web-flow"
},
"added": [],
"removed": [],
"modified": [
"apps/native/src-tauri/src/evolve/edit_nix_file.rs",
"apps/native/src-tauri/src/evolve/file_ops.rs",
"apps/native/src-tauri/src/evolve/mod.rs",
"apps/native/src-tauri/src/evolve/tools.rs"
]
},
{
"id": "92781ce7891f3fe8c06a07236ea680a8f66c8d37",
"tree_id": "a9a7c98557bb7a6882152d7dd89804dfcc51636d",
"distinct": false,
"message": "fix storybook workflow",
"timestamp": "2026-06-08T04:53:38-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/92781ce7891f3fe8c06a07236ea680a8f66c8d37",
"author": {
"name": "cooper",
"email": "1325802+czxtm@users.noreply.github.com",
"date": "2026-06-08T04:53:38-07:00",
"username": "czxtm"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T04:53:38-07:00",
"username": "web-flow"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml"
]
},
{
"id": "0a7a926d2c20f4b4e8aaf754b6c7317a30b79e62",
"tree_id": "3d06074836181f75b3a5d33e7626b8a159f46b34",
"distinct": false,
"message": "Telemetry (#344)\n\n* feat: add analytics, unify telemetry\n\n* refactor(telemetry): remove legacy sentry in favor of OTEL pipeline\n\nJS: delete src/lib/sentry/, replace Sentry.ErrorBoundary with\nAppErrorBoundary using telemetry.captureError(), remove @sentry/react\ndep, strip debug sentry event from feedback-dialog and ipc/api.\n\nRust: remove sentry + tauri-plugin-sentry crates, replace all\nsentry::capture_message/with_scope with tracing::error! structured\nfields, delete SentryClient trait/mock/helpers, remove debug_sentry_event\ncommand and DebugSentryResult type, drop sentry:default capability.\n\n* fix(telemetry): correct Sentry OTLP endpoint path and auth header\n\nURL path was /api/{id}/v1/traces — Sentry expects\n/api/{id}/integration/otlp/v1/traces/. Auth header was bare\nsentry_key — Sentry expects X-Sentry-Auth: sentry sentry_key=<key>.\nAlso remove o<id> host validation that broke self-hosted Sentry,\nand preserve DSN scheme for http-only instances.\n\n* address review comments\n\n* fix(ci): install sops to user-local bin instead of /usr/local/bin\n\nsudo install to /usr/local/bin fails on self-hosted runners that\nrequire password auth or have restricted /usr/local. Install to\n$HOME/.local/bin and add to GITHUB_PATH instead.\n\n* ci: add composite setup action with Determinate Nix\n\nReplace per-workflow dep setup (bun, node, sops, age, rust, nix)\nwith a single composite action that:\n- Installs Determinate Nix (skips if already present)\n- Enters devenv shell via nix develop to expose all tools\n (bun, node, sops, age, git, etc.) from nix packages\n- Optionally installs rust toolchain + cache\n- Optionally runs bun install\n\nRemoves 139 lines of duplicated setup across 8 workflows.\n\n* fix(ci): move checkout out of composite action\n\nComposite actions need the repo on disk before they can be\nresolved by GitHub Actions. Self-hosted runners failed with\n'Can't find action.yml' because the checkout hadn't happened yet.\n\nMove checkout back to each workflow as an explicit step before\nthe composite action. Remove skip-checkout, fetch-depth, and\npersist-credentials inputs from the composite action since\nthose are now handled by the explicit checkout step.\n\n* fix(ci): use devenv CLI instead of nix develop\n\nThe flake.nix does not expose devShells.default — the shell is\nmanaged by devenv. Replace nix develop --impure with devenv shell\nto correctly resolve bun/node/sops/age/rust on PATH.\n\n* fix(ci): use devenv ci instead of devenv shell for PATH\n\ndevenv shell builds the full interactive shell which is extremely\nslow on CI (15+ min). devenv ci is the CI-optimized command that\njust builds the profile. After it completes, read .devenv/profile\nsymlink to get the nix store path and add its bin/ to GITHUB_PATH.\n\n* fix(ci): add Cachix + GHA nix store cache, fix devenv ci\n\nThree changes:\n1. Replace flakehub-cache-action (requires paid FlakeHub + OIDC) with\n cachix/cachix-action pulling from devenv.cachix.org (free, no auth)\n plus nix-community/cache-nix-action for GitHub Actions cache-based\n nix store persistence.\n2. Replace `devenv ci` (runs test suite) with `devenv shell echo ready`\n which just builds the profile without running tests.\n3. Cache key based on devenv.lock + devenv.nix + devenv.yaml so cache\n invalidates when the environment changes.\n\n* fix(ci): add gc-max-store-size to cache-nix-action\n\nWithout GC limits, the nix store was 11GB+ which exceeds the\n10GB GitHub Actions cache limit. Set gc-max-store-size to 7.5GB\nfor both Linux and macOS to run garbage collection before saving.\n\n* fix(ci): continue-on-error for cache-nix-action\n\nSelf-hosted Linux runners have no-new-privileges set, preventing\nsudo chown that cache-nix-action uses internally. The cache is\noptional (Cachix pull still works), so don't fail the job when\nthe GHA nix store cache can't save/restore.\n\n* fix(ci): remove cache-nix-action, rely on Cachix pull only\n\ncache-nix-action uses sudo internally which fails on self-hosted\nLinux runners (no_new_privileges). Composite actions don't support\ncontinue-on-error. Self-hosted runners have persistent /nix stores\nand don't need the GHA cache. Cachix pull from devenv.cachix.org\nprovides pre-built binaries on all runner types without sudo.\n\n* fix(ci): repair storybook and macOS Rust checks\n\n* fix(ci): provide gh from devenv\n\n* fix(ci): persist devenv linker env\n\n* fix(ci): expose Playwright runtime libraries\n\n* fix(ci): add libudev for Playwright\n\n* fix(ci): stabilize Storybook snapshots\n\n* fix(ci): force Playwright Chromium channel\n\n* fix(ci): use default Playwright browser\n\n* fix(ci): configure darkmatter Cachix cache\n\n* fix(ci): use self-hosted macOS runners\n\n---------\n\nCo-authored-by: darkmatter[bot] <283346107+darkmatter[bot]@users.noreply.github.com>",
"timestamp": "2026-06-08T10:56:51-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/0a7a926d2c20f4b4e8aaf754b6c7317a30b79e62",
"author": {
"name": "cooper",
"email": "1325802+czxtm@users.noreply.github.com",
"date": "2026-06-08T10:56:51-07:00",
"username": "czxtm"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T10:56:51-07:00",
"username": "web-flow"
},
"added": [
".github/actions/setup/action.yml",
"apps/native/src-tauri/src/telemetry/init.rs",
"apps/native/src-tauri/src/telemetry/ipc.rs",
"apps/native/src-tauri/src/telemetry/mod.rs",
"apps/native/src-tauri/src/telemetry/scrub.rs",
"apps/native/src/components/nixmac-mascot/__snapshots__/nixmac-mascot.stories.tsx.snap",
"apps/native/src/components/widget/layout/AppErrorBoundary.tsx",
"apps/native/src/components/widget/steps/__snapshots__/evolve-step.preview.stories.tsx.snap",
"apps/native/src/lib/telemetry/context.tsx",
"apps/native/src/lib/telemetry/forwarding-processor.ts",
"apps/native/src/lib/telemetry/init.ts",
"apps/native/src/lib/telemetry/instance.ts",
"apps/native/src/lib/telemetry/noop.ts",
"apps/native/src/lib/telemetry/provider.ts",
"apps/native/src/lib/telemetry/sanitize.ts",
"apps/native/src/lib/telemetry/types.ts"
],
"removed": [
"apps/native/src/lib/sentry/init.ts",
"apps/native/src/lib/sentry/sanitize.test.ts",
"apps/native/src/lib/sentry/sanitize.ts"
],
"modified": [
".github/workflows/build.yaml",
".github/workflows/computer-use-e2e.yml",
".github/workflows/danger.yml",
".github/workflows/e2e.yml",
".github/workflows/evaluate.yml",
".github/workflows/nightly-release.yaml",
".github/workflows/peekaboo-e2e.yml",
".github/workflows/storybook.yaml",
"Cargo.lock",
"apps/native/.storybook/main.ts",
"apps/native/.storybook/vitest.setup.ts",
"apps/native/package.json",
"apps/native/src-tauri/Cargo.toml",
"apps/native/src-tauri/capabilities/default.json",
"apps/native/src-tauri/examples/specta_gen_ts.rs",
"apps/native/src-tauri/src/commands/debug.rs",
"apps/native/src-tauri/src/commands/helpers.rs",
"apps/native/src-tauri/src/evolve/mod.rs",
"apps/native/src-tauri/src/main.rs",
"apps/native/src-tauri/src/panic_handler.rs",
"apps/native/src-tauri/src/shared_types/core.rs",
"apps/native/src-tauri/src/summarize/model_calls.rs",
"apps/native/src/App.tsx",
"apps/native/src/components/nix-editor/__snapshots__/nix-editor.stories.tsx.snap",
"apps/native/src/components/nix-editor/nix-editor.stories.tsx",
"apps/native/src/components/nix-editor/use-nix-editor.ts",
"apps/native/src/components/ui/__snapshots__/tooltip.stories.tsx.snap",
"apps/native/src/components/widget/__snapshots__/widget.stories.tsx.snap",
"apps/native/src/components/widget/feedback/feedback-dialog.tsx",
"apps/native/src/components/widget/overlays/__snapshots__/rebuild-overlay-panel.stories.tsx.snap",
"apps/native/src/components/widget/settings/__snapshots__/developer-tab.stories.tsx.snap",
"apps/native/src/components/widget/settings/general-tab.tsx",
"apps/native/src/components/widget/summaries/__snapshots__/collapsible-diff.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/diff-section.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/diff-view.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/file-view.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/full-file-diff-editor.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/hunk-pill.stories.tsx.snap",
"apps/native/src/components/widget/summaries/summary-or-diff.tsx",
"apps/native/src/e2e/dom-snapshots.ts",
"apps/native/src/hooks/use-evolve.ts",
"apps/native/src/hooks/use-rollback.ts",
"apps/native/src/ipc/api.ts",
"apps/native/src/main.tsx",
"apps/native/vitest.config.ts",
"bun.lock",
"bun.nix",
"devenv.nix",
"nix/dev.nix"
]
},
{
"id": "c830cad2bd793603924631b573e81fe50dc3496f",
"tree_id": "4457aa1dd58008ae3858e7ec931615648006ac2a",
"distinct": false,
"message": "feat: onboarding repo import + nixmac account sync (client + HMAC auth) (#333)\n\n* feat: onboarding repo import + nixmac account sync (client + HMAC auth)\n\nOnboarding repo import:\n- New \"Import\" tab in the setup directory picker that clones a GitHub\n reference (e.g. czxtm/darwin, with optional #branch) via libgit2 or\n extracts a local .zip into the chosen config dir (default ~/.darwin).\n- Backend: bootstrap::import (ref parsing, clone, zip-slip-safe extraction\n with GitHub wrapper-dir stripping) + config_import_github / config_import_zip\n / config_pick_zip commands.\n\nnixmac account + non-GitHub sync (client side):\n- HMAC-SHA256 request signing (sync::signing) with a per-device shared\n secret kept in the OS keychain; account metadata + server URL in the\n settings store. The secret is never re-sent after sign-in.\n- Typed sync client (sync::client) for login/status/push/pull against a\n configurable server, glued together in sync::mod.\n- Commands: account_status/sign_in/sign_out/set_server_url and\n sync_status/push/pull, exposed via a new Account settings tab.\n\nShared AuthAccount/AuthStatus/SyncRemoteStatus/SyncResult contract types\nregistered with Specta and reflected in ipc/types.ts. Unit tests cover\nsigning vectors, ref parsing, and zip extraction; frontend tests cover the\nimport flow.\n\n* test: cover SyncClient base-url/path joining\n\n* fix: address Copilot review on PR #333\n\n- account-tab: sync the server-URL input to the backend-normalized value\n returned by setServerUrl so the UI matches what sync actually uses.\n- config import: strip a lone .DS_Store from the target dir so libgit2\n clone (which requires a truly empty destination) succeeds for folders\n that look empty in Finder. Adds an is_importable_target test.\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>\nCo-authored-by: darkmatter[bot] <283346107+darkmatter[bot]@users.noreply.github.com>",
"timestamp": "2026-06-08T11:25:03-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/c830cad2bd793603924631b573e81fe50dc3496f",
"author": {
"name": "cooper",
"email": "1325802+czxtm@users.noreply.github.com",
"date": "2026-06-08T11:25:03-07:00",
"username": "czxtm"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T11:25:03-07:00",
"username": "web-flow"
},
"added": [
"apps/native/src-tauri/src/bootstrap/import.rs",
"apps/native/src-tauri/src/commands/account.rs",
"apps/native/src-tauri/src/shared_types/account.rs",
"apps/native/src-tauri/src/sync/client.rs",
"apps/native/src-tauri/src/sync/mod.rs",
"apps/native/src-tauri/src/sync/signing.rs",
"apps/native/src/components/widget/controls/repo-import.test.tsx",
"apps/native/src/components/widget/controls/repo-import.tsx",
"apps/native/src/components/widget/settings/account-tab.tsx"
],
"removed": [],
"modified": [
"Cargo.lock",
"apps/native/src-tauri/Cargo.toml",
"apps/native/src-tauri/examples/specta_gen_ts.rs",
"apps/native/src-tauri/src/bootstrap/mod.rs",
"apps/native/src-tauri/src/commands/config.rs",
"apps/native/src-tauri/src/commands/mod.rs",
"apps/native/src-tauri/src/main.rs",
"apps/native/src-tauri/src/shared_types.rs",
"apps/native/src-tauri/src/storage/store.rs",
"apps/native/src/components/widget/controls/directory-picker.tsx",
"apps/native/src/components/widget/settings/settings-dialog.tsx",
"apps/native/src/hooks/use-darwin-config.ts",
"apps/native/src/ipc/api.ts",
"apps/native/src/ipc/types.ts",
"apps/native/src/stores/ui-state.ts",
"apps/native/src/stores/widget-store.impl.ts"
]
},
{
"id": "623479e40624ff3d1f288d3c7d714fe6c2954475",
"tree_id": "46a54bbcd8e1d252607bc2b2275b97990191252f",
"distinct": false,
"message": "pin playwright version to fix CI",
"timestamp": "2026-06-08T11:56:46-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/623479e40624ff3d1f288d3c7d714fe6c2954475",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T11:56:46-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T11:56:46-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
"apps/native/package.json",
"bun.lock",
"bun.nix"
]
},
{
"id": "e0d2c537791221b153ded6dee66fb9119d3e21dd",
"tree_id": "485cf431b668b86458232c06a6e2d42d450645cf",
"distinct": false,
"message": "fix CI",
"timestamp": "2026-06-08T12:08:01-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/e0d2c537791221b153ded6dee66fb9119d3e21dd",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:08:01-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:08:01-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml",
"apps/native/src/components/widget/__snapshots__/widget.stories.tsx.snap"
]
},
{
"id": "049f43e009e8ef1415aa59b203ab9881b36ad6cd",
"tree_id": "ae6b6e69377263e2d66eacdd5584b15162a92922",
"distinct": false,
"message": "fix(ci): harden storybook chromium launch",
"timestamp": "2026-06-08T12:23:41-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/049f43e009e8ef1415aa59b203ab9881b36ad6cd",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:23:41-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:23:41-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml",
"apps/native/vitest.config.ts"
]
},
{
"id": "f0c72416042e435ed944ca34db883d6f08506773",
"tree_id": "d88c1887fdd5ef2f2de4b34ab31c73fef42a09b0",
"distinct": false,
"message": "fix(ci): isolate devenv profile per job",
"timestamp": "2026-06-08T12:35:26-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/f0c72416042e435ed944ca34db883d6f08506773",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:35:26-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:35:26-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/actions/setup/action.yml",
".github/workflows/storybook.yaml"
]
},
{
"id": "964e79365133612861c2bfb1d16b957910480b57",
"tree_id": "79934d692ba47b2c369f9587401e1148cbef75ac",
"distinct": false,
"message": "fix(ci): disable chromium gpu sandbox",
"timestamp": "2026-06-08T12:47:00-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/964e79365133612861c2bfb1d16b957910480b57",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:47:00-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:47:00-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml",
"apps/native/vitest.config.ts"
]
},
{
"id": "d3cdeb3d4c5b01aa79fe9ebe8d53bae4e54bfac1",
"tree_id": "a73ecb5cb0d1a1bcc76767228965bfebcdfe6c9e",
"distinct": false,
"message": "fix(ci): launch chromium with --no-zygote on hardened runners",
"timestamp": "2026-06-08T12:54:08-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/d3cdeb3d4c5b01aa79fe9ebe8d53bae4e54bfac1",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:54:08-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T12:54:08-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml",
"apps/native/vitest.config.ts"
]
},
{
"id": "29773a9929b12abe7bff2edf98f5e6afd01d8f28",
"tree_id": "fcc309c0f13d2d6e4905fe44161ef1b1b81877b6",
"distinct": false,
"message": "fix(ci): combine chromium sandbox flags",
"timestamp": "2026-06-08T13:03:20-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/29773a9929b12abe7bff2edf98f5e6afd01d8f28",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T13:03:20-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T13:03:20-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml",
"apps/native/vitest.config.ts"
]
},
{
"id": "62ce8f26bd47f1fb0b3796a50b9b4b0519b63253",
"tree_id": "953261db472c5422d296a8f41dc6934c7e2ff3e2",
"distinct": false,
"message": "fix(ci): use managed chromium for storybook tests",
"timestamp": "2026-06-08T13:26:47-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/62ce8f26bd47f1fb0b3796a50b9b4b0519b63253",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T13:26:47-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-06-08T13:26:47-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".github/workflows/storybook.yaml",
"apps/native/vitest.config.ts"
]
},
{
"id": "aa716489701664be031dd59aadd8448b6cb8823b",
"tree_id": "5097ed9e98db057963078461674ff6554d3fc620",
"distinct": false,
"message": "refactor: use the new `whole_diff` summarization at the end of the evolution lifecycle (#335)\n\n* scott-use-whole-diff-summarize-in-lifecycle\n\n* fix: AI code review comments\n\n---------\n\nCo-authored-by: darkmatter[bot] <283346107+darkmatter[bot]@users.noreply.github.com>\nCo-authored-by: cooper <1325802+czxtm@users.noreply.github.com>",
"timestamp": "2026-06-08T13:44:42-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/aa716489701664be031dd59aadd8448b6cb8823b",
"author": {
"name": "Scott McMaster",
"email": "scott@smcmaster.com",
"date": "2026-06-09T04:44:42+08:00",
"username": "scottmcmaster"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T13:44:42-07:00",
"username": "web-flow"
},
"added": [],
"removed": [],
"modified": [
"apps/native/src-tauri/src/commands/summarize.rs",
"apps/native/src-tauri/src/evolve/lifecycle.rs",
"apps/native/src-tauri/src/git/query.rs",
"apps/native/src-tauri/src/summarize/mod.rs",
"apps/native/src-tauri/src/summarize/pipelines/commit_message.rs",
"apps/native/src-tauri/src/summarize/pipelines/history.rs",
"apps/native/src-tauri/src/summarize/pipelines/whole_diff.rs"
]
},
{
"id": "22007f3e00bc7d048c769e9cb1d4121d27b39c48",
"tree_id": "1621c7bbd8f275195a0f17f2c4af5f1cde4d9058",
"distinct": true,
"message": "Merge branch 'develop' into 06-08-scott-whole-diff-prompt-eng",
"timestamp": "2026-06-08T13:47:55-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/22007f3e00bc7d048c769e9cb1d4121d27b39c48",
"author": {
"name": "cooper",
"email": "1325802+czxtm@users.noreply.github.com",
"date": "2026-06-08T13:47:55-07:00",
"username": "czxtm"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T13:47:55-07:00",
"username": "web-flow"
},
"added": [
".github/actions/setup/action.yml",
"apps/native/src-tauri/src/bootstrap/import.rs",
"apps/native/src-tauri/src/commands/account.rs",
"apps/native/src-tauri/src/shared_types/account.rs",
"apps/native/src-tauri/src/sync/client.rs",
"apps/native/src-tauri/src/sync/mod.rs",
"apps/native/src-tauri/src/sync/signing.rs",
"apps/native/src-tauri/src/telemetry/init.rs",
"apps/native/src-tauri/src/telemetry/ipc.rs",
"apps/native/src-tauri/src/telemetry/mod.rs",
"apps/native/src-tauri/src/telemetry/scrub.rs",
"apps/native/src/components/widget/controls/repo-import.test.tsx",
"apps/native/src/components/widget/controls/repo-import.tsx",
"apps/native/src/components/widget/layout/AppErrorBoundary.tsx",
"apps/native/src/components/widget/settings/account-tab.tsx",
"apps/native/src/components/widget/steps/__snapshots__/evolve-step.preview.stories.tsx.snap",
"apps/native/src/lib/telemetry/context.tsx",
"apps/native/src/lib/telemetry/forwarding-processor.ts",
"apps/native/src/lib/telemetry/init.ts",
"apps/native/src/lib/telemetry/instance.ts",
"apps/native/src/lib/telemetry/noop.ts",
"apps/native/src/lib/telemetry/provider.ts",
"apps/native/src/lib/telemetry/sanitize.ts",
"apps/native/src/lib/telemetry/types.ts"
],
"removed": [
"apps/native/src/lib/sentry/init.ts",
"apps/native/src/lib/sentry/sanitize.test.ts",
"apps/native/src/lib/sentry/sanitize.ts"
],
"modified": [
".github/workflows/build.yaml",
".github/workflows/computer-use-e2e.yml",
".github/workflows/danger.yml",
".github/workflows/e2e.yml",
".github/workflows/evaluate.yml",
".github/workflows/nightly-release.yaml",
".github/workflows/peekaboo-e2e.yml",
".github/workflows/storybook.yaml",
"Cargo.lock",
"apps/native/.storybook/main.ts",
"apps/native/.storybook/vitest.setup.ts",
"apps/native/package.json",
"apps/native/src-tauri/Cargo.toml",
"apps/native/src-tauri/capabilities/default.json",
"apps/native/src-tauri/examples/specta_gen_ts.rs",
"apps/native/src-tauri/src/bootstrap/mod.rs",
"apps/native/src-tauri/src/commands/config.rs",
"apps/native/src-tauri/src/commands/debug.rs",
"apps/native/src-tauri/src/commands/helpers.rs",
"apps/native/src-tauri/src/commands/mod.rs",
"apps/native/src-tauri/src/evolve/edit_nix_file.rs",
"apps/native/src-tauri/src/evolve/file_ops.rs",
"apps/native/src-tauri/src/evolve/mod.rs",
"apps/native/src-tauri/src/evolve/tools.rs",
"apps/native/src-tauri/src/main.rs",
"apps/native/src-tauri/src/panic_handler.rs",
"apps/native/src-tauri/src/shared_types.rs",
"apps/native/src-tauri/src/shared_types/core.rs",
"apps/native/src-tauri/src/storage/store.rs",
"apps/native/src-tauri/src/summarize/model_calls.rs",
"apps/native/src/App.tsx",
"apps/native/src/components/nix-editor/__snapshots__/nix-editor.stories.tsx.snap",
"apps/native/src/components/nix-editor/nix-editor.stories.tsx",
"apps/native/src/components/nix-editor/use-nix-editor.ts",
"apps/native/src/components/nixmac-mascot/__snapshots__/nixmac-mascot.stories.tsx.snap",
"apps/native/src/components/ui/__snapshots__/tooltip.stories.tsx.snap",
"apps/native/src/components/widget/__snapshots__/widget.stories.tsx.snap",
"apps/native/src/components/widget/controls/directory-picker.tsx",
"apps/native/src/components/widget/feedback/feedback-dialog.tsx",
"apps/native/src/components/widget/overlays/__snapshots__/rebuild-overlay-panel.stories.tsx.snap",
"apps/native/src/components/widget/settings/__snapshots__/developer-tab.stories.tsx.snap",
"apps/native/src/components/widget/settings/general-tab.tsx",
"apps/native/src/components/widget/settings/settings-dialog.tsx",
"apps/native/src/components/widget/summaries/__snapshots__/collapsible-diff.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/diff-section.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/diff-view.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/file-view.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/full-file-diff-editor.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/hunk-pill.stories.tsx.snap",
"apps/native/src/components/widget/summaries/summary-or-diff.tsx",
"apps/native/src/e2e/dom-snapshots.ts",
"apps/native/src/hooks/use-darwin-config.ts",
"apps/native/src/hooks/use-evolve.ts",
"apps/native/src/hooks/use-rollback.ts",
"apps/native/src/ipc/api.ts",
"apps/native/src/ipc/types.ts",
"apps/native/src/main.tsx",
"apps/native/src/stores/ui-state.ts",
"apps/native/src/stores/widget-store.impl.ts",
"apps/native/vitest.config.ts",
"bun.lock",
"bun.nix",
"devenv.nix",
"nix/dev.nix"
]
}
],
"head_commit": {
"id": "22007f3e00bc7d048c769e9cb1d4121d27b39c48",
"tree_id": "1621c7bbd8f275195a0f17f2c4af5f1cde4d9058",
"distinct": true,
"message": "Merge branch 'develop' into 06-08-scott-whole-diff-prompt-eng",
"timestamp": "2026-06-08T13:47:55-07:00",
"url": "https://github.com/darkmatter/nixmac/commit/22007f3e00bc7d048c769e9cb1d4121d27b39c48",
"author": {
"name": "cooper",
"email": "1325802+czxtm@users.noreply.github.com",
"date": "2026-06-08T13:47:55-07:00",
"username": "czxtm"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-06-08T13:47:55-07:00",
"username": "web-flow"
},
"added": [
".github/actions/setup/action.yml",
"apps/native/src-tauri/src/bootstrap/import.rs",
"apps/native/src-tauri/src/commands/account.rs",
"apps/native/src-tauri/src/shared_types/account.rs",
"apps/native/src-tauri/src/sync/client.rs",
"apps/native/src-tauri/src/sync/mod.rs",
"apps/native/src-tauri/src/sync/signing.rs",
"apps/native/src-tauri/src/telemetry/init.rs",
"apps/native/src-tauri/src/telemetry/ipc.rs",
"apps/native/src-tauri/src/telemetry/mod.rs",
"apps/native/src-tauri/src/telemetry/scrub.rs",
"apps/native/src/components/widget/controls/repo-import.test.tsx",
"apps/native/src/components/widget/controls/repo-import.tsx",
"apps/native/src/components/widget/layout/AppErrorBoundary.tsx",
"apps/native/src/components/widget/settings/account-tab.tsx",
"apps/native/src/components/widget/steps/__snapshots__/evolve-step.preview.stories.tsx.snap",
"apps/native/src/lib/telemetry/context.tsx",
"apps/native/src/lib/telemetry/forwarding-processor.ts",
"apps/native/src/lib/telemetry/init.ts",
"apps/native/src/lib/telemetry/instance.ts",
"apps/native/src/lib/telemetry/noop.ts",
"apps/native/src/lib/telemetry/provider.ts",
"apps/native/src/lib/telemetry/sanitize.ts",
"apps/native/src/lib/telemetry/types.ts"
],
"removed": [
"apps/native/src/lib/sentry/init.ts",
"apps/native/src/lib/sentry/sanitize.test.ts",
"apps/native/src/lib/sentry/sanitize.ts"
],
"modified": [
".github/workflows/build.yaml",
".github/workflows/computer-use-e2e.yml",
".github/workflows/danger.yml",
".github/workflows/e2e.yml",
".github/workflows/evaluate.yml",
".github/workflows/nightly-release.yaml",
".github/workflows/peekaboo-e2e.yml",
".github/workflows/storybook.yaml",
"Cargo.lock",
"apps/native/.storybook/main.ts",
"apps/native/.storybook/vitest.setup.ts",
"apps/native/package.json",
"apps/native/src-tauri/Cargo.toml",
"apps/native/src-tauri/capabilities/default.json",
"apps/native/src-tauri/examples/specta_gen_ts.rs",
"apps/native/src-tauri/src/bootstrap/mod.rs",
"apps/native/src-tauri/src/commands/config.rs",
"apps/native/src-tauri/src/commands/debug.rs",
"apps/native/src-tauri/src/commands/helpers.rs",
"apps/native/src-tauri/src/commands/mod.rs",
"apps/native/src-tauri/src/evolve/edit_nix_file.rs",
"apps/native/src-tauri/src/evolve/file_ops.rs",
"apps/native/src-tauri/src/evolve/mod.rs",
"apps/native/src-tauri/src/evolve/tools.rs",
"apps/native/src-tauri/src/main.rs",
"apps/native/src-tauri/src/panic_handler.rs",
"apps/native/src-tauri/src/shared_types.rs",
"apps/native/src-tauri/src/shared_types/core.rs",
"apps/native/src-tauri/src/storage/store.rs",
"apps/native/src-tauri/src/summarize/model_calls.rs",
"apps/native/src/App.tsx",
"apps/native/src/components/nix-editor/__snapshots__/nix-editor.stories.tsx.snap",
"apps/native/src/components/nix-editor/nix-editor.stories.tsx",
"apps/native/src/components/nix-editor/use-nix-editor.ts",
"apps/native/src/components/nixmac-mascot/__snapshots__/nixmac-mascot.stories.tsx.snap",
"apps/native/src/components/ui/__snapshots__/tooltip.stories.tsx.snap",
"apps/native/src/components/widget/__snapshots__/widget.stories.tsx.snap",
"apps/native/src/components/widget/controls/directory-picker.tsx",
"apps/native/src/components/widget/feedback/feedback-dialog.tsx",
"apps/native/src/components/widget/overlays/__snapshots__/rebuild-overlay-panel.stories.tsx.snap",
"apps/native/src/components/widget/settings/__snapshots__/developer-tab.stories.tsx.snap",
"apps/native/src/components/widget/settings/general-tab.tsx",
"apps/native/src/components/widget/settings/settings-dialog.tsx",
"apps/native/src/components/widget/summaries/__snapshots__/collapsible-diff.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/diff-section.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/diff-view.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/file-view.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/full-file-diff-editor.stories.tsx.snap",
"apps/native/src/components/widget/summaries/__snapshots__/hunk-pill.stories.tsx.snap",
"apps/native/src/components/widget/summaries/summary-or-diff.tsx",
"apps/native/src/e2e/dom-snapshots.ts",
"apps/native/src/hooks/use-darwin-config.ts",
"apps/native/src/hooks/use-evolve.ts",
"apps/native/src/hooks/use-rollback.ts",
"apps/native/src/ipc/api.ts",
"apps/native/src/ipc/types.ts",
"apps/native/src/main.tsx",
"apps/native/src/stores/ui-state.ts",
"apps/native/src/stores/widget-store.impl.ts",
"apps/native/vitest.config.ts",
"bun.lock",
"bun.nix",
"devenv.nix",
"nix/dev.nix"
]
}
}