Payload
{
"ref": "refs/heads/main",
"before": "be4f0fe90d5e83641756b6d74e9d96b03becbc27",
"after": "556713ed4618ba625adf7d086168ee1540c6ff74",
"repository": {
"id": 1110409800,
"node_id": "R_kgDOQi-CSA",
"name": "stackpanel",
"full_name": "darkmatter/stackpanel",
"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/stackpanel",
"description": "Ship products, not plumbing. Making Nix dev environments accessible to all.",
"fork": false,
"url": "https://api.github.com/repos/darkmatter/stackpanel",
"forks_url": "https://api.github.com/repos/darkmatter/stackpanel/forks",
"keys_url": "https://api.github.com/repos/darkmatter/stackpanel/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/stackpanel/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/stackpanel/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/stackpanel/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/stackpanel/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/stackpanel/events",
"assignees_url": "https://api.github.com/repos/darkmatter/stackpanel/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/stackpanel/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/stackpanel/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/stackpanel/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/stackpanel/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/stackpanel/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/stackpanel/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/stackpanel/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/stackpanel/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/stackpanel/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/stackpanel/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/stackpanel/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/stackpanel/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/stackpanel/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/stackpanel/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/stackpanel/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/stackpanel/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/stackpanel/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/stackpanel/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/stackpanel/merges",
"archive_url": "https://api.github.com/repos/darkmatter/stackpanel/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/stackpanel/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/stackpanel/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/stackpanel/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/stackpanel/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/stackpanel/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/stackpanel/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/stackpanel/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/stackpanel/deployments",
"created_at": 1764916677,
"updated_at": "2026-05-31T13:24:28Z",
"pushed_at": 1780245675,
"git_url": "git://github.com/darkmatter/stackpanel.git",
"ssh_url": "git@github.com:darkmatter/stackpanel.git",
"clone_url": "https://github.com/darkmatter/stackpanel.git",
"svn_url": "https://github.com/darkmatter/stackpanel",
"homepage": "https://stackpanel.com",
"size": 115078,
"stargazers_count": 5,
"watchers_count": 5,
"language": "TypeScript",
"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": 0,
"license": null,
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "public",
"forks": 1,
"open_issues": 0,
"watchers": 5,
"default_branch": "main",
"stargazers": 5,
"master_branch": "main",
"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-05-09T15:34:55Z"
},
"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/stackpanel/compare/be4f0fe90d5e...556713ed4618",
"commits": [
{
"id": "65109cdcb813cd201b3f256cbcf8201ea4fab18f",
"tree_id": "c46411aec1ce05e356e517e32f6d460cbe41d64c",
"distinct": true,
"message": "remove unused actions",
"timestamp": "2026-05-31T09:41:00-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/65109cdcb813cd201b3f256cbcf8201ea4fab18f",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:32:37-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:00-07:00",
"username": "czxtm"
},
"added": [
".github/dependabot.yml"
],
"removed": [],
"modified": [
".github/workflows/deploy-docs.yaml",
".github/workflows/deploy-nixos.yml",
".github/workflows/deploy-web.yaml",
".github/workflows/devenv-cache.yml",
".github/workflows/flakehub-publish-rolling.yml",
".github/workflows/test-fixtures.yml"
]
},
{
"id": "e2266d609516ee2f523dfc36abcc107c94845dcd",
"tree_id": "ba947493d3c0c71f11317bf84c78ac303bf19d23",
"distinct": true,
"message": "chore(deps): upgrade workspace dependencies and migrate tests to vitest\n\nBump catalog and per-package versions (tanstack, fumadocs, next, lucide,\nwrangler, distilled.cloud, react, zod, drizzle, etc.), prune unused deps,\nand regenerate bun.lock. Migrate web test imports from vite-plus/test to\nvitest and regenerate docs cloudflare-env.d.ts for the newer workerd.",
"timestamp": "2026-05-31T09:41:00-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/e2266d609516ee2f523dfc36abcc107c94845dcd",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:38:45-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:00-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
"apps/api/package.json",
"apps/docs/cloudflare-env.d.ts",
"apps/docs/package.json",
"apps/tui/package.json",
"apps/web/package.json",
"apps/web/src/components/studio/panels/apps/app-variables-section/use-reveal-secret.test.ts",
"apps/web/src/lib/agent.test.ts",
"apps/web/src/lib/app-env.test.ts",
"apps/web/src/lib/stackpanel-config-editor.test.ts",
"apps/web/src/lib/use-inspector-data.test.ts",
"apps/web/src/test/integration/agent.integration.test.ts",
"apps/web/src/test/setup.ts",
"apps/web/vitest.config.ts",
"bun.lock",
"package.json",
"packages/agent-client/package.json",
"packages/api/package.json",
"packages/auth/package.json",
"packages/db/package.json",
"packages/infra/package.json",
"packages/sdk/package.json",
"packages/ui/core/package.json",
"packages/ui/web/package.json",
"packages/znv/package.json"
]
},
{
"id": "845f4b4e562adb1ff164b0c96f3f53e9fd39b84f",
"tree_id": "53321fbdf3d59defd8f52a06b7bdcb1cb3976d4d",
"distinct": true,
"message": "feat(portless): run proxy as a supervised process\n\nPackage the portless CLI in Nix (network/packages/portless) and expose it\nvia a package option instead of relying on a global $PATH binary. When\nprocess-compose is enabled, run the proxy as an 'infra' process with a real\nreadiness probe and make domain-bound apps depend on it; otherwise keep the\nmanual start scripts. Drops the auto-start shell hook. Extends the hook test\nto assert the Nix-path invocation and package option.",
"timestamp": "2026-05-31T09:41:00-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/845f4b4e562adb1ff164b0c96f3f53e9fd39b84f",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:38:52-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:00-07:00",
"username": "czxtm"
},
"added": [
"nix/stackpanel/packages/portless/default.nix"
],
"removed": [],
"modified": [
"nix/stackpanel/modules/process-compose/module.nix",
"nix/stackpanel/network/portless-options.nix",
"nix/stackpanel/services/portless.nix",
"tests/portless-hook-test.sh"
]
},
{
"id": "2447ae5b3bf9b32d25f532ef3671cf4c0a382d1f",
"tree_id": "d737403f3a92510623afa45d2682afb14f2d75f5",
"distinct": true,
"message": "fix(deploy): select alchemy state by stage and pin worker names\n\nUse filesystem-backed alchemy state only for true local dev; PR previews,\nstaging, and prod all use the shared Cloudflare state store so CI deploy and\ndestroy jobs agree on resource identity. Pin stable Worker physical names for\nweb/docs so a per-deploy InstanceId change can't orphan workers. Drop the\ngeneric 'dev' script from the generated infra package (keep alchemy:dev) so\n'turbo run dev' never provisions infra as a side effect.",
"timestamp": "2026-05-31T09:41:00-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/2447ae5b3bf9b32d25f532ef3671cf4c0a382d1f",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:38:58-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:00-07:00",
"username": "czxtm"
},
"added": [
"nix/stackpanel/infra/codegen.test.nix",
"packages/infra/src/lib/deploy.test.ts"
],
"removed": [],
"modified": [
"apps/api/alchemy.run.ts",
"apps/docs/alchemy.run.ts",
"apps/web/alchemy.run.ts",
"nix/stackpanel/infra/codegen.nix",
"packages/infra/src/lib/deploy.ts"
]
},
{
"id": "dd55e85da0a1e1c99b959c4a15d54c6a92d94b7b",
"tree_id": "6a9b15160527f1d0a079c06bdb875300936a670e",
"distinct": true,
"message": "chore(secrets): rotate polar product/credentials and regenerate env\n\nUpdate Polar sandbox product IDs, add polar_access_token/polar_webhook_secret\nto the dev SOPS vars, and regenerate the per-app encrypted env payloads and\nruntime payload modules accordingly. All values remain SOPS/AGE encrypted.",
"timestamp": "2026-05-31T09:41:00-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/dd55e85da0a1e1c99b959c4a15d54c6a92d94b7b",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:39:06-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:00-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".stack/secrets/vars/dev.sops.yaml",
".stack/secrets/vars/shared.sops.yaml",
"packages/auth/src/lib/polar-products.ts",
"packages/gen/env/data/_envs/deploy.sops.json",
"packages/gen/env/data/dev/api.sops.json",
"packages/gen/env/data/dev/docs.sops.json",
"packages/gen/env/data/dev/web.sops.json",
"packages/gen/env/data/prod/api.sops.json",
"packages/gen/env/data/prod/docs.sops.json",
"packages/gen/env/data/prod/web.sops.json",
"packages/gen/env/data/staging/api.sops.json",
"packages/gen/env/data/staging/docs.sops.json",
"packages/gen/env/data/staging/web.sops.json",
"packages/gen/env/src/runtime/generated-payloads/_envs/deploy.ts",
"packages/gen/env/src/runtime/generated-payloads/api/dev.ts",
"packages/gen/env/src/runtime/generated-payloads/api/prod.ts",
"packages/gen/env/src/runtime/generated-payloads/api/staging.ts",
"packages/gen/env/src/runtime/generated-payloads/docs/dev.ts",
"packages/gen/env/src/runtime/generated-payloads/docs/prod.ts",
"packages/gen/env/src/runtime/generated-payloads/docs/staging.ts",
"packages/gen/env/src/runtime/generated-payloads/web/dev.ts",
"packages/gen/env/src/runtime/generated-payloads/web/prod.ts",
"packages/gen/env/src/runtime/generated-payloads/web/staging.ts"
]
},
{
"id": "556713ed4618ba625adf7d086168ee1540c6ff74",
"tree_id": "1338b4e44e6d2859609d83ce1a2ad21de8fdd342",
"distinct": true,
"message": "chore(agent): redirect /studio to hosted studio and ignore .codex\n\nAdd a /studio redirect on the local agent to https://local.stackpanel.com/studio\nand ignore the .codex directory.",
"timestamp": "2026-05-31T09:41:01-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/556713ed4618ba625adf7d086168ee1540c6ff74",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:39:10-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:01-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".gitignore",
"apps/stackpanel-go/internal/agent/server/server.go"
]
}
],
"head_commit": {
"id": "556713ed4618ba625adf7d086168ee1540c6ff74",
"tree_id": "1338b4e44e6d2859609d83ce1a2ad21de8fdd342",
"distinct": true,
"message": "chore(agent): redirect /studio to hosted studio and ignore .codex\n\nAdd a /studio redirect on the local agent to https://local.stackpanel.com/studio\nand ignore the .codex directory.",
"timestamp": "2026-05-31T09:41:01-07:00",
"url": "https://github.com/darkmatter/stackpanel/commit/556713ed4618ba625adf7d086168ee1540c6ff74",
"author": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:39:10-07:00",
"username": "czxtm"
},
"committer": {
"name": "Cooper Maruyama",
"email": "me@cooperm.com",
"date": "2026-05-31T09:41:01-07:00",
"username": "czxtm"
},
"added": [],
"removed": [],
"modified": [
".gitignore",
"apps/stackpanel-go/internal/agent/server/server.go"
]
}
}