Payload
{
"ref": "refs/heads/fkb/titan-fly-deploy",
"before": "6dc9116d8b0379d2baa8ff37c1169c6e970d4504",
"after": "95e372ca8d8ba052eecfaa7b0a07d21a10167f9f",
"repository": {
"id": 1144186344,
"node_id": "R_kgDORDLl6A",
"name": "titan",
"full_name": "darkmatter/titan",
"private": true,
"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/titan",
"description": null,
"fork": false,
"url": "https://api.github.com/repos/darkmatter/titan",
"forks_url": "https://api.github.com/repos/darkmatter/titan/forks",
"keys_url": "https://api.github.com/repos/darkmatter/titan/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/titan/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/titan/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/titan/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/titan/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/titan/events",
"assignees_url": "https://api.github.com/repos/darkmatter/titan/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/titan/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/titan/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/titan/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/titan/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/titan/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/titan/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/titan/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/titan/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/titan/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/titan/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/titan/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/titan/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/titan/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/titan/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/titan/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/titan/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/titan/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/titan/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/titan/merges",
"archive_url": "https://api.github.com/repos/darkmatter/titan/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/titan/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/titan/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/titan/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/titan/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/titan/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/titan/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/titan/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/titan/deployments",
"created_at": 1769601223,
"updated_at": "2026-05-12T22:09:35Z",
"pushed_at": 1780215322,
"git_url": "git://github.com/darkmatter/titan.git",
"ssh_url": "git@github.com:darkmatter/titan.git",
"clone_url": "https://github.com/darkmatter/titan.git",
"svn_url": "https://github.com/darkmatter/titan",
"homepage": "https://switchblade.app",
"size": 45197,
"stargazers_count": 0,
"watchers_count": 0,
"language": "TypeScript",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 48,
"license": null,
"allow_forking": false,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "internal",
"forks": 0,
"open_issues": 48,
"watchers": 0,
"default_branch": "main",
"stargazers": 0,
"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/titan/compare/6dc9116d8b03...95e372ca8d8b",
"commits": [
{
"id": "95e372ca8d8ba052eecfaa7b0a07d21a10167f9f",
"tree_id": "f6fc59c894fa03ab7bf9d14275ad5a2dd098ec25",
"distinct": true,
"message": "Add extension fkb-titan QA provenance (#117)\n\n## Summary\n- Adds Fly QA extension host permissions and documented prod/Fly QA build variants.\n- Surfaces fee/rolling/snapshot/DB provenance across popup, inline panel, sidebar, compare, and pool detail surfaces.\n- Shares extension API fetch behavior through a no-auth helper and adds coverage for URL/error/auth invariants.\n- Adds extension CI build gates for prod and Fly QA builds.\n- Sanitizes degraded DB messages and avoids pinning degraded DB state in the in-memory pool cache.\n\n## Stack\n- Stacked on #116 (`fkb/titan-fly-deploy`). Retarget to `main` after #116 merges, or merge #116 first.\n\n## Verification\n- `bun run --cwd apps/extension test` passed (128 tests)\n- `bun run --cwd apps/extension compile` passed\n- `bun run --cwd apps/extension build:prod` passed\n- `bun run --cwd apps/extension build:qa:fly` passed\n- `bun run --cwd apps/server test` passed (81 tests)\n- `bun run --cwd apps/server build` passed\n- Targeted cleanup: `bun run --cwd apps/extension test inline-panel.test.ts provenance.test.ts background-fetch.test.ts` passed (19 tests)\n- QA bundle scan found no `Authorization`, `Basic`, or `dark:matter` strings in `.output/chrome-mv3`\n- Manifest includes `https://fkb-titan.fly.dev/*`\n- Fly QA deployed and verified: `https://fkb-titan.fly.dev/pool-intelligence/pool?...` returns `meta.dbStatus` / `meta.dbMessage`\n- Production deployed and verified: `https://api.iridium.sh/health` returns `OK`; the Base USDC/WETH pool response includes `meta.dbStatus=\"available\"`, `meta.dbMessage=null`, and the new meta keys\n- Uniswap create mock extension QA passed for ready Ethereum, unsupported-chain, and incomplete-url states\n- Live Revert smoke passed for sidebar/APR rendering on Revert top positions and discover routes\n\n## Known follow-up\n- `titan-33f`: fix the durable switchblade deploy build-working-directory mismatch. Local production deploy succeeded by using the same registry/SOPS/MicroVM target with build working directory `/opt/switchblade`; the current combined Alchemy path would fail after Cloudflare auth because the registry working directory is `/opt/switchblade/apps/server` while build steps include `cd apps/server`.\n- `bun run --cwd apps/server check-types` still fails on existing repo-wide strictness debt unrelated to this branch.",
"timestamp": "2026-05-31T01:15:22-07:00",
"url": "https://github.com/darkmatter/titan/commit/95e372ca8d8ba052eecfaa7b0a07d21a10167f9f",
"author": {
"name": "Farhan",
"email": "249513614+fkb032@users.noreply.github.com",
"date": "2026-05-31T02:15:22-06:00",
"username": "fkb032"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-05-31T01:15:22-07:00",
"username": "web-flow"
},
"added": [
"apps/extension/lib/background-fetch.test.ts",
"apps/extension/lib/background-fetch.ts",
"apps/extension/lib/provenance.test.ts",
"apps/extension/lib/provenance.ts"
],
"removed": [],
"modified": [
".github/workflows/ci.yml",
"apps/extension/README.md",
"apps/extension/entrypoints/background.ts",
"apps/extension/entrypoints/popup/App.tsx",
"apps/extension/lib/api.ts",
"apps/extension/lib/compare-panel.ts",
"apps/extension/lib/inline-panel.test.ts",
"apps/extension/lib/inline-panel.ts",
"apps/extension/lib/pool-detail-overlay.ts",
"apps/extension/lib/sidebar.ts",
"apps/extension/package.json",
"apps/extension/wxt.config.ts",
"apps/server/src/routes/pool-intelligence/index.ts"
]
}
],
"head_commit": {
"id": "95e372ca8d8ba052eecfaa7b0a07d21a10167f9f",
"tree_id": "f6fc59c894fa03ab7bf9d14275ad5a2dd098ec25",
"distinct": true,
"message": "Add extension fkb-titan QA provenance (#117)\n\n## Summary\n- Adds Fly QA extension host permissions and documented prod/Fly QA build variants.\n- Surfaces fee/rolling/snapshot/DB provenance across popup, inline panel, sidebar, compare, and pool detail surfaces.\n- Shares extension API fetch behavior through a no-auth helper and adds coverage for URL/error/auth invariants.\n- Adds extension CI build gates for prod and Fly QA builds.\n- Sanitizes degraded DB messages and avoids pinning degraded DB state in the in-memory pool cache.\n\n## Stack\n- Stacked on #116 (`fkb/titan-fly-deploy`). Retarget to `main` after #116 merges, or merge #116 first.\n\n## Verification\n- `bun run --cwd apps/extension test` passed (128 tests)\n- `bun run --cwd apps/extension compile` passed\n- `bun run --cwd apps/extension build:prod` passed\n- `bun run --cwd apps/extension build:qa:fly` passed\n- `bun run --cwd apps/server test` passed (81 tests)\n- `bun run --cwd apps/server build` passed\n- Targeted cleanup: `bun run --cwd apps/extension test inline-panel.test.ts provenance.test.ts background-fetch.test.ts` passed (19 tests)\n- QA bundle scan found no `Authorization`, `Basic`, or `dark:matter` strings in `.output/chrome-mv3`\n- Manifest includes `https://fkb-titan.fly.dev/*`\n- Fly QA deployed and verified: `https://fkb-titan.fly.dev/pool-intelligence/pool?...` returns `meta.dbStatus` / `meta.dbMessage`\n- Production deployed and verified: `https://api.iridium.sh/health` returns `OK`; the Base USDC/WETH pool response includes `meta.dbStatus=\"available\"`, `meta.dbMessage=null`, and the new meta keys\n- Uniswap create mock extension QA passed for ready Ethereum, unsupported-chain, and incomplete-url states\n- Live Revert smoke passed for sidebar/APR rendering on Revert top positions and discover routes\n\n## Known follow-up\n- `titan-33f`: fix the durable switchblade deploy build-working-directory mismatch. Local production deploy succeeded by using the same registry/SOPS/MicroVM target with build working directory `/opt/switchblade`; the current combined Alchemy path would fail after Cloudflare auth because the registry working directory is `/opt/switchblade/apps/server` while build steps include `cd apps/server`.\n- `bun run --cwd apps/server check-types` still fails on existing repo-wide strictness debt unrelated to this branch.",
"timestamp": "2026-05-31T01:15:22-07:00",
"url": "https://github.com/darkmatter/titan/commit/95e372ca8d8ba052eecfaa7b0a07d21a10167f9f",
"author": {
"name": "Farhan",
"email": "249513614+fkb032@users.noreply.github.com",
"date": "2026-05-31T02:15:22-06:00",
"username": "fkb032"
},
"committer": {
"name": "GitHub",
"email": "noreply@github.com",
"date": "2026-05-31T01:15:22-07:00",
"username": "web-flow"
},
"added": [
"apps/extension/lib/background-fetch.test.ts",
"apps/extension/lib/background-fetch.ts",
"apps/extension/lib/provenance.test.ts",
"apps/extension/lib/provenance.ts"
],
"removed": [],
"modified": [
".github/workflows/ci.yml",
"apps/extension/README.md",
"apps/extension/entrypoints/background.ts",
"apps/extension/entrypoints/popup/App.tsx",
"apps/extension/lib/api.ts",
"apps/extension/lib/compare-panel.ts",
"apps/extension/lib/inline-panel.test.ts",
"apps/extension/lib/inline-panel.ts",
"apps/extension/lib/pool-detail-overlay.ts",
"apps/extension/lib/sidebar.ts",
"apps/extension/package.json",
"apps/extension/wxt.config.ts",
"apps/server/src/routes/pool-intelligence/index.ts"
]
}
}