Home
madison
/
open-git
public
Overview
Code
History
Branches
Pull requests
Issues
Insights
Campfire
Docs
Home
Overview
Code
PRs
Issues
More
runners + deploy
4 months ago
6076f5d
Authored
Madison
5/10/2026, 10:00:26 AM
Parent
bea513b
202 files changed
apps/cli/bin/lodestone.mjs
+18
−0
apps/cli/package.json
+22
−0
apps/cli/src/index.ts
+367
−0
apps/cli/src/runner-commands.ts
+141
−0
apps/cli/tsconfig.json
+10
−0
apps/git-gateway/src/db.ts
+52
−2
apps/git-gateway/src/git-http-backend.ts
+33
−1
apps/git-gateway/src/server.ts
+80
−3
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/FETCH_HEAD
+1
−1
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/01/61be6c2504e920257134c8fe61fe3ba359b2d2
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/04/4636a65ff67410fad601f0c39978108fefcea0
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/04/59d42278575eb49ff6c92c40b651f11aa7b081
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/04/f1f4f8c23f38fa6ec278797c7550a697684e8f
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/09/66d8749ad20b5c73ce5b83a99577fcb225b7cb
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/11/3f062cff47e810fd93d31f031e66690a1f1bb7
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/11/594182a63ac7d39dadd4a495270cd1a8573726
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/15/42682d65a3249a24658dae84de6a4d74b445b4
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/16/10a36fdfe6a89e643c412f703110766fee46f2
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/2d/f48adfda380cae420dbe096ce9ea05c5176fed
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/31/09f091b40730ef8f1b807c149f91b349e5f689
+2
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/31/f1031daea152daafb4abc137e0653d6ee0cc59
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/31/f2b02270cf108a9a941a7ca1525e5ba2a97e8b
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/33/4f67340bb2440c3eb2c55cabb1cb801da2c8a9
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/36/d1195ea5e2206bfdc8af6faa5abeeb82ab4117
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/38/e38ae6fd22fcf5804c7eb5743c87315a69d9e0
+3
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/3d/1e1eebe040fa6bde1a1f1a093b37814802e36c
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/42/d2f0a8b348ded592ca35e0d524a42e2be39d4b
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/5a/3bd9a45b9c8440a91cc1ddefc30cf462fec45f
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/5b/9903afc7c058505515b7dc42cebe140565f507
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/5f/a51e695b3e6e96f4f56ea7338e2589f8002455
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/62/8bc4103cdd3e297135f7a3f62937bc12551cc0
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/6f/c33c4796dbdb2de4ac88eb06a3fec714f0c1c2
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/73/62352d2631e29f3186ccac49611fd787349b3a
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/88/a9ca24f474b2d1bb2d41afae1e34929b55c01e
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/8f/ac9d3bf404e7dea9d9815017985dc9218b5c22
+3
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/91/d1c037b09e0177d372f0ad3a49604988289e50
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/94/6f9e04b9d79f5060512a99d6aeed1dba8bb429
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/94/705d980921de34cec74a1074d96959ef50bd7b
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/9d/7cf5e44ef1f642f6ed03c87bfd7a6d3a7aa2ad
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/9e/9526fe4225e897f5433912456133962e5ba16a
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/9f/534b16ff00a66aada1fe0eae4dac61d714d246
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/a2/442165cab163a410bc4485c1077874d037065f
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/a5/8f90850f1cc31a919cbbb891df2d76238bfd27
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/a7/6e9e6c3ff2e4a21e5de1c5f2cd152f37ac43dc
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/ae/108288746f242b7418a7643983e87b419002e0
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/b0/17399d4c8214e82775861f3d253626f47e28ca
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/be/668f0065ac86153b611936d35fb15acc7de338
+2
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/bf/6d9c617142d6bc41c4d96e60ba4c20206d0894
+2
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/d2/a87a48e0546da46b74f7ad846eff7adaeaba8b
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/d2/f0a9fb4f2670eef6a3c9dba5762650bbbbd757
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/d4/79365ad1e4d789ccbbdd18c589bbf2b893af5a
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/d5/42792c9bc8aea44b1c9921d46ea992364d75e4
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/dc/2949bc9ac4729536a138fd9ee20244e636cff9
+2
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/df/19afc952e7525daf0aec9b0a605b4c48f7a3fc
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/e9/6dbdf6d273fe57569e36d92bf182d6f770ca6f
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/f5/3e155415228def66ce1300427c5831be841eaa
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/objects/f5/bfb2c6d2ac2b06c1c2791f69768d7712668e13
—
—
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/main
+1
−1
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/runner-example
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/runners
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/refs/remotes/pr-heads/527af8d7-f1a9-419a-9edf-abefeca89aa7
+1
−0
apps/git-worker/.lodestone/repos/madison-local_lodestone-local.git/refs/remotes/pr-heads/629f65cb-2195-4480-90bf-ea437dc92b78
+0
−1
apps/git-worker/package.json
+2
−0
apps/managed-runner/package.json
+24
−0
apps/managed-runner/src/index.ts
+148
−0
apps/managed-runner/tsconfig.json
+13
−0
apps/runner/bin/lodestone-runner.mjs
+16
−0
apps/runner/package.json
+24
−0
apps/runner/src/index.ts
+216
−0
apps/runner/tsconfig.json
+10
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/FETCH_HEAD
+0
−1
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/01/61be6c2504e920257134c8fe61fe3ba359b2d2
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/04/19e728f60922aaa96b6323fd6a34beb2d33d5e
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/04/4636a65ff67410fad601f0c39978108fefcea0
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/04/59d42278575eb49ff6c92c40b651f11aa7b081
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/04/f1f4f8c23f38fa6ec278797c7550a697684e8f
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/09/66d8749ad20b5c73ce5b83a99577fcb225b7cb
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/11/3f062cff47e810fd93d31f031e66690a1f1bb7
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/15/42682d65a3249a24658dae84de6a4d74b445b4
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/16/10a36fdfe6a89e643c412f703110766fee46f2
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/2d/f48adfda380cae420dbe096ce9ea05c5176fed
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/31/09f091b40730ef8f1b807c149f91b349e5f689
+2
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/31/f1031daea152daafb4abc137e0653d6ee0cc59
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/31/f2b02270cf108a9a941a7ca1525e5ba2a97e8b
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/33/4f67340bb2440c3eb2c55cabb1cb801da2c8a9
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/36/d1195ea5e2206bfdc8af6faa5abeeb82ab4117
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/3d/1e1eebe040fa6bde1a1f1a093b37814802e36c
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/42/d2f0a8b348ded592ca35e0d524a42e2be39d4b
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/5a/3bd9a45b9c8440a91cc1ddefc30cf462fec45f
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/5b/9903afc7c058505515b7dc42cebe140565f507
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/5f/a51e695b3e6e96f4f56ea7338e2589f8002455
+1
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/62/8bc4103cdd3e297135f7a3f62937bc12551cc0
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/6f/c33c4796dbdb2de4ac88eb06a3fec714f0c1c2
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/73/62352d2631e29f3186ccac49611fd787349b3a
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/7e/623b45e9370b0230a7ba07fb94886fa751ab41
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/88/a9ca24f474b2d1bb2d41afae1e34929b55c01e
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/8b/18e822f097be9f2465ebea569eeda654a90418
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/8f/ac9d3bf404e7dea9d9815017985dc9218b5c22
+3
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/91/d1c037b09e0177d372f0ad3a49604988289e50
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/94/6f9e04b9d79f5060512a99d6aeed1dba8bb429
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/94/705d980921de34cec74a1074d96959ef50bd7b
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/9d/7cf5e44ef1f642f6ed03c87bfd7a6d3a7aa2ad
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/9e/9526fe4225e897f5433912456133962e5ba16a
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/9f/534b16ff00a66aada1fe0eae4dac61d714d246
+1
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/a2/442165cab163a410bc4485c1077874d037065f
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/a5/8f90850f1cc31a919cbbb891df2d76238bfd27
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/a7/6e9e6c3ff2e4a21e5de1c5f2cd152f37ac43dc
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/ae/108288746f242b7418a7643983e87b419002e0
+1
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/b0/17399d4c8214e82775861f3d253626f47e28ca
+1
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/be/668f0065ac86153b611936d35fb15acc7de338
+2
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/bf/6d9c617142d6bc41c4d96e60ba4c20206d0894
+2
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/d2/a87a48e0546da46b74f7ad846eff7adaeaba8b
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/d2/f0a9fb4f2670eef6a3c9dba5762650bbbbd757
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/d4/79365ad1e4d789ccbbdd18c589bbf2b893af5a
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/d5/42792c9bc8aea44b1c9921d46ea992364d75e4
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/dc/2949bc9ac4729536a138fd9ee20244e636cff9
+2
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/e7/ca4c7db109205ce9e0636a0859a5bae3a79dac
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/e9/6dbdf6d273fe57569e36d92bf182d6f770ca6f
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/f5/3e155415228def66ce1300427c5831be841eaa
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/objects/f5/bfb2c6d2ac2b06c1c2791f69768d7712668e13
—
—
apps/web/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/docs2
+1
−1
apps/web/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/main
+1
−1
apps/web/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/runner-example
+1
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/refs/heads/runners
+1
−0
apps/web/.lodestone/repos/madison-local_lodestone-local.git/refs/remotes/pr-heads/629f65cb-2195-4480-90bf-ea437dc92b78
+0
−1
apps/web/app/[username]/[repository]/issues/[number]/issue-comment-composer.tsx
+1
−1
apps/web/app/[username]/[repository]/issues/[number]/issue-conversation.tsx
+6
−6
apps/web/app/[username]/[repository]/issues/[number]/issue-inline-reply-composer.tsx
+1
−1
apps/web/app/[username]/[repository]/issues/[number]/page.tsx
+72
−51
apps/web/app/[username]/[repository]/issues/page.tsx
+85
−94
apps/web/app/[username]/[repository]/page.tsx
+215
−134
apps/web/app/[username]/[repository]/pulls/[number]/inline-reply-composer.tsx
+1
−1
apps/web/app/[username]/[repository]/pulls/[number]/page.tsx
+263
−237
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-comment-composer.tsx
+1
−1
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-conversation.tsx
+65
−29
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-forms.tsx
+3
−2
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-git-graph.tsx
+0
−21
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-merge-box.tsx
+15
−24
apps/web/app/[username]/[repository]/pulls/new/actions.ts
+13
−2
apps/web/app/[username]/[repository]/pulls/page.tsx
+98
−89
apps/web/app/[username]/[repository]/settings/actions.ts
+30
−0
apps/web/app/[username]/[repository]/settings/repository-settings-forms.tsx
+3
−1
apps/web/app/api/ci/_lib/runner-auth.ts
+33
−0
apps/web/app/api/ci/jobs/[jobId]/artifacts/route.ts
+63
−0
apps/web/app/api/ci/jobs/[jobId]/cancel/route.ts
+26
−0
apps/web/app/api/ci/jobs/[jobId]/lease/route.ts
+25
−0
apps/web/app/api/ci/jobs/[jobId]/logs/route.ts
+128
−0
apps/web/app/api/ci/jobs/[jobId]/rerun/route.ts
+26
−0
apps/web/app/api/ci/jobs/[jobId]/status/route.ts
+41
−0
apps/web/app/api/ci/jobs/[jobId]/steps/[stepId]/status/route.ts
+37
−0
apps/web/app/api/ci/repos/[repoId]/runner-registration-token/route.ts
+32
−0
apps/web/app/api/ci/runners/[runnerId]/heartbeat/route.ts
+39
−0
apps/web/app/api/ci/runners/[runnerId]/jobs/claim/route.ts
+28
−0
apps/web/app/api/ci/runners/[runnerId]/route.ts
+34
−0
apps/web/app/api/ci/runners/register/route.ts
+44
−0
apps/web/app/api/health/route.ts
+8
−0
apps/web/app/ci/runs/[runId]/jobs/[jobId]/page.tsx
+906
−0
apps/web/app/ci/runs/[runId]/jobs/[jobId]/workflow-job-log-viewer.tsx
+139
−0
apps/web/app/settings/account/api-keys/api-keys-client.tsx
+30
−0
apps/web/app/settings/account/api-keys/page.tsx
+3
−26
apps/web/app/settings/layout.tsx
+4
−0
apps/web/app/waitlist/page.tsx
+1
−1
apps/web/components/app-navbar.tsx
+1
−1
apps/web/{app/[username]/[repository] => components}/conversation/comment-composer-shared.tsx
+0
−0
apps/web/{app/[username]/[repository] => components}/conversation/comment-initials.ts
+0
−0
apps/web/{app/[username]/[repository] => components}/conversation/conversation-actor-line.tsx
+1
−1
apps/web/{app/[username]/[repository] => components}/conversation/conversation-chrome.tsx
+0
−0
apps/web/{app/[username]/[repository] => components}/conversation/conversation-meta.tsx
+1
−1
apps/web/{app/[username]/[repository] => components}/conversation/inline-reply-composer-shared.tsx
+0
−0
apps/web/{app/[username]/[repository] => components}/conversation/reply-content.tsx
+2
−2
apps/web/{app/[username]/[repository] => components}/conversation/timeline-primitives.tsx
+1
−1
apps/web/db/ci.ts
+1100
−0
apps/web/db/pull-request-diffs.ts
+7
−1
apps/web/db/schema.ts
+610
−0
apps/web/drizzle/0015_ci_workflow_runners.sql
+284
−0
apps/web/drizzle/meta/0015_snapshot.json
+5077
−0
apps/web/drizzle/meta/_journal.json
+7
−0
apps/web/lib/ci-object-storage.ts
+53
−0
apps/web/lib/ci-workflow-discovery.ts
+149
−0
apps/web/lib/local-repo-cache.ts
+20
−0
apps/web/lib/pr-diff-indexer.ts
+26
−18
apps/web/lib/pr-mergeability-indexer.ts
+36
−18
apps/web/lib/repo-indexer.ts
+96
−4
apps/web/next.config.mjs
+7
−0
apps/web/package.json
+2
−0
apps/web/public/stone-block.svg
+1
−0
deploy/.env.example
+83
−0
deploy/Caddyfile
+47
−0
deploy/Dockerfile
+123
−0
deploy/Dockerfile.dockerignore
+42
−0
deploy/README.md
+267
−0
deploy/docker-compose.app.yml
+152
−0
deploy/docker-compose.runner.yml
+50
−0
packages/ci-runner-executor/package.json
+20
−0
packages/ci-runner-executor/src/index.ts
+338
−0
packages/ci-runner-executor/tsconfig.json
+10
−0
packages/workflows/package.json
+21
−0
packages/workflows/src/index.test.ts
+31
−0
packages/workflows/src/index.ts
+531
−0
packages/workflows/tsconfig.json
+10
−0
pnpm-lock.yaml
+132
−11
turbo.json
+1
−0