PR Autopilot
drop_discussionstomain
Status
failed
Trigger
check.failed
Attempts
3
Spend
$0.0000 · 0 tok
Last updated
7/18/2026, 10:54:46 AM
No summary has been produced yet.
0001 10:42:31 AM [system] Queued PR Autopilot job from check.failed.
0002 10:44:52 AM [system] Claimed by autopilot-35.
0003 10:44:52 AM [system] Created short-lived repository token.
0004 10:44:55 AM [system] Created freestyle workspace fhxrsli1jfhjani62wmz.
0005 10:44:55 AM [system] $ clone repository
0006 10:45:12 AM [stderr] Cloning into '/workspace/repo'...
0007 10:45:12 AM [system] clone repository exited 0.
0008 10:45:12 AM [system] $ initial tests
0009 10:45:53 AM [stdout] Scope: all 16 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1275
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1275, reused 0, downloaded 11, added 9
╭───────────────────────────────────────────────────────────────────╮
│ │
│ Update available! 9.15.9 → 11.14.0. │
│ Changelog: https://github.com/pnpm/pnpm/releases/tag/v11.14.0 │
│ Run "pnpm add -g pnpm" to update. │
│ │
╰───────────────────────────────────────────────────────────────────╯
Progress: resolved 1275, reused 0, downloaded 56, added 43
Progress: resolved 1275, reused 0, downloaded 89, added 83
Progress: resolved 1275, reused 0, downloaded 173, added 172
Progress: resolved 1275, reused 0, downloaded 264, added 257
Progress: resolved 1275, reused 0, downloaded 309, added 307
Progress: resolved 1275, reused 0, downloaded 333, added 322
Progress: resolved 1275, reused 0, downloaded 350, added 344
Progress: resolved 1275, reused 0, downloaded 392, added 382
Progress: resolved 1275, reused 0, downloaded 405, added 392
Progress: resolved 1275, reused 0, downloaded 406, added 392
Progress: resolved 1275, reused 0, downloaded 482, added 469
Progress: resolved 1275, reused 0, downloaded 502, added 492
Progress: resolved 1275, reused 0, downloaded 608, added 605
Progress: resolved 1275, reused 0, downloaded 624, added 614
Progress: resolved 1275, reused 0, downloaded 685, added 680
Progress: resolved 1275, reused 0, downloaded 821, added 813
Progress: resolved 1275, reused 0, downloaded 877, added 866
Progress: resolved 1275, reused 0, downloaded 935, added 931
Progress: resolved 1275, reused 0, downloaded 1137, added 1131
Progress: resolved 1275, reused 0, downloaded 1196, added 1190
Progress: resolved 1275, reused 0, downloaded 1210, added 1196
Progress: resolved 1275, reused 0, downloaded 1272, added 1271
Progress: resolved 1275, reused 0, downloaded 1273, added 1273
Progress: resolved 1275, reused 0, downloaded 1275, added 1275, done
.../node_modules/msw postinstall$ node -e "import('./config/scripts/postinstall.js').catch(() => void 0)"
.../sharp@0.34.5/node_modules/sharp install$ node install/check.js || npm run build
.../esbuild@0.25.12/node_modules/esbuild postinstall$ node install.js
.../esbuild@0.27.3/node_modules/esbuild postinstall$ node install.js
.../esbuild@0.18.20/node_modules/esbuild postinstall$ node install.js
.../node_modules/msw postinstall: Done
.../esbuild@0.27.3/node_modules/esbuild postinstall: Done
.../esbuild@0.18.20/node_modules/esbuild postinstall: Done
.../sharp@0.34.5/node_modules/sharp install: Done
.../esbuild@0.25.12/node_modules/esbuild postinstall: Done
.../node_modules/core-js-pure postinstall$ node -e "try{require('./postinstall')}catch(e){}"
.../node_modules/core-js-pure postinstall: Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
.../node_modules/core-js-pure postinstall: The project needs your help! Please consider supporting core-js:
.../node_modules/core-js-pure postinstall: > https://opencollective.com/core-js
.../node_modules/core-js-pure postinstall: > https://patreon.com/zloirock
.../node_modules/core-js-pure postinstall: > https://boosty.to/zloirock
.../node_modules/core-js-pure postinstall: > bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz
.../node_modules/core-js-pure postinstall: I highly recommend reading this: https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md
.../node_modules/core-js-pure postinstall: Done
devDependencies:
+ @workspace/eslint-config 0.0.0 <- packages/eslint-config
+ @workspace/typescript-config 0.0.0 <- packages/typescript-config
+ prettier 3.8.1
+ prettier-plugin-tailwindcss 0.7.4
+ turbo 2.9.6
+ typescript 5.9.3
+ vitest 4.1.5
Done in 31.5s using pnpm v9.15.9
> open-git@0.0.1 test /workspace/repo
> turbo test
• Packages in scope: @opengit/cli, @opengit/runner, @workspace/ci-runner-executor, @workspace/code-storage, @workspace/eslint-config, @workspace/git-graph, @workspace/git-indexing, @workspace/typescript-config, @workspace/ui, @workspace/workflows, campfire-gateway, git-gateway, git-worker, managed-runner, web
• Running test in 15 packages
• Remote caching disabled
@workspace/workflows:test: cache miss, executing dad8c67f12aee0f4
@workspace/git-indexing:test: cache miss, executing 5caa1dcb7ab0396e
@workspace/code-storage:test: cache miss, executing 5a10ec3726e9f6de
@workspace/workflows:test:
@workspace/workflows:test: > @workspace/workflows@0.0.0 test /workspace/repo/packages/workflows
@workspace/workflows:test: > vitest run
@workspace/workflows:test:
@workspace/code-storage:test:
@workspace/code-storage:test: > @workspace/code-storage@0.0.0 test /workspace/repo/packages/code-storage
@workspace/code-storage:test: > vitest run
@workspace/code-storage:test:
@workspace/git-indexing:test:
@workspace/git-indexing:test: > @workspace/git-indexing@0.0.0 test /workspace/repo/packages/git-indexing
@workspace/git-indexing:test: > vitest run
@workspace/git-indexing:test:
@workspace/workflows:test:
@workspace/workflows:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/workflows[39m
@workspace/workflows:test:
@workspace/code-storage:test:
@workspace/code-storage:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/code-storage[39m
@workspace/code-storage:test:
@workspace/git-indexing:test:
@workspace/git-indexing:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/git-indexing[39m
@workspace/git-indexing:test:
@workspace/git-indexing:test: [32m✓[39m src/index.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 5[2mms[22m[39m
@workspace/git-indexing:test:
@workspace/git-indexing:test: [2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/git-indexing:test: [2m Tests [22m [1m[32m3 passed[39m[22m[90m (3)[39m
@workspace/git-indexing:test: [2m Start at [22m 10:45:51
@workspace/git-indexing:test: [2m Duration [22m 310ms[2m (transform 45ms, setup 0ms, import 66ms, tests 5ms, environment 0ms)[22m
@workspace/git-indexing:test:
@workspace/workflows:test: [32m✓[39m src/index.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 14[2mms[22m[39m
@workspace/workflows:test: [32m✓[39m src/repo-workflows.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 24[2mms[22m[39m
@workspace/workflows:test:
@workspace/workflows:test: [2m Test Files [22m [1m[32m2 passed[39m[22m[90m (2)[39m
@workspace/workflows:test: [2m Tests [22m [1m[32m4 passed[39m[22m[90m (4)[39m
@workspace/workflows:test: [2m Start at [22m 10:45:51
@workspace/workflows:test: [2m Duration [22m 398ms[2m (transform 143ms, setup 0ms, import 278ms, tests 38ms, environment 0ms)[22m
@workspace/workflows:test:
@workspace/code-storage:test: [32m✓[39m src/repo.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 84[2mms[22m[39m
@workspace/code-storage:test:
@workspace/code-storage:test: [2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/code-storage:test: [2m Tests [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/code-storage:test: [2m Start at [22m 10:45:51
@workspace/code-storage:test: [2m Duration [22m 530ms[2m (transform 106ms, setup 0ms, import 221ms, tests 84ms, environment 0ms)[22m
@workspace/code-storage:test:
web:test: cache miss, executing 5e33ce80d4aedd9e
git-gateway:test: cache miss, executing 3bcfeb3640452888
git-gateway:test:
git-gateway:test: > git-gateway@0.0.1 test /workspace/repo/apps/git-gateway
git-gateway:test: > vitest run
git-gateway:test:
web:test:
web:test: > web@0.0.1 test /workspace/repo/apps/web
web:test: > vitest run
web:test:
git-gateway:test:
git-gateway:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/apps/git-gateway[39m
git-gateway:test:
web:test:
web:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/apps/web[39m
web:test:
git-gateway:test: [2m[90m↓[39m[22m src/gateway.integration.test.ts [2m([22m[2m1 test[22m[2m | [22m[33m1 skipped[39m[2m)[22m
git-gateway:test:
git-gateway:test: [2m Test Files [22m [33m1 skipped[39m[90m (1)[39m
git-gateway:test: [2m Tests [22m [33m1 skipped[39m[90m (1)[39m
git-gateway:test: [2m Start at [22m 10:45:52
git-gateway:test: [2m Duration [22m 234ms[2m (transform 41ms, setup 0ms, import 61ms, tests 0ms, environment 0ms)[22m
git-gateway:test:
web:test: [32m✓[39m lib/resource-query.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 9[2mms[22m[39m
web:test: [32m✓[39m lib/campfire-message-segments.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 8[2mms[22m[39m
web:test: [32m✓[39m lib/repository-validation.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
web:test: [32m✓[39m lib/repository-docs-markdown.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 21[2mms[22m[39m
web:test: [32m✓[39m lib/line-diff.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 4[2mms[22m[39m
web:test: [32m✓[39m lib/markdown.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 22[2mms[22m[39m
web:test:
web:test: [2m Test Files [22m [1m[32m6 passed[39m[22m[90m (6)[39m
web:test: [2m Tests [22m [1m[32m27 passed[39m[22m[90m (27)[39m
web:test: [2m Start at [22m 10:45:52
web:test: [2m Duration [22m 617ms[2m (transform 165ms, setup 0ms, import 599ms, tests 68ms, environment 1ms)[22m
web:test:
Tasks: 5 successful, 5 total
Cached: 0 cached, 5 total
Time: 3.257s
0010 10:45:53 AM [stderr] bash: line 3: corepack: command not found
npm notice
npm notice New major version of npm available! 11.13.0 -> 12.0.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.1
npm notice To update run: npm install -g npm@12.0.1
npm notice
Attention:
Turborepo now collects completely anonymous telemetry regarding usage.
This information is used to shape the Turborepo roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://turborepo.dev/docs/telemetry
• turbo 2.9.6
0011 10:45:53 AM [system] initial tests exited 0.
0012 10:46:26 AM [agent] Step 1: run: Inspect the PR's focused changes before reproducing the failed web build.
0013 10:46:26 AM [system] $ agent step 1
0014 10:46:26 AM [stdout] .../[username]/[repository]/discussions/page.tsx | 75 -
.../[username]/[repository]/repository-tabs.tsx | 8 -
apps/web/drizzle/meta/0020_snapshot.json | 5403 ++++++++++++++++++++
3 files changed, 5403 insertions(+), 83 deletions(-)
D apps/web/app/[username]/[repository]/discussions/page.tsx
M apps/web/app/[username]/[repository]/repository-tabs.tsx
A apps/web/drizzle/meta/0020_snapshot.json
0015 10:46:26 AM [system] agent step 1 exited 0.
0016 10:46:30 AM [agent] Step 2: run: Reproduce the failing web build locally with the CI environment to obtain the actual compiler error.
0017 10:46:30 AM [system] $ agent step 2
0018 10:46:30 AM [stderr] bash: line 1: pnpm: command not found
0019 10:46:30 AM [system] agent step 2 exited 127.
0020 10:46:37 AM [agent] Step 3: run: Reproduce the CI web build using the repository's pinned pnpm version, since pnpm is not installed globally.
0021 10:46:37 AM [system] $ agent step 3
0022 10:47:23 AM [stdout]
> web@0.0.1 build /workspace/repo/apps/web
> next build
⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry
▲ Next.js 16.1.6 (Turbopack)
Creating an optimized production build ...
✓ Compiled successfully in 29.3s
Running TypeScript ...
Collecting page data using 3 workers ...
/workspace/repo/apps/web:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL web@0.0.1 build: `next build`
Exit status 1
0023 10:47:23 AM [stderr] ⚠ The "middleware" file convention is deprecated. Please use "proxy" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
Error: Failed to collect configuration for /_not-found
at ignore-listed frames {
[cause]: Error: Welcome to Stack Auth! It seems that you haven't provided a project ID. Please create a project on the Stack dashboard at https://app.stack-auth.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable.
at L (.next/server/chunks/ssr/_1e2dcb48._.js:1538:5618)
at <unknown> (.next/server/chunks/ssr/_1e2dcb48._.js:4360:12071)
at new bH (.next/server/chunks/ssr/_1e2dcb48._.js:4360:12219)
at module evaluation (.next/server/chunks/ssr/_1e2dcb48._.js:4360:71407)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
at Context.esmImport [as i] (.next/server/chunks/ssr/[turbopack]_runtime.js:228:20)
at module evaluation (.next/server/chunks/ssr/[root-of-the-server]__ba81a15b._.js:1:279841)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
}
> Build error occurred
Error: Failed to collect page data for /_not-found
at ignore-listed frames {
type: 'Error'
}
0024 10:47:23 AM [system] agent step 3 exited 1.
0025 10:47:31 AM [agent] Step 4: run: Identify the Stack Auth build-time configuration and inspect whether dropping discussions exposed an import or environment dependency.
0026 10:47:31 AM [system] $ agent step 4
0027 10:47:31 AM [stdout] apps/web/.env.example:1:NEXT_PUBLIC_STACK_PROJECT_ID=
apps/web/node_modules/@stackframe/stack/README.md:19: NEXT_PUBLIC_STACK_PROJECT_ID=<your-project-id>
apps/web/node_modules/@stackframe/stack/dist/components-page/cli-auth-confirm.js.map:1:{"version":3,"file":"cli-auth-confirm.js","names":["stackAppInternalsSymbol","MessageCard","Typography"],"sources":["../../src/components-page/cli-auth-confirm.tsx"],"sourcesContent":["'use client';\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { Typography } from \"@stackframe/stack-ui\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { type StackClientApp, stackAppInternalsSymbol, useStackApp } from \"..\";\nimport { MessageCard } from \"../components/message-cards/message-card\";\nimport { useTranslation } from \"../lib/translations\";\n\nasync function postCliAuthComplete(app: StackClientApp, body: Record<string, unknown>) {\n return await app[stackAppInternalsSymbol].sendRequest(\"/auth/cli/complete\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n}\n\nasync function ensureCliCompleteOk(result: Response) {\n if (!result.ok) {\n throw new Error(`Authorization failed: ${result.status} ${await result.text()}`);\n }\n}\n\nasync function completeCliAuthWithRefreshToken(app: StackClientApp, loginCode: string, refreshToken: string) {\n const result = await postCliAuthComplete(app, { login_code: loginCode, refresh_token: refreshToken });\n await ensureCliCompleteOk(result);\n}\n\nfunction markUrlConfirmed() {\n const url = new URL(window.location.href);\n url.searchParams.set(\"confirmed\", \"true\");\n window.history.replaceState({}, \"\", url.toString());\n}\n\nexport function CliAuthConfirmation({ fullPage = true }: { fullPage?: boolean }) {\n const { t } = useTranslation();\n const app = useStackApp();\n const user = app.useUser({ includeRestricted: true });\n const [authorizing, setAuthorizing] = useState(false);\n const [success, setSuccess] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const autoCompleteRef = useRef(false);\n\n const [loginCode] = useState(() => {\n if (typeof window === 'undefined') return null;\n return new URLSearchParams(window.location.search).get(\"login_code\");\n });\n const [confirmed] = useState(() => {\n if (typeof window === 'undefined') return false;\n return new URLSearchParams(window.location.search).get(\"confirmed\") === \"true\";\n });\n\n useEffect(() => {\n if (!confirmed || !user || autoCompleteRef.current) {\n return;\n }\n autoCompleteRef.current = true;\n runAsynchronouslyWithAlert(async () => {\n setAuthorizing(true);\n try {\n if (!loginCode) {\n throw new Error(\"Missing login code in URL parameters\");\n }\n const refreshToken = (await user.currentSession.getTokens()).refreshToken;\n if (!refreshToken) {\n throw new Error(\"Could not retrieve session token\");\n }\n await completeCliAuthWithRefreshToken(app, loginCode, refreshToken);\n setSuccess(true);\n } catch (err) {\n setError(err as Error);\n } finally {\n setAuthorizing(false);\n }\n });\n }, [confirmed, user, loginCode, app]);\n\n const handleAuthorize = async () => {\n if (authorizing) {\n return;\n }\n setAuthorizing(true);\n try {\n if (!loginCode) {\n throw new Error(\"Missing login code in URL parameters\");\n }\n\n if (user) {\n const refreshToken = (await user.currentSession.getTokens()).refreshToken;\n if (!refreshToken) {\n throw new Error(\"Could not retrieve session token\");\n }\n await completeCliAuthWithRefreshToken(app, loginCode, refreshToken);\n setSuccess(true);\n return;\n }\n\n const checkResult = await postCliAuthComplete(app, { login_code: loginCode, mode: \"check\" });\n if (!checkResult.ok) {\n throw new Error(`Failed to verify login code: ${checkResult.status} ${await checkResult.text()}`);\n }\n const checkData = await checkResult.json();\n const cliSessionState: string | null = checkData.cli_session_state ?? null;\n\n if (cliSessionState === \"anonymous\") {\n const claimResult = await postCliAuthComplete(app, { login_code: loginCode, mode: \"claim-anon-session\" });\n\n if (!claimResult.ok) {\n throw new Error(`Failed to claim anonymous session: ${claimResult.status} ${await claimResult.text()}`);\n }\n\n const tokens = await claimResult.json();\n await app[stackAppInternalsSymbol].signInWithTokens({\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token,\n });\n // Only mark the URL as confirmed once the anon session is actually\n // bound to the browser; otherwise a failure above would leave a stale\n // confirmed=true in the URL and the auto-complete effect would later\n // bind the CLI to whichever user happens to be signed in.\n markUrlConfirmed();\n await app.redirectToSignUp({ replace: true });\n return;\n }\n\n markUrlConfirmed();\n await app.redirectToSignIn({ replace: true });\n } catch (err) {\n setError(err as Error);\n } finally {\n setAuthorizing(false);\n }\n };\n\n if (success) {\n return (\n <MessageCard title={t(\"CLI Authorization Successful\")} fullPage={fullPage}>\n <Typography>\n {t(\"The CLI application has been authorized successfully. You can close this window and return to the command line.\")}\n </Typography>\n </MessageCard>\n );\n }\n\n if (error) {\n return (\n <MessageCard\n title={t(\"Authorization Failed\")}\n fullPage={fullPage}\n primaryButtonText={t(\"Try Again\")}\n primaryAction={() => {\n setError(null);\n autoCompleteRef.current = false;\n }}\n >\n <Typography className=\"text-red-600\">\n {t(\"Failed to authorize the CLI application:\")}\n </Typography>\n <Typography className=\"text-red-600\">\n {error.message}\n </Typography>\n </MessageCard>\n );\n }\n\n if (confirmed && authorizing) {\n return (\n <MessageCard title={t(\"Completing Authorization...\")} fullPage={fullPage}>\n <Typography>\n {t(\"Finishing up the CLI authorization...\")}\n </Typography>\n </MessageCard>\n );\n }\n\n return (\n <MessageCard\n title={t(\"Authorize CLI Application\")}\n fullPage={fullPage}\n primaryButtonText={authorizing ? t(\"Authorizing...\") : t(\"Authorize\")}\n primaryAction={handleAuthorize}\n >\n <Typography>\n {t(\"A command line application is requesting access to your account. Click the button below to authorize it.\")}\n </Typography>\n <Typography variant=\"destructive\">\n {t(\"WARNING: Make sure you trust the command line application, as it will gain access to your account. If you did not initiate this request, you can close this page and ignore it. We will never send you this link via email or any other means.\")}\n </Typography>\n </MessageCard>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,eAAe,oBAAoB,KAAqB,MAA+B;AACrF,QAAO,MAAM,IAAIA,qCAAyB,YAAY,sBAAsB;EAC1E,QAAQ;EACR,SAAS,EAAE,gBAAgB,oBAAoB;EAC/C,MAAM,KAAK,UAAU,KAAK;EAC3B,CAAC;;AAGJ,eAAe,oBAAoB,QAAkB;AACnD,KAAI,CAAC,OAAO,GACV,OAAM,IAAI,MAAM,yBAAyB,OAAO,OAAO,GAAG,MAAM,OAAO,MAAM,GAAG;;AAIpF,eAAe,gCAAgC,KAAqB,WAAmB,cAAsB;AAE3G,OAAM,oBADS,MAAM,oBAAoB,KAAK;EAAE,YAAY;EAAW,eAAe;EAAc,CAAC,CACpE;;AAGnC,SAAS,mBAAmB;CAC1B,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,KAAI,aAAa,IAAI,aAAa,OAAO;AACzC,QAAO,QAAQ,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;;AAGrD,SAAgB,oBAAoB,EAAE,WAAW,QAAgC;CAC/E,MAAM,EAAE,kDAAsB;CAC9B,MAAM,oCAAmB;CACzB,MAAM,OAAO,IAAI,QAAQ,EAAE,mBAAmB,MAAM,CAAC;CACrD,MAAM,CAAC,aAAa,sCAA2B,MAAM;CACrD,MAAM,CAAC,SAAS,kCAAuB,MAAM;CAC7C,MAAM,CAAC,OAAO,gCAAmC,KAAK;CACtD,MAAM,oCAAyB,MAAM;CAErC,MAAM,CAAC,uCAA4B;AACjC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,IAAI,gBAAgB,OAAO,SAAS,OAAO,CAAC,IAAI,aAAa;GACpE;CACF,MAAM,CAAC,uCAA4B;AACjC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,IAAI,gBAAgB,OAAO,SAAS,OAAO,CAAC,IAAI,YAAY,KAAK;GACxE;AAEF,4BAAgB;AACd,MAAI,CAAC,aAAa,CAAC,QAAQ,gBAAgB,QACzC;AAEF,kBAAgB,UAAU;AAC1B,+EAA2B,YAAY;AACrC,kBAAe,KAAK;AACpB,OAAI;AACF,QAAI,CAAC,UACH,OAAM,IAAI,MAAM,uCAAuC;IAEzD,MAAM,gBAAgB,MAAM,KAAK,eAAe,WAAW,EAAE;AAC7D,QAAI,CAAC,aACH,OAAM,IAAI,MAAM,mCAAmC;AAErD,UAAM,gCAAgC,KAAK,WAAW,aAAa;AACnE,eAAW,KAAK;YACT,KAAK;AACZ,aAAS,IAAa;aACd;AACR,mBAAe,MAAM;;IAEvB;IACD;EAAC;EAAW;EAAM;EAAW;EAAI,CAAC;CAErC,MAAM,kBAAkB,YAAY;AAClC,MAAI,YACF;AAEF,iBAAe,KAAK;AACpB,MAAI;AACF,OAAI,CAAC,UACH,OAAM,IAAI,MAAM,uCAAuC;AAGzD,OAAI,MAAM;IACR,MAAM,gBAAgB,MAAM,KAAK,eAAe,WAAW,EAAE;AAC7D,QAAI,CAAC,aACH,OAAM,IAAI,MAAM,mCAAmC;AAErD,UAAM,gCAAgC,KAAK,WAAW,aAAa;AACnE,eAAW,KAAK;AAChB;;GAGF,MAAM,cAAc,MAAM,oBAAoB,KAAK;IAAE,YAAY;IAAW,MAAM;IAAS,CAAC;AAC5F,OAAI,CAAC,YAAY,GACf,OAAM,IAAI,MAAM,gCAAgC,YAAY,OAAO,GAAG,MAAM,YAAY,MAAM,GAAG;AAKnG,SAHkB,MAAM,YAAY,MAAM,EACO,qBAAqB,UAE9C,aAAa;IACnC,MAAM,cAAc,MAAM,oBAAoB,KAAK;KAAE,YAAY;KAAW,MAAM;KAAsB,CAAC;AAEzG,QAAI,CAAC,YAAY,GACf,OAAM,IAAI,MAAM,sCAAsC,YAAY,OAAO,GAAG,MAAM,YAAY,MAAM,GAAG;IAGzG,MAAM,SAAS,MAAM,YAAY,MAAM;AACvC,UAAM,IAAIA,qCAAyB,iBAAiB;KAClD,aAAa,OAAO;KACpB,cAAc,OAAO;KACtB,CAAC;AAKF,sBAAkB;AAClB,UAAM,IAAI,iBAAiB,EAAE,SAAS,MAAM,CAAC;AAC7C;;AAGF,qBAAkB;AAClB,SAAM,IAAI,iBAAiB,EAAE,SAAS,MAAM,CAAC;WACtC,KAAK;AACZ,YAAS,IAAa;YACd;AACR,kBAAe,MAAM;;;AAIzB,KAAI,QACF,QACE,2CAACC;EAAY,OAAO,EAAE,+BAA+B;EAAY;YAC/D,2CAACC,6CACE,EAAE,kHAAkH,GAC1G;GACD;AAIlB,KAAI,MACF,QACE,4CAACD;EACC,OAAO,EAAE,uBAAuB;EACtB;EACV,mBAAmB,EAAE,YAAY;EACjC,qBAAqB;AACnB,YAAS,KAAK;AACd,mBAAgB,UAAU;;aAG5B,2CAACC;GAAW,WAAU;aACnB,EAAE,2CAA2C;IACnC,EACb,2CAACA;GAAW,WAAU;aACnB,MAAM;IACI;GACD;AAIlB,KAAI,aAAa,YACf,QACE,2CAACD;EAAY,OAAO,EAAE,8BAA8B;EAAY;YAC9D,2CAACC,6CACE,EAAE,wCAAwC,GAChC;GACD;AAIlB,QACE,4CAACD;EACC,OAAO,EAAE,4BAA4B;EAC3B;EACV,mBAAmB,cAAc,EAAE,iBAAiB,GAAG,EAAE,YAAY;EACrE,eAAe;aAEf,2CAACC,6CACE,EAAE,2GAA2G,GACnG,EACb,2CAACA;GAAW,SAAQ;aACjB,EAAE,iPAAiP;IACzO;GACD"}
apps/web/node_modules/@stackframe/stack/dist/components-page/stack-handler-client.js.map:1:{"version":3,"file":"stack-handler-client.js","names":["SignIn","SignUp","EmailVerification","PasswordReset","ForgotPassword","SignOut","OAuthCallback","MagicLinkCallback","TeamInvitation","AccountSettings","ErrorPage","CliAuthConfirmation","MFA","Onboarding","StackAssertionError","stackAppInternalsSymbol","RedirectType"],"sources":["../../src/components-page/stack-handler-client.tsx"],"sourcesContent":["\"use client\";\n\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY, INSTEAD EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n\nimport { StackAssertionError } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { FilterUndefined, filterUndefined } from \"@stackframe/stack-shared/dist/utils/objects\";\nimport { getRelativePart } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { notFound, redirect, RedirectType, usePathname, useSearchParams } from 'next/navigation'; // THIS_LINE_PLATFORM next\nimport { useMemo } from 'react';\nimport { SignIn, SignUp, StackServerApp } from \"..\";\nimport { useStackApp } from \"../lib/hooks\";\nimport { HandlerUrls, StackClientApp, stackAppInternalsSymbol } from \"../lib/stack-app\";\nimport { isLocalHandlerUrlTarget, resolveUnknownHandlerPathFallbackUrl } from \"../lib/stack-app/url-targets\";\nimport { AccountSettings } from \"./account-settings\";\nimport { CliAuthConfirmation } from \"./cli-auth-confirm\";\nimport { EmailVerification } from \"./email-verification\";\nimport { ErrorPage } from \"./error-page\";\nimport { ForgotPassword } from \"./forgot-password\";\nimport { MagicLinkCallback } from \"./magic-link-callback\";\nimport { MFA } from \"./mfa\";\nimport { OAuthCallback } from \"./oauth-callback\";\nimport { Onboarding } from \"./onboarding\";\nimport { PasswordReset } from \"./password-reset\";\nimport { SignOut } from \"./sign-out\";\nimport { TeamInvitation } from \"./team-invitation\";\n\n\ntype Components = {\n SignIn: typeof SignIn,\n SignUp: typeof SignUp,\n EmailVerification: typeof EmailVerification,\n PasswordReset: typeof PasswordReset,\n ForgotPassword: typeof ForgotPassword,\n SignOut: typeof SignOut,\n OAuthCallback: typeof OAuthCallback,\n MagicLinkCallback: typeof MagicLinkCallback,\n TeamInvitation: typeof TeamInvitation,\n ErrorPage: typeof ErrorPage,\n AccountSettings: typeof AccountSettings,\n CliAuthConfirmation: typeof CliAuthConfirmation,\n MFA: typeof MFA,\n Onboarding: typeof Onboarding,\n};\n\ntype RouteProps = {\n params: Promise<{ stack?: string[] }> | { stack?: string[] },\n searchParams: Promise<Record<string, string>> | Record<string, string>,\n};\n\nconst availablePaths = {\n signIn: 'sign-in',\n signUp: 'sign-up',\n emailVerification: 'email-verification',\n passwordReset: 'password-reset',\n forgotPassword: 'forgot-password',\n signOut: 'sign-out',\n oauthCallback: 'oauth-callback',\n magicLinkCallback: 'magic-link-callback',\n teamInvitation: 'team-invitation',\n accountSettings: 'account-settings',\n cliAuthConfirm: 'cli-auth-confirm',\n mfa: 'mfa',\n error: 'error',\n onboarding: 'onboarding',\n} as const;\n\nconst placeholderOrigin = \"http://example.com\";\n\nconst pathAliases = {\n // also includes the uppercase and non-dashed versions\n ...Object.fromEntries(Object.entries(availablePaths).map(([key, value]) => [value, value])),\n \"log-in\": availablePaths.signIn,\n \"register\": availablePaths.signUp,\n} as const;\n\nexport type BaseHandlerProps = {\n fullPage: boolean,\n componentProps?: {\n [K in keyof Components]?: Parameters<Components[K]>[0];\n },\n};\n\nfunction renderComponent(props: {\n path: string,\n searchParams: Record<string, string>,\n fullPage: boolean,\n componentProps?: BaseHandlerProps['componentProps'],\n redirectIfNotHandler?: (name: keyof HandlerUrls) => void,\n getDefaultUnknownPathUrl?: (path: string) => string | null,\n onNotFound: () => any,\n app: StackClientApp<any> | StackServerApp<any>,\n}) {\n const { path, searchParams, fullPage, componentProps, redirectIfNotHandler, getDefaultUnknownPathUrl, onNotFound, app } = props;\n\n switch (path) {\n case availablePaths.signIn: {\n redirectIfNotHandler?.('signIn');\n return <SignIn\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignIn)}\n />;\n }\n case availablePaths.signUp: {\n redirectIfNotHandler?.('signUp');\n return <SignUp\n fullPage={fullPage}\n automaticRedirect\n {...filterUndefinedINU(componentProps?.SignUp)}\n />;\n }\n case availablePaths.emailVerification: {\n redirectIfNotHandler?.('emailVerification');\n return <EmailVerification\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.EmailVerification)}\n />;\n }\n case availablePaths.passwordReset: {\n redirectIfNotHandler?.('passwordReset');\n return <PasswordReset\n searchParams={searchParams}\n fullPage={fullPage}\n {...filterUndefinedINU(componentProps?.PasswordReset)}\n />;\n }\n case availablePaths.forgotPassword: {\n redirectIfNotHandler?.('forgotPassword');\n return <ForgotPassword\n fullPage={fullPage}\n {...filterUn
...[truncated 484496 chars]
0028 10:47:31 AM [system] agent step 4 exited 0.
0029 10:47:39 AM [agent] Step 5: run: Inspect the application's auth initialization and the newly added migration snapshot without node_modules noise.
0030 10:47:39 AM [system] $ agent step 5
0031 10:47:39 AM [stdout] apps/web/.env.example:1:NEXT_PUBLIC_STACK_PROJECT_ID=
apps/web/.env.example:2:STACK_SECRET_SERVER_KEY=
apps/web/stack.ts:5:export const stackServerApp = new StackServerApp({
--- PR diff ---
diff --git a/apps/web/app/[username]/[repository]/repository-tabs.tsx b/apps/web/app/[username]/[repository]/repository-tabs.tsx
index edf5b34..df962ff 100644
--- a/apps/web/app/[username]/[repository]/repository-tabs.tsx
+++ b/apps/web/app/[username]/[repository]/repository-tabs.tsx
@@ -5,7 +5,6 @@ import {
IconFileText,
IconFlame,
IconGitPullRequest,
- IconMessageCircle,
IconSettings,
IconSitemap,
} from "@tabler/icons-react"
@@ -58,13 +57,6 @@ export function RepositoryTabs({
isActive: pathname.startsWith(`${baseHref}/pulls`),
label: "Pull requests",
},
- {
- count: 0,
- href: `${baseHref}/discussions`,
- icon: <IconMessageCircle />,
- isActive: pathname.startsWith(`${baseHref}/discussions`),
- label: "Discussions",
- },
...(campfireEnabled
? [
{
--- snapshot headers ---
{
"id": "46dad2cb-b312-4000-b37f-ce189c2bfeab",
"prevId": "38f967ee-7b96-4564-98da-6f0fa2b4e05e",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.branches": {
"name": "branches",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"repository_id": {
"name": "repository_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true
},
"commit_sha": {
-rw-r--r-- 1 root root 75966 Jul 18 10:45 0011_snapshot.json
-rw-r--r-- 1 root root 138161 Jul 18 10:45 0015_snapshot.json
-rw-r--r-- 1 root root 138157 Jul 18 10:45 0016_snapshot.json
-rw-r--r-- 1 root root 135457 Jul 18 10:45 0017_snapshot.json
-rw-r--r-- 1 root root 141352 Jul 18 10:45 0018_snapshot.json
-rw-r--r-- 1 root root 142385 Jul 18 10:45 0019_snapshot.json
-rw-r--r-- 1 root root 147595 Jul 18 10:45 0020_snapshot.json
-rw-r--r-- 1 root root 3146 Jul 18 10:45 _journal.json
0032 10:47:39 AM [system] agent step 5 exited 0.
0033 10:47:44 AM [agent] Step 6: run: Determine valid placeholder auth configuration and verify whether the added snapshot has a matching migration journal entry before continuing the build.
0034 10:47:44 AM [system] $ agent step 6
0035 10:47:45 AM [stdout] import { StackServerApp } from "@stackframe/stack"
import { isWaitlistEnabled } from "@/lib/waitlist-config"
export const stackServerApp = new StackServerApp({
tokenStore: "nextjs-cookie",
urls: {
accountSettings: { type: "custom", url: "/settings/account", version: 1 },
signIn: "/handler/sign-in",
signUp: "/sign-up",
afterSignIn: "/",
afterSignUp: isWaitlistEnabled() ? "/waitlist" : "/onboarding",
},
})
NEXT_PUBLIC_STACK_PROJECT_ID=
STACK_SECRET_SERVER_KEY=
APP_URL=http://localhost:3000
CAMPFIRE_WS_TOKEN_SECRET=dev-campfire-token-secret-change-me
NEXT_PUBLIC_CAMPFIRE_WS_URL=ws://localhost:4322
WAITLIST_ENABLED=true
WAITLIST_ADMIN_TOKEN=
WAITLIST_KEY_SECRET=
DATABASE_URL=postgresql://opengit:opengit@localhost:54329/opengit
CODE_STORAGE_BUCKET=opengit-code-storage
CODE_STORAGE_REGION=us-east-1
CODE_STORAGE_S3_ENDPOINT=http://localhost:9000
CODE_STORAGE_ACCESS_KEY_ID=opengit
CODE_STORAGE_SECRET_ACCESS_KEY=opengit_password
GIT_REMOTE_BASE_URL=http://localhost:4321
GIT_GATEWAY_PORT=4321
GIT_GATEWAY_CACHE_ROOT=.git-gateway-cache
"tag": "0015_ci_workflow_runners",
"breakpoints": true
},
{
"idx": 16,
"version": "7",
"when": 1778657190072,
"tag": "0016_burly_boomerang",
"breakpoints": true
},
{
"idx": 17,
"version": "7",
"when": 1778857090941,
"tag": "0017_drop_pull_request_checks",
"breakpoints": true
},
{
"idx": 18,
"version": "7",
"when": 1778974575197,
"tag": "0018_campfire",
"breakpoints": true
},
{
"idx": 19,
"version": "7",
"when": 1778975000851,
"tag": "0019_campfire_replies",
"breakpoints": true
},
{
"idx": 20,
"version": "7",
"when": 1778980000000,
"tag": "0020_campfire_thread_mentions",
"breakpoints": true
}
]
}diff --git a/apps/web/drizzle/meta/0020_snapshot.json b/apps/web/drizzle/meta/0020_snapshot.json
new file mode 100644
index 0000000..6f018cf
--- /dev/null
+++ b/apps/web/drizzle/meta/0020_snapshot.json
@@ -0,0 +1,5403 @@
+{
+ "id": "46dad2cb-b312-4000-b37f-ce189c2bfeab",
+ "prevId": "38f967ee-7b96-4564-98da-6f0fa2b4e05e",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.branches": {
+ "name": "branches",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "repository_id": {
+ "name": "repository_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "commit_sha": {
+ "name": "commit_sha",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "last_indexed_at": {
+ "name": "last_indexed_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "branches_repository_name_idx": {
+ "name": "branches_repository_name_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
{
"idx": 29,
"version": "7",
"when": 1781587235473,
"tag": "0029_happy_kronos",
"breakpoints": true
},
{
"idx": 30,
"version": "7",
"when": 1783855833037,
"tag": "0030_better_auth",
"breakpoints": true
},
{
"idx": 31,
"version": "7",
"when": 1783911516165,
"tag": "0031_serious_wolfpack",
"breakpoints": true
},
{
"idx": 32,
"version": "7",
"when": 1784095701346,
"tag": "0032_even_ezekiel",
"breakpoints": true
}
]
}
0036 10:47:45 AM [system] agent step 6 exited 0.
0037 10:47:51 AM [agent] Step 7: run: Continue reproducing the web build past the unrelated missing Stack Auth environment validation to reveal any PR-specific build error.
0038 10:47:51 AM [system] $ agent step 7
0039 10:48:30 AM [stdout]
> web@0.0.1 build /workspace/repo/apps/web
> next build
▲ Next.js 16.1.6 (Turbopack)
Creating an optimized production build ...
✓ Compiled successfully in 20.7s
Running TypeScript ...
Collecting page data using 3 workers ...
/workspace/repo/apps/web:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL web@0.0.1 build: `next build`
Exit status 1
0040 10:48:30 AM [stderr] ⚠ The "middleware" file convention is deprecated. Please use "proxy" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
Error: Failed to collect configuration for /_not-found
at ignore-listed frames {
[cause]: Error: Invalid project ID: buildtime. Project IDs must be UUIDs. Please check your environment variables and/or your StackApp.
at new a (.next/server/chunks/ssr/_1e2dcb48._.js:4359:8371)
at new bH (.next/server/chunks/ssr/_1e2dcb48._.js:4360:11915)
at module evaluation (.next/server/chunks/ssr/_1e2dcb48._.js:4360:71407)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
at Context.esmImport [as i] (.next/server/chunks/ssr/[turbopack]_runtime.js:228:20)
at module evaluation (.next/server/chunks/ssr/[root-of-the-server]__ba81a15b._.js:1:279841)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
at Context.esmImport [as i] (.next/server/chunks/ssr/[turbopack]_runtime.js:228:20)
}
> Build error occurred
Error: Failed to collect page data for /_not-found
at ignore-listed frames {
type: 'Error'
}
0041 10:48:30 AM [system] agent step 7 exited 1.
0042 10:48:44 AM [agent] Step 8: run: Compare the stale PR branch's Stack Auth setup with the target branch to determine whether the CI failure is caused by missing target updates that should be incorporated rather than patched independently.
0043 10:48:51 AM [system] Destroyed workspace fhxrsli1jfhjani62wmz.
0044 10:48:51 AM [system] Error: Autopilot command is outside allowed scope: printf '%s\n' '--- branches ---'; git branch --show-current; git rev-parse HEAD origin/main $(git merge-base HEAD origin/main); printf '%s\n' '--- source stack ---'; git log --oneline --decorate --max-count=8; printf '%s\n' '--- target stack ---'; git show origin/main:apps/web/stack.ts 2>/dev/null || echo 'stack.ts absent on target'; printf '%s\n' '--- target auth files ---'; git ls-tree -r --name-only origin/main apps/web | grep -E 'stack\.ts|auth' | head -40
at validateAgentCommand (/repo/apps/web/lib/pull-requests/autopilot/run.ts:714:11)
at runAgentLoop (/repo/apps/web/lib/pull-requests/autopilot/run.ts:315:5)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async runPrAutopilotJob (/repo/apps/web/lib/pull-requests/autopilot/run.ts:115:25)
at async main (/repo/apps/web/scripts/run-autopilot-worker.ts:33:7)
0045 10:48:51 AM [system] Claimed by autopilot-35.
0046 10:48:51 AM [system] Created short-lived repository token.
0047 10:48:52 AM [system] Created freestyle workspace jlnmyqp4qxjgxc710b71.
0048 10:48:52 AM [system] $ clone repository
0049 10:49:14 AM [stderr] Cloning into '/workspace/repo'...
0050 10:49:14 AM [system] clone repository exited 0.
0051 10:49:14 AM [system] $ initial tests
0052 10:49:54 AM [stdout] Scope: all 16 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1275
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1275, reused 0, downloaded 7, added 0
╭───────────────────────────────────────────────────────────────────╮
│ │
│ Update available! 9.15.9 → 11.14.0. │
│ Changelog: https://github.com/pnpm/pnpm/releases/tag/v11.14.0 │
│ Run "pnpm add -g pnpm" to update. │
│ │
╰───────────────────────────────────────────────────────────────────╯
Progress: resolved 1275, reused 0, downloaded 25, added 14
Progress: resolved 1275, reused 0, downloaded 153, added 144
Progress: resolved 1275, reused 0, downloaded 183, added 171
Progress: resolved 1275, reused 0, downloaded 229, added 223
Progress: resolved 1275, reused 0, downloaded 286, added 285
Progress: resolved 1275, reused 0, downloaded 318, added 307
Progress: resolved 1275, reused 0, downloaded 339, added 329
Progress: resolved 1275, reused 0, downloaded 340, added 329
Progress: resolved 1275, reused 0, downloaded 393, added 382
Progress: resolved 1275, reused 0, downloaded 404, added 393
Progress: resolved 1275, reused 0, downloaded 411, added 401
Progress: resolved 1275, reused 0, downloaded 464, added 454
Progress: resolved 1275, reused 0, downloaded 602, added 601
Progress: resolved 1275, reused 0, downloaded 646, added 635
Progress: resolved 1275, reused 0, downloaded 697, added 692
Progress: resolved 1275, reused 0, downloaded 760, added 755
Progress: resolved 1275, reused 0, downloaded 878, added 871
Progress: resolved 1275, reused 0, downloaded 884, added 876
Progress: resolved 1275, reused 0, downloaded 928, added 921
Progress: resolved 1275, reused 0, downloaded 1151, added 1150
Progress: resolved 1275, reused 0, downloaded 1174, added 1162
Progress: resolved 1275, reused 0, downloaded 1201, added 1192
Progress: resolved 1275, reused 0, downloaded 1267, added 1267
Progress: resolved 1275, reused 0, downloaded 1275, added 1275, done
.../esbuild@0.25.12/node_modules/esbuild postinstall$ node install.js
.../node_modules/msw postinstall$ node -e "import('./config/scripts/postinstall.js').catch(() => void 0)"
.../esbuild@0.18.20/node_modules/esbuild postinstall$ node install.js
.../esbuild@0.27.3/node_modules/esbuild postinstall$ node install.js
.../sharp@0.34.5/node_modules/sharp install$ node install/check.js || npm run build
.../node_modules/msw postinstall: Done
.../esbuild@0.25.12/node_modules/esbuild postinstall: Done
.../esbuild@0.18.20/node_modules/esbuild postinstall: Done
.../node_modules/core-js-pure postinstall$ node -e "try{require('./postinstall')}catch(e){}"
.../esbuild@0.27.3/node_modules/esbuild postinstall: Done
.../sharp@0.34.5/node_modules/sharp install: Done
.../node_modules/core-js-pure postinstall: Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
.../node_modules/core-js-pure postinstall: The project needs your help! Please consider supporting core-js:
.../node_modules/core-js-pure postinstall: > https://opencollective.com/core-js
.../node_modules/core-js-pure postinstall: > https://patreon.com/zloirock
.../node_modules/core-js-pure postinstall: > https://boosty.to/zloirock
.../node_modules/core-js-pure postinstall: > bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz
.../node_modules/core-js-pure postinstall: I highly recommend reading this: https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md
.../node_modules/core-js-pure postinstall: Done
devDependencies:
+ @workspace/eslint-config 0.0.0 <- packages/eslint-config
+ @workspace/typescript-config 0.0.0 <- packages/typescript-config
+ prettier 3.8.1
+ prettier-plugin-tailwindcss 0.7.4
+ turbo 2.9.6
+ typescript 5.9.3
+ vitest 4.1.5
Done in 31.2s using pnpm v9.15.9
> open-git@0.0.1 test /workspace/repo
> turbo test
• Packages in scope: @opengit/cli, @opengit/runner, @workspace/ci-runner-executor, @workspace/code-storage, @workspace/eslint-config, @workspace/git-graph, @workspace/git-indexing, @workspace/typescript-config, @workspace/ui, @workspace/workflows, campfire-gateway, git-gateway, git-worker, managed-runner, web
• Running test in 15 packages
• Remote caching disabled
@workspace/git-indexing:test: cache miss, executing 5caa1dcb7ab0396e
@workspace/code-storage:test: cache miss, executing 5a10ec3726e9f6de
@workspace/workflows:test: cache miss, executing dad8c67f12aee0f4
@workspace/workflows:test:
@workspace/workflows:test: > @workspace/workflows@0.0.0 test /workspace/repo/packages/workflows
@workspace/workflows:test: > vitest run
@workspace/workflows:test:
@workspace/code-storage:test:
@workspace/code-storage:test: > @workspace/code-storage@0.0.0 test /workspace/repo/packages/code-storage
@workspace/code-storage:test: > vitest run
@workspace/code-storage:test:
@workspace/git-indexing:test:
@workspace/git-indexing:test: > @workspace/git-indexing@0.0.0 test /workspace/repo/packages/git-indexing
@workspace/git-indexing:test: > vitest run
@workspace/git-indexing:test:
@workspace/workflows:test:
@workspace/code-storage:test:
@workspace/git-indexing:test:
@workspace/workflows:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/workflows[39m
@workspace/workflows:test:
@workspace/git-indexing:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/git-indexing[39m
@workspace/git-indexing:test:
@workspace/code-storage:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/code-storage[39m
@workspace/code-storage:test:
@workspace/git-indexing:test: [32m✓[39m src/index.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 15[2mms[22m[39m
@workspace/git-indexing:test:
@workspace/git-indexing:test: [2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/git-indexing:test: [2m Tests [22m [1m[32m3 passed[39m[22m[90m (3)[39m
@workspace/git-indexing:test: [2m Start at [22m 10:49:53
@workspace/git-indexing:test: [2m Duration [22m 268ms[2m (transform 51ms, setup 0ms, import 72ms, tests 15ms, environment 0ms)[22m
@workspace/git-indexing:test:
@workspace/workflows:test: [32m✓[39m src/index.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 13[2mms[22m[39m
@workspace/workflows:test: [32m✓[39m src/repo-workflows.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 24[2mms[22m[39m
@workspace/workflows:test:
@workspace/workflows:test: [2m Test Files [22m [1m[32m2 passed[39m[22m[90m (2)[39m
@workspace/workflows:test: [2m Tests [22m [1m[32m4 passed[39m[22m[90m (4)[39m
@workspace/workflows:test: [2m Start at [22m 10:49:53
@workspace/workflows:test: [2m Duration [22m 324ms[2m (transform 136ms, setup 0ms, import 255ms, tests 37ms, environment 0ms)[22m
@workspace/workflows:test:
@workspace/code-storage:test: [32m✓[39m src/repo.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 71[2mms[22m[39m
@workspace/code-storage:test:
@workspace/code-storage:test: [2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/code-storage:test: [2m Tests [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/code-storage:test: [2m Start at [22m 10:49:53
@workspace/code-storage:test: [2m Duration [22m 418ms[2m (transform 85ms, setup 0ms, import 176ms, tests 71ms, environment 0ms)[22m
@workspace/code-storage:test:
web:test: cache miss, executing 5e33ce80d4aedd9e
git-gateway:test: cache miss, executing 3bcfeb3640452888
git-gateway:test:
git-gateway:test: > git-gateway@0.0.1 test /workspace/repo/apps/git-gateway
git-gateway:test: > vitest run
git-gateway:test:
web:test:
web:test: > web@0.0.1 test /workspace/repo/apps/web
web:test: > vitest run
web:test:
web:test:
web:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/apps/web[39m
web:test:
git-gateway:test:
git-gateway:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/apps/git-gateway[39m
git-gateway:test:
web:test: [32m✓[39m lib/resource-query.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 17[2mms[22m[39m
web:test: [32m✓[39m lib/campfire-message-segments.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 7[2mms[22m[39m
git-gateway:test: [2m[90m↓[39m[22m src/gateway.integration.test.ts [2m([22m[2m1 test[22m[2m | [22m[33m1 skipped[39m[2m)[22m
git-gateway:test:
git-gateway:test: [2m Test Files [22m [33m1 skipped[39m[90m (1)[39m
git-gateway:test: [2m Tests [22m [33m1 skipped[39m[90m (1)[39m
git-gateway:test: [2m Start at [22m 10:49:54
git-gateway:test: [2m Duration [22m 238ms[2m (transform 36ms, setup 0ms, import 50ms, tests 0ms, environment 0ms)[22m
git-gateway:test:
web:test: [32m✓[39m lib/repository-docs-markdown.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 18[2mms[22m[39m
web:test: [32m✓[39m lib/repository-validation.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
web:test: [32m✓[39m lib/line-diff.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 4[2mms[22m[39m
web:test: [32m✓[39m lib/markdown.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 21[2mms[22m[39m
web:test:
web:test: [2m Test Files [22m [1m[32m6 passed[39m[22m[90m (6)[39m
web:test: [2m Tests [22m [1m[32m27 passed[39m[22m[90m (27)[39m
web:test: [2m Start at [22m 10:49:54
web:test: [2m Duration [22m 547ms[2m (transform 131ms, setup 0ms, import 541ms, tests 70ms, environment 1ms)[22m
web:test:
Tasks: 5 successful, 5 total
Cached: 0 cached, 5 total
Time: 2.616s
0053 10:49:54 AM [stderr] bash: line 3: corepack: command not found
npm notice
npm notice New major version of npm available! 11.13.0 -> 12.0.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.1
npm notice To update run: npm install -g npm@12.0.1
npm notice
Attention:
Turborepo now collects completely anonymous telemetry regarding usage.
This information is used to shape the Turborepo roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://turborepo.dev/docs/telemetry
• turbo 2.9.6
0054 10:49:54 AM [system] initial tests exited 0.
0055 10:50:03 AM [agent] Step 1: run: Inspect the pull request changes and current working tree before reproducing the failed web build.
0056 10:50:03 AM [system] $ agent step 1
0057 10:50:03 AM [stdout] .../[username]/[repository]/discussions/page.tsx | 75 -
.../[username]/[repository]/repository-tabs.tsx | 8 -
apps/web/drizzle/meta/0020_snapshot.json | 5403 ++++++++++++++++++++
3 files changed, 5403 insertions(+), 83 deletions(-)
a699915 Fix PR Autopilot findings
df1cae8 drop discussions
ae23bd2 Fix build, fix home page
251d5b1 fix: pass numeric file count to immersive PR files layout
50b4187 Update files changed page. ITS FAST. ITS PRETTY. Thanks Pierrecomputergit add .
0058 10:50:03 AM [system] agent step 1 exited 0.
0059 10:50:09 AM [agent] Step 2: run: Reproduce the failing web build with the CI environment to obtain the underlying compiler error.
0060 10:50:09 AM [system] $ agent step 2
0061 10:50:09 AM [stderr] bash: line 1: pnpm: command not found
0062 10:50:09 AM [system] agent step 2 exited 127.
0063 10:50:18 AM [agent] Step 3: run: Reproduce the CI web build using the repository's pinned pnpm version, since pnpm is not installed globally.
0064 10:50:18 AM [system] $ agent step 3
0065 10:51:02 AM [stdout]
> web@0.0.1 build /workspace/repo/apps/web
> next build
⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry
▲ Next.js 16.1.6 (Turbopack)
Creating an optimized production build ...
✓ Compiled successfully in 26.5s
Running TypeScript ...
Collecting page data using 3 workers ...
/workspace/repo/apps/web:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL web@0.0.1 build: `next build`
Exit status 1
0066 10:51:02 AM [stderr] ⚠ The "middleware" file convention is deprecated. Please use "proxy" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
Error: Failed to collect configuration for /_not-found
at ignore-listed frames {
[cause]: Error: Welcome to Stack Auth! It seems that you haven't provided a project ID. Please create a project on the Stack dashboard at https://app.stack-auth.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable.
at L (.next/server/chunks/ssr/_1e2dcb48._.js:1538:5618)
at <unknown> (.next/server/chunks/ssr/_1e2dcb48._.js:4360:12071)
at new bH (.next/server/chunks/ssr/_1e2dcb48._.js:4360:12219)
at module evaluation (.next/server/chunks/ssr/_1e2dcb48._.js:4360:71407)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
at Context.esmImport [as i] (.next/server/chunks/ssr/[turbopack]_runtime.js:228:20)
at module evaluation (.next/server/chunks/ssr/[root-of-the-server]__ba81a15b._.js:1:279841)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
}
> Build error occurred
Error: Failed to collect page data for /_not-found
at ignore-listed frames {
type: 'Error'
}
0067 10:51:02 AM [system] agent step 3 exited 1.
0068 10:51:05 AM [agent] Step 4: run: Locate the Stack Auth initialization and existing build-time environment conventions causing page data collection to fail.
0069 10:51:05 AM [system] $ agent step 4
0070 10:51:05 AM [stdout] apps/web/app/layout.tsx:6:import { stackServerApp } from "@/stack"
apps/web/app/layout.tsx:35: <StackProvider app={stackServerApp}>
apps/web/app/handler/[...stack]/page.tsx:4:import { stackServerApp } from "@/stack"
apps/web/app/handler/[...stack]/page.tsx:9: <StackHandler app={stackServerApp} fullPage routeProps={props} />
apps/web/app/sign-up/page.tsx:6:import { stackServerApp } from "@/stack"
apps/web/app/sign-up/page.tsx:11: const user = await stackServerApp.getUser()
apps/web/app/api/admin/approve/route.ts:4:import { stackServerApp } from "@/stack"
apps/web/app/api/admin/approve/route.ts:54: const user = await stackServerApp.getUser(userId)
apps/web/app/api/admin/approve/route.ts:75: await stackServerApp.sendEmail({
apps/web/app/onboarding/actions.ts:8:import { stackServerApp } from "@/stack"
apps/web/app/onboarding/actions.ts:29: const user = await stackServerApp.getUser({ or: "redirect" })
apps/web/app/onboarding/actions.ts:60: const user = await stackServerApp.getUser({ or: "redirect" })
apps/web/app/onboarding/ensure-onboarded.ts:7:import { stackServerApp } from "@/stack"
apps/web/app/onboarding/ensure-onboarded.ts:10: const user = await stackServerApp.getUser()
apps/web/app/onboarding/username-availability/route.ts:5:import { stackServerApp } from "@/stack"
apps/web/app/onboarding/username-availability/route.ts:8: const user = await stackServerApp.getUser()
apps/web/app/settings/account/account-settings-sections.tsx:116: Upload and crop; image is stored with your Stack Auth account.
apps/web/app/settings/account/account-settings-sections.tsx:155: // eslint-disable-next-line @next/next/no-img-element -- Stack Auth CDN / data URLs from profile editor.
apps/web/app/settings/account/account-settings-sections.tsx:1200: Upload and crop; stored with Stack Auth for this team.
apps/web/app/settings/account/account-settings-sections.tsx:1592: This permanently deletes your Stack Auth account and cannot be
apps/web/app/settings/layout.tsx:6:// Settings pages depend on Stack Auth client state (current user, project
apps/web/app/waitlist/actions.ts:8:import { stackServerApp } from "@/stack"
apps/web/app/waitlist/actions.ts:11: const user = await stackServerApp.getUser({ or: "redirect" })
apps/web/app/waitlist/page.tsx:10:import { stackServerApp } from "@/stack"
apps/web/app/waitlist/page.tsx:16: const user = await stackServerApp.getUser()
apps/web/middleware.ts:4:import { stackServerApp } from "@/stack"
apps/web/middleware.ts:31: const user = await stackServerApp.getUser()
apps/web/db/user-profiles.ts:5:import { stackServerApp } from "@/stack"
apps/web/db/user-profiles.ts:71: const user = await stackServerApp.getUser()
apps/web/.env.example:1:NEXT_PUBLIC_STACK_PROJECT_ID=
apps/web/components/settings-nav.tsx:216:/** SSR-safe fallback while Stack Auth hooks suspend (see NoSuspenseBoundaryError). */
apps/web/stack.ts:5:export const stackServerApp = new StackServerApp({
apps/web/.env.example
apps/web/stack.ts
0071 10:51:05 AM [system] agent step 4 exited 0.
0072 10:51:09 AM [agent] Step 5: run: Inspect auth configuration and the exact PR edits, especially the latest attempted build fix, to distinguish the reported regression from baseline environment requirements.
0073 10:51:09 AM [system] $ agent step 5
0074 10:51:10 AM [stdout] import { StackServerApp } from "@stackframe/stack"
import { isWaitlistEnabled } from "@/lib/waitlist-config"
export const stackServerApp = new StackServerApp({
tokenStore: "nextjs-cookie",
urls: {
accountSettings: { type: "custom", url: "/settings/account", version: 1 },
signIn: "/handler/sign-in",
signUp: "/sign-up",
afterSignIn: "/",
afterSignUp: isWaitlistEnabled() ? "/waitlist" : "/onboarding",
},
})
NEXT_PUBLIC_STACK_PROJECT_ID=
STACK_SECRET_SERVER_KEY=
APP_URL=http://localhost:3000
CAMPFIRE_WS_TOKEN_SECRET=dev-campfire-token-secret-change-me
NEXT_PUBLIC_CAMPFIRE_WS_URL=ws://localhost:4322
WAITLIST_ENABLED=true
WAITLIST_ADMIN_TOKEN=
WAITLIST_KEY_SECRET=
DATABASE_URL=postgresql://opengit:opengit@localhost:54329/opengit
CODE_STORAGE_BUCKET=opengit-code-storage
CODE_STORAGE_REGION=us-east-1
CODE_STORAGE_S3_ENDPOINT=http://localhost:9000
CODE_STORAGE_ACCESS_KEY_ID=opengit
CODE_STORAGE_SECRET_ACCESS_KEY=opengit_password
GIT_REMOTE_BASE_URL=http://localhost:4321
GIT_GATEWAY_PORT=4321
GIT_GATEWAY_CACHE_ROOT=.git-gateway-cache
diff --git a/apps/web/app/[username]/[repository]/discussions/page.tsx b/apps/web/app/[username]/[repository]/discussions/page.tsx
deleted file mode 100644
index 60d32db..0000000
--- a/apps/web/app/[username]/[repository]/discussions/page.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { IconMessageCircle } from "@tabler/icons-react"
-import { notFound } from "next/navigation"
-
-import { RepositoryShell } from "@/app/[username]/[repository]/repository-shell"
-import { getOnboardingStatus } from "@/app/onboarding/ensure-onboarded"
-import { countOpenIssuesForRepository } from "@/db/issues"
-import { countOpenPullRequestsForRepository } from "@/db/pull-requests"
-import { getRepositoryByOwnerAndSlug } from "@/db/repositories"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@workspace/ui/components/card"
-
-export const dynamic = "force-dynamic"
-
-type RepositoryDiscussionsPageProps = {
- params: Promise<{
- username: string
- repository: string
- }>
-}
-
-export default async function RepositoryDiscussionsPage({
- params,
-}: RepositoryDiscussionsPageProps) {
- const { username, repository: repositorySlug } = await params
- const repository = await getRepositoryByOwnerAndSlug(username, repositorySlug)
-
- if (!repository) {
- notFound()
- }
-
- const { profile } = await getOnboardingStatus()
- const isOwner = profile?.id === repository.ownerProfileId
-
- if (repository.visibility === "private" && !isOwner) {
- notFound()
- }
-
- const [openPullRequestCount, issueCount] = await Promise.all([
- countOpenPullRequestsForRepository(repository.id),
- countOpenIssuesForRepository(repository.id),
- ])
-
- return (
- <RepositoryShell
- baseHref={`/${username}/${repository.slug}`}
- campfireEnabled={repository.campfireEnabled}
- docsEnabled={repository.docsEnabled}
- issueCount={issueCount}
- isOwner={isOwner}
- pullRequestCount={openPullRequestCount}
- >
- <Card>
- <CardHeader>
- <CardTitle className="flex items-center gap-2">
- <IconMessageCircle className="size-5" />
- Discussions
- </CardTitle>
- <CardDescription>
- Discussions will live here for {username}/{repository.slug}.
- </CardDescription>
- </CardHeader>
- <CardContent>
- <div className="rounded-2xl border bg-muted/30 p-5 text-sm text-muted-foreground">
- No discussions yet.
- </div>
- </CardContent>
- </Card>
- </RepositoryShell>
- )
-}
diff --git a/apps/web/app/[username]/[repository]/repository-tabs.tsx b/apps/web/app/[username]/[repository]/repository-tabs.tsx
index edf5b34..df962ff 100644
--- a/apps/web/app/[username]/[repository]/repository-tabs.tsx
+++ b/apps/web/app/[username]/[repository]/repository-tabs.tsx
@@ -5,7 +5,6 @@ import {
IconFileText,
IconFlame,
IconGitPullRequest,
- IconMessageCircle,
IconSettings,
IconSitemap,
} from "@tabler/icons-react"
@@ -58,13 +57,6 @@ export function RepositoryTabs({
isActive: pathname.startsWith(`${baseHref}/pulls`),
label: "Pull requests",
},
- {
- count: 0,
- href: `${baseHref}/discussions`,
- icon: <IconMessageCircle />,
- isActive: pathname.startsWith(`${baseHref}/discussions`),
- label: "Discussions",
- },
...(campfireEnabled
? [
{
diff --git a/apps/web/drizzle/meta/0020_snapshot.json b/apps/web/drizzle/meta/0020_snapshot.json
new file mode 100644
index 0000000..6f018cf
--- /dev/null
+++ b/apps/web/drizzle/meta/0020_snapshot.json
@@ -0,0 +1,5403 @@
+{
+ "id": "46dad2cb-b312-4000-b37f-ce189c2bfeab",
+ "prevId": "38f967ee-7b96-4564-98da-6f0fa2b4e05e",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.branches": {
+ "name": "branches",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "repository_id": {
+ "name": "repository_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "commit_sha": {
+ "name": "commit_sha",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "last_indexed_at": {
+ "name": "last_indexed_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "branches_repository_name_idx": {
+ "name": "branches_repository_name_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "branches_repository_commit_idx": {
+ "name": "branches_repository_commit_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "commit_sha",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "branches_repository_id_repositories_id_fk": {
+ "name": "branches_repository_id_repositories_id_fk",
+ "tableFrom": "branches",
+ "tableTo": "repositories",
+ "columnsFrom": [
+ "repository_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.campfire_channels": {
+ "name": "campfire_channels",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "repository_id": {
+ "name": "repository_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "slug": {
+ "name": "slug",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "position": {
+ "name": "position",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "campfire_channels_repository_slug_idx": {
+ "name": "campfire_channels_repository_slug_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "slug",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "campfire_channels_repository_position_idx": {
+ "name": "campfire_channels_repository_position_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "position",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "campfire_channels_repository_id_repositories_id_fk": {
+ "name": "campfire_channels_repository_id_repositories_id_fk",
+ "tableFrom": "campfire_channels",
+ "tableTo": "repositories",
+ "columnsFrom": [
+ "repository_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.campfire_messages": {
+ "name": "campfire_messages",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "channel_id": {
+ "name": "channel_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "author_profile_id": {
+ "name": "author_profile_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "body": {
+ "name": "body",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "parent_message_id": {
+ "name": "parent_message_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "edited_at": {
+ "name": "edited_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {
+ "campfire_messages_channel_created_idx": {
+ "name": "campfire_messages_channel_created_idx",
+ "columns": [
+ {
+ "expression": "channel_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "created_at",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "campfire_messages_parent_idx": {
+ "name": "campfire_messages_parent_idx",
+ "columns": [
+ {
+ "expression": "parent_message_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "campfire_messages_channel_id_campfire_channels_id_fk": {
+ "name": "campfire_messages_channel_id_campfire_channels_id_fk",
+ "tableFrom": "campfire_messages",
+ "tableTo": "campfire_channels",
+ "columnsFrom": [
+ "channel_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "campfire_messages_author_profile_id_user_profiles_id_fk": {
+ "name": "campfire_messages_author_profile_id_user_profiles_id_fk",
+ "tableFrom": "campfire_messages",
+ "tableTo": "user_profiles",
+ "columnsFrom": [
+ "author_profile_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ },
+ "campfire_messages_parent_message_id_campfire_messages_id_fk": {
+ "name": "campfire_messages_parent_message_id_campfire_messages_id_fk",
+ "tableFrom": "campfire_messages",
+ "tableTo": "campfire_messages",
+ "columnsFrom": [
+ "parent_message_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "set null",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.campfire_thread_mentions": {
+ "name": "campfire_thread_mentions",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "campfire_message_id": {
+ "name": "campfire_message_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "channel_id": {
+ "name": "channel_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "repository_id": {
+ "name": "repository_id",
+ "type": "uuid",
+
...[truncated 295469 chars]
0075 10:51:10 AM [system] agent step 5 exited 0.
0076 10:51:15 AM [agent] Step 6: run: Identify what the prior autopilot fix changed and whether the repository already defines CI-safe Stack Auth placeholders elsewhere.
0077 10:51:15 AM [system] $ agent step 6
0078 10:51:15 AM [stdout] df1cae8 drop discussions
.../[username]/[repository]/discussions/page.tsx | 75 ----------------------
.../[username]/[repository]/repository-tabs.tsx | 8 ---
2 files changed, 83 deletions(-)
a699915 Fix PR Autopilot findings
apps/web/drizzle/meta/0020_snapshot.json | 5403 ++++++++++++++++++++++++++++++
1 file changed, 5403 insertions(+)
A apps/web/drizzle/meta/0020_snapshot.json
./.opengit/workflows/ci.yml:24: NEXT_PUBLIC_STACK_PROJECT_ID: "11111111-1111-4111-8111-111111111111"
./.opengit/workflows/ci.yml:25: STACK_SECRET_SERVER_KEY: "ssk_buildtime_placeholder_value_for_ci_only"
./apps/web/.env.example:1:NEXT_PUBLIC_STACK_PROJECT_ID=
./apps/web/.env.example:2:STACK_SECRET_SERVER_KEY=
./README.md:25:NEXT_PUBLIC_STACK_PROJECT_ID=
./README.md:26:STACK_SECRET_SERVER_KEY=
./deploy/Dockerfile:60:ARG NEXT_PUBLIC_STACK_PROJECT_ID=11111111-1111-4111-8111-111111111111
./deploy/Dockerfile:61:ENV NEXT_PUBLIC_STACK_PROJECT_ID=$NEXT_PUBLIC_STACK_PROJECT_ID
./deploy/Dockerfile:70: STACK_SECRET_SERVER_KEY=ssk_buildtime_placeholder \
./deploy/.env.example:74:# Both values come from the Stack Auth dashboard. NEXT_PUBLIC_STACK_PROJECT_ID
./deploy/.env.example:77:NEXT_PUBLIC_STACK_PROJECT_ID=
./deploy/.env.example:78:STACK_SECRET_SERVER_KEY=
./deploy/docker-compose.app.yml:55: NEXT_PUBLIC_STACK_PROJECT_ID: ${NEXT_PUBLIC_STACK_PROJECT_ID:?Stack Auth project id is required}
./deploy/docker-compose.app.yml:75: NEXT_PUBLIC_STACK_PROJECT_ID: ${NEXT_PUBLIC_STACK_PROJECT_ID:?Stack Auth project id is required}
./deploy/docker-compose.app.yml:76: STACK_SECRET_SERVER_KEY: ${STACK_SECRET_SERVER_KEY:?Stack Auth secret key is required}
./deploy/docker-compose.single.yml:61: NEXT_PUBLIC_STACK_PROJECT_ID: ${NEXT_PUBLIC_STACK_PROJECT_ID:?Stack Auth project id is required}
./deploy/docker-compose.single.yml:79: NEXT_PUBLIC_STACK_PROJECT_ID: ${NEXT_PUBLIC_STACK_PROJECT_ID}
./deploy/docker-compose.single.yml:80: STACK_SECRET_SERVER_KEY: ${STACK_SECRET_SERVER_KEY:?Stack Auth secret key is required}
0079 10:51:15 AM [system] agent step 6 exited 0.
0080 10:51:23 AM [agent] Step 7: run: Compare CI workflow configuration with main and confirm whether Stack Auth variables are declared but omitted by the runner's build command.
0081 10:51:23 AM [system] $ agent step 7
0082 10:51:23 AM [stdout] name: CI
# Open-git's own CI. Every push to main and every pull request runs this.
# If any job fails, the PR cannot land safely.
#
# IMPORTANT runner facts (see packages/ci-runner-executor):
# - Each step is its own `docker run --rm`. State does NOT persist between
# steps except for /workspace (the bind-mounted checkout). That's why
# every job below is one big `run:` block.
# - 2 CPU / 2 GB RAM per step. Cap node heap below that.
# - Network: bridge. Outbound is allowed (needed for pnpm registry pulls).
on:
# Run on every push to main (post-merge sanity check) and on every PR
# regardless of target branch.
push:
branches: [main]
pull_request:
manual:
env:
CI: "true"
# next build evaluates these at module-load. They only need to be
# syntactically valid; the build never actually talks to Stack Auth,
# Postgres, or R2.
NEXT_PUBLIC_STACK_PROJECT_ID: "11111111-1111-4111-8111-111111111111"
STACK_SECRET_SERVER_KEY: "ssk_buildtime_placeholder_value_for_ci_only"
DATABASE_URL: "postgres://buildtime:buildtime@127.0.0.1:5432/buildtime"
CODE_STORAGE_BUCKET: "buildtime"
CODE_STORAGE_ACCESS_KEY_ID: "buildtime"
CODE_STORAGE_SECRET_ACCESS_KEY: "buildtime"
CODE_STORAGE_REGION: "auto"
CODE_STORAGE_S3_ENDPOINT: "http://127.0.0.1:9000"
CODE_STORAGE_FORCE_PATH_STYLE: "true"
jobs:
lint:
name: Lint
runs-on: linux
container: node:22-slim
steps:
- checkout
- name: Install deps and run eslint
run: |
set -eu
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm lint
typecheck:
name: Typecheck
runs-on: linux
container: node:22-slim
env:
NODE_OPTIONS: "--max-old-space-size=1536"
steps:
- checkout
- name: Install deps and run tsc --noEmit
run: |
set -eu
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm typecheck
test:
name: Tests
runs-on: linux
container: node:22-slim
steps:
- checkout
- name: Install git, deps, and run vitest
run: |
set -eu
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \
git ca-certificates
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm test
build-web:
name: Build web
runs-on: linux
container: node:22-slim
env:
NODE_OPTIONS: "--max-old-space-size=1536"
steps:
- checkout
- name: Install deps and run next build
run: |
set -eu
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm --filter web build
name: CI
# Open-git's own CI. Every push to main and every pull request runs this.
# If any job fails, the PR cannot land safely.
#
# IMPORTANT runner facts (see packages/ci-runner-executor):
# - Each step is its own `docker run --rm`. State does NOT persist between
# steps except for /workspace (the bind-mounted checkout). That's why
# every job below is one big `run:` block.
# - 2 CPU / 2 GB RAM per step. Cap node heap below that.
# - Network: bridge. Outbound is allowed (needed for pnpm registry pulls).
on:
# Run on every push to main (post-merge sanity check) and on every PR
# regardless of target branch.
push:
branches: [main]
pull_request:
manual:
env:
CI: "true"
# next build evaluates these at module-load. They only need to be
# syntactically valid; the build never actually talks to the auth
# backend, Postgres, or R2.
BETTER_AUTH_SECRET: "buildtime_placeholder_secret_for_ci_only"
DATABASE_URL: "postgres://buildtime:buildtime@127.0.0.1:5432/buildtime"
CODE_STORAGE_BUCKET: "buildtime"
CODE_STORAGE_ACCESS_KEY_ID: "buildtime"
CODE_STORAGE_SECRET_ACCESS_KEY: "buildtime"
CODE_STORAGE_REGION: "auto"
CODE_STORAGE_S3_ENDPOINT: "http://127.0.0.1:9000"
CODE_STORAGE_FORCE_PATH_STYLE: "true"
jobs:
lint:
name: Lint
runs-on: linux
container: node:22-slim
steps:
- checkout
- name: Install deps and run eslint
run: |
set -eu
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm lint
typecheck:
name: Typecheck
runs-on: linux
container: node:22-slim
env:
NODE_OPTIONS: "--max-old-space-size=1536"
steps:
- checkout
- name: Install deps and run tsc --noEmit
run: |
set -eu
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm typecheck
test:
name: Tests
runs-on: linux
container: node:22-slim
steps:
- checkout
- name: Install git, deps, and run vitest
run: |
set -eu
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends \
git ca-certificates
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm test
build-web:
name: Build web
runs-on: linux
container: node:22-slim
env:
NODE_OPTIONS: "--max-old-space-size=1536"
steps:
- checkout
- name: Install deps and run next build
run: |
set -eu
corepack enable
corepack prepare pnpm@9.15.9 --activate
pnpm install --frozen-lockfile --prefer-offline
pnpm --filter web build
0083 10:51:23 AM [system] agent step 7 exited 0.
0084 10:51:35 AM [agent] Step 8: run: Confirm Stack Auth constructor options for a CI-only fallback and understand branch ancestry before applying the smallest compatible build fix.
0085 10:51:43 AM [system] Destroyed workspace jlnmyqp4qxjgxc710b71.
0086 10:51:43 AM [system] Error: Autopilot command is outside allowed scope: grep -R "interface StackServerApp\|type StackServerApp\|class StackServerApp" -n node_modules/.pnpm/@stackframe+stack* 2>/dev/null | head -30; git log --oneline --all --decorate -12; git merge-base origin/main HEAD
at validateAgentCommand (/repo/apps/web/lib/pull-requests/autopilot/run.ts:714:11)
at runAgentLoop (/repo/apps/web/lib/pull-requests/autopilot/run.ts:315:5)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async runPrAutopilotJob (/repo/apps/web/lib/pull-requests/autopilot/run.ts:115:25)
at async main (/repo/apps/web/scripts/run-autopilot-worker.ts:33:7)
0087 10:51:43 AM [system] Claimed by autopilot-35.
0088 10:51:43 AM [system] Created short-lived repository token.
0089 10:51:43 AM [system] Created freestyle workspace xawx7jujxtxgowki92q8.
0090 10:51:43 AM [system] $ clone repository
0091 10:52:03 AM [stderr] Cloning into '/workspace/repo'...
0092 10:52:03 AM [system] clone repository exited 0.
0093 10:52:03 AM [system] $ initial tests
0094 10:52:43 AM [stdout] Scope: all 16 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +1275
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1275, reused 0, downloaded 8, added 5
╭───────────────────────────────────────────────────────────────────╮
│ │
│ Update available! 9.15.9 → 11.14.0. │
│ Changelog: https://github.com/pnpm/pnpm/releases/tag/v11.14.0 │
│ Run "pnpm add -g pnpm" to update. │
│ │
╰───────────────────────────────────────────────────────────────────╯
Progress: resolved 1275, reused 0, downloaded 59, added 48
Progress: resolved 1275, reused 0, downloaded 100, added 90
Progress: resolved 1275, reused 0, downloaded 224, added 216
Progress: resolved 1275, reused 0, downloaded 284, added 276
Progress: resolved 1275, reused 0, downloaded 315, added 305
Progress: resolved 1275, reused 0, downloaded 361, added 354
Progress: resolved 1275, reused 0, downloaded 393, added 383
Progress: resolved 1275, reused 0, downloaded 477, added 471
Progress: resolved 1275, reused 0, downloaded 480, added 477
Progress: resolved 1275, reused 0, downloaded 481, added 477
Progress: resolved 1275, reused 0, downloaded 489, added 478
Progress: resolved 1275, reused 0, downloaded 516, added 501
Progress: resolved 1275, reused 0, downloaded 579, added 568
Progress: resolved 1275, reused 0, downloaded 619, added 607
Progress: resolved 1275, reused 0, downloaded 772, added 760
Progress: resolved 1275, reused 0, downloaded 846, added 841
Progress: resolved 1275, reused 0, downloaded 915, added 915
Progress: resolved 1275, reused 0, downloaded 1146, added 1141
Progress: resolved 1275, reused 0, downloaded 1174, added 1160
Progress: resolved 1275, reused 0, downloaded 1221, added 1209
Progress: resolved 1275, reused 0, downloaded 1268, added 1267
Progress: resolved 1275, reused 0, downloaded 1274, added 1274
Progress: resolved 1275, reused 0, downloaded 1275, added 1275, done
.../node_modules/msw postinstall$ node -e "import('./config/scripts/postinstall.js').catch(() => void 0)"
.../esbuild@0.25.12/node_modules/esbuild postinstall$ node install.js
.../sharp@0.34.5/node_modules/sharp install$ node install/check.js || npm run build
.../esbuild@0.27.3/node_modules/esbuild postinstall$ node install.js
.../esbuild@0.18.20/node_modules/esbuild postinstall$ node install.js
.../node_modules/msw postinstall: Done
.../esbuild@0.25.12/node_modules/esbuild postinstall: Done
.../sharp@0.34.5/node_modules/sharp install: Done
.../esbuild@0.27.3/node_modules/esbuild postinstall: Done
.../node_modules/core-js-pure postinstall$ node -e "try{require('./postinstall')}catch(e){}"
.../esbuild@0.18.20/node_modules/esbuild postinstall: Done
.../node_modules/core-js-pure postinstall: Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
.../node_modules/core-js-pure postinstall: The project needs your help! Please consider supporting core-js:
.../node_modules/core-js-pure postinstall: > https://opencollective.com/core-js
.../node_modules/core-js-pure postinstall: > https://patreon.com/zloirock
.../node_modules/core-js-pure postinstall: > https://boosty.to/zloirock
.../node_modules/core-js-pure postinstall: > bitcoin: bc1qlea7544qtsmj2rayg0lthvza9fau63ux0fstcz
.../node_modules/core-js-pure postinstall: I highly recommend reading this: https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md
.../node_modules/core-js-pure postinstall: Done
devDependencies:
+ @workspace/eslint-config 0.0.0 <- packages/eslint-config
+ @workspace/typescript-config 0.0.0 <- packages/typescript-config
+ prettier 3.8.1
+ prettier-plugin-tailwindcss 0.7.4
+ turbo 2.9.6
+ typescript 5.9.3
+ vitest 4.1.5
Done in 31.2s using pnpm v9.15.9
> open-git@0.0.1 test /workspace/repo
> turbo test
• Packages in scope: @opengit/cli, @opengit/runner, @workspace/ci-runner-executor, @workspace/code-storage, @workspace/eslint-config, @workspace/git-graph, @workspace/git-indexing, @workspace/typescript-config, @workspace/ui, @workspace/workflows, campfire-gateway, git-gateway, git-worker, managed-runner, web
• Running test in 15 packages
• Remote caching disabled
@workspace/git-indexing:test: cache miss, executing 5caa1dcb7ab0396e
@workspace/workflows:test: cache miss, executing dad8c67f12aee0f4
@workspace/code-storage:test: cache miss, executing 5a10ec3726e9f6de
@workspace/git-indexing:test:
@workspace/git-indexing:test: > @workspace/git-indexing@0.0.0 test /workspace/repo/packages/git-indexing
@workspace/git-indexing:test: > vitest run
@workspace/git-indexing:test:
@workspace/code-storage:test:
@workspace/code-storage:test: > @workspace/code-storage@0.0.0 test /workspace/repo/packages/code-storage
@workspace/code-storage:test: > vitest run
@workspace/code-storage:test:
@workspace/workflows:test:
@workspace/workflows:test: > @workspace/workflows@0.0.0 test /workspace/repo/packages/workflows
@workspace/workflows:test: > vitest run
@workspace/workflows:test:
@workspace/workflows:test:
@workspace/code-storage:test:
@workspace/code-storage:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/code-storage[39m
@workspace/workflows:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/workflows[39m
@workspace/workflows:test:
@workspace/code-storage:test:
@workspace/git-indexing:test:
@workspace/git-indexing:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/packages/git-indexing[39m
@workspace/git-indexing:test:
@workspace/git-indexing:test: [32m✓[39m src/index.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
@workspace/git-indexing:test:
@workspace/git-indexing:test: [2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/git-indexing:test: [2m Tests [22m [1m[32m3 passed[39m[22m[90m (3)[39m
@workspace/git-indexing:test: [2m Start at [22m 10:52:41
@workspace/git-indexing:test: [2m Duration [22m 238ms[2m (transform 30ms, setup 0ms, import 43ms, tests 4ms, environment 0ms)[22m
@workspace/git-indexing:test:
@workspace/workflows:test: [32m✓[39m src/index.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 13[2mms[22m[39m
@workspace/workflows:test: [32m✓[39m src/repo-workflows.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 25[2mms[22m[39m
@workspace/workflows:test:
@workspace/workflows:test: [2m Test Files [22m [1m[32m2 passed[39m[22m[90m (2)[39m
@workspace/workflows:test: [2m Tests [22m [1m[32m4 passed[39m[22m[90m (4)[39m
@workspace/workflows:test: [2m Start at [22m 10:52:41
@workspace/workflows:test: [2m Duration [22m 313ms[2m (transform 98ms, setup 0ms, import 207ms, tests 38ms, environment 0ms)[22m
@workspace/workflows:test:
@workspace/code-storage:test: [32m✓[39m src/repo.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 72[2mms[22m[39m
@workspace/code-storage:test:
@workspace/code-storage:test: [2m Test Files [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/code-storage:test: [2m Tests [22m [1m[32m1 passed[39m[22m[90m (1)[39m
@workspace/code-storage:test: [2m Start at [22m 10:52:41
@workspace/code-storage:test: [2m Duration [22m 414ms[2m (transform 82ms, setup 0ms, import 159ms, tests 72ms, environment 0ms)[22m
@workspace/code-storage:test:
git-gateway:test: cache miss, executing 3bcfeb3640452888
web:test: cache miss, executing 5e33ce80d4aedd9e
git-gateway:test:
git-gateway:test: > git-gateway@0.0.1 test /workspace/repo/apps/git-gateway
git-gateway:test: > vitest run
git-gateway:test:
web:test:
web:test: > web@0.0.1 test /workspace/repo/apps/web
web:test: > vitest run
web:test:
web:test:
web:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/apps/web[39m
web:test:
git-gateway:test:
git-gateway:test: [1m[30m[46m RUN [49m[39m[22m [36mv4.1.5 [39m[90m/workspace/repo/apps/git-gateway[39m
git-gateway:test:
web:test: [32m✓[39m lib/resource-query.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 8[2mms[22m[39m
git-gateway:test: [2m[90m↓[39m[22m src/gateway.integration.test.ts [2m([22m[2m1 test[22m[2m | [22m[33m1 skipped[39m[2m)[22m
web:test: [32m✓[39m lib/campfire-message-segments.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 9[2mms[22m[39m
git-gateway:test:
git-gateway:test: [2m Test Files [22m [33m1 skipped[39m[90m (1)[39m
git-gateway:test: [2m Tests [22m [33m1 skipped[39m[90m (1)[39m
git-gateway:test: [2m Start at [22m 10:52:42
git-gateway:test: [2m Duration [22m 598ms[2m (transform 398ms, setup 0ms, import 416ms, tests 0ms, environment 0ms)[22m
git-gateway:test:
web:test: [32m✓[39m lib/repository-validation.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
web:test: [32m✓[39m lib/repository-docs-markdown.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 21[2mms[22m[39m
web:test: [32m✓[39m lib/markdown.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 23[2mms[22m[39m
web:test: [32m✓[39m lib/line-diff.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 3[2mms[22m[39m
web:test:
web:test: [2m Test Files [22m [1m[32m6 passed[39m[22m[90m (6)[39m
web:test: [2m Tests [22m [1m[32m27 passed[39m[22m[90m (27)[39m
web:test: [2m Start at [22m 10:52:42
web:test: [2m Duration [22m 896ms[2m (transform 1.13s, setup 0ms, import 1.53s, tests 69ms, environment 1ms)[22m
web:test:
Tasks: 5 successful, 5 total
Cached: 0 cached, 5 total
Time: 3.137s
0095 10:52:43 AM [stderr] bash: line 3: corepack: command not found
npm notice
npm notice New major version of npm available! 11.13.0 -> 12.0.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.0.1
npm notice To update run: npm install -g npm@12.0.1
npm notice
Attention:
Turborepo now collects completely anonymous telemetry regarding usage.
This information is used to shape the Turborepo roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://turborepo.dev/docs/telemetry
• turbo 2.9.6
0096 10:52:43 AM [system] initial tests exited 0.
0097 10:52:46 AM [agent] Step 1: run: Reproduce the failed web build and capture the specific compiler error.
0098 10:52:46 AM [system] $ agent step 1
0099 10:52:46 AM [stderr] bash: line 1: pnpm: command not found
0100 10:52:46 AM [system] agent step 1 exited 127.
0101 10:52:49 AM [agent] Step 2: run: Use the repository's pinned pnpm version via npx to reproduce the failed web build.
0102 10:52:49 AM [system] $ agent step 2
0103 10:53:33 AM [stdout] pnpm@9.15.9
> web@0.0.1 build /workspace/repo/apps/web
> next build
Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry
▲ Next.js 16.1.6 (Turbopack)
Creating an optimized production build ...
✓ Compiled successfully in 27.9s
Running TypeScript ...
Collecting page data using 3 workers ...
/workspace/repo/apps/web:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL web@0.0.1 build: `next build`
Exit status 1
0104 10:53:33 AM [stderr] ⚠ The "middleware" file convention is deprecated. Please use "proxy" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
Error: DATABASE_URL is required
at module evaluation (.next/server/chunks/_bdaec078._.js:28:88139)
at instantiateModule (.next/server/chunks/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/[turbopack]_runtime.js:763:12)
at Context.esmImport [as i] (.next/server/chunks/[turbopack]_runtime.js:228:20)
at module evaluation (.next/server/chunks/[root-of-the-server]__5d912a2c._.js:1:1869)
at instantiateModule (.next/server/chunks/[turbopack]_runtime.js:740:9)
at instantiateRuntimeModule (.next/server/chunks/[turbopack]_runtime.js:768:12)
at getOrInstantiateRuntimeModule (.next/server/chunks/[turbopack]_runtime.js:781:12)
at Object.m (.next/server/chunks/[turbopack]_runtime.js:790:18)
at Object.<anonymous> (.next/server/app/api/admin/approve/route.js:7:3)
> Build error occurred
Error: Failed to collect page data for /api/admin/approve
at ignore-listed frames {
type: 'Error'
}
0105 10:53:33 AM [system] agent step 2 exited 1.
0106 10:53:39 AM [agent] Step 3: run: Reproduce the CI build with the same required environment variables to reveal the actual failure.
0107 10:53:39 AM [system] $ agent step 3
0108 10:54:15 AM [stdout]
> web@0.0.1 build /workspace/repo/apps/web
> next build
Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry
▲ Next.js 16.1.6 (Turbopack)
Creating an optimized production build ...
✓ Compiled successfully in 20.0s
Running TypeScript ...
Collecting page data using 3 workers ...
/workspace/repo/apps/web:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL web@0.0.1 build: `next build`
Exit status 1
0109 10:54:15 AM [stderr] ⚠ The "middleware" file convention is deprecated. Please use "proxy" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy
Error: Failed to collect configuration for /_not-found
at ignore-listed frames {
[cause]: Error: Welcome to Stack Auth! It seems that you haven't provided a project ID. Please create a project on the Stack dashboard at https://app.stack-auth.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable.
at L (.next/server/chunks/ssr/_1e2dcb48._.js:1538:5618)
at <unknown> (.next/server/chunks/ssr/_1e2dcb48._.js:4360:12071)
at new bH (.next/server/chunks/ssr/_1e2dcb48._.js:4360:12219)
at module evaluation (.next/server/chunks/ssr/_1e2dcb48._.js:4360:71407)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
at Context.esmImport [as i] (.next/server/chunks/ssr/[turbopack]_runtime.js:228:20)
at module evaluation (.next/server/chunks/ssr/[root-of-the-server]__ba81a15b._.js:1:279841)
at instantiateModule (.next/server/chunks/ssr/[turbopack]_runtime.js:740:9)
at getOrInstantiateModuleFromParent (.next/server/chunks/ssr/[turbopack]_runtime.js:763:12)
}
> Build error occurred
Error: Failed to collect page data for /_not-found
at ignore-listed frames {
type: 'Error'
}
0110 10:54:15 AM [system] agent step 3 exited 1.
0111 10:54:19 AM [agent] Step 4: run: Inspect the PR's web changes to identify why dropping discussions introduced a build-time Stack Auth requirement.
0112 10:54:19 AM [system] $ agent step 4
0113 10:54:19 AM [stdout] .../[username]/[repository]/discussions/page.tsx | 75 -
.../[username]/[repository]/repository-tabs.tsx | 8 -
apps/web/drizzle/meta/0020_snapshot.json | 5403 ++++++++++++++++++++
3 files changed, 5403 insertions(+), 83 deletions(-)
diff --git a/apps/web/app/[username]/[repository]/discussions/page.tsx b/apps/web/app/[username]/[repository]/discussions/page.tsx
deleted file mode 100644
index 60d32db..0000000
--- a/apps/web/app/[username]/[repository]/discussions/page.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { IconMessageCircle } from "@tabler/icons-react"
-import { notFound } from "next/navigation"
-
-import { RepositoryShell } from "@/app/[username]/[repository]/repository-shell"
-import { getOnboardingStatus } from "@/app/onboarding/ensure-onboarded"
-import { countOpenIssuesForRepository } from "@/db/issues"
-import { countOpenPullRequestsForRepository } from "@/db/pull-requests"
-import { getRepositoryByOwnerAndSlug } from "@/db/repositories"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@workspace/ui/components/card"
-
-export const dynamic = "force-dynamic"
-
-type RepositoryDiscussionsPageProps = {
- params: Promise<{
- username: string
- repository: string
- }>
-}
-
-export default async function RepositoryDiscussionsPage({
- params,
-}: RepositoryDiscussionsPageProps) {
- const { username, repository: repositorySlug } = await params
- const repository = await getRepositoryByOwnerAndSlug(username, repositorySlug)
-
- if (!repository) {
- notFound()
- }
-
- const { profile } = await getOnboardingStatus()
- const isOwner = profile?.id === repository.ownerProfileId
-
- if (repository.visibility === "private" && !isOwner) {
- notFound()
- }
-
- const [openPullRequestCount, issueCount] = await Promise.all([
- countOpenPullRequestsForRepository(repository.id),
- countOpenIssuesForRepository(repository.id),
- ])
-
- return (
- <RepositoryShell
- baseHref={`/${username}/${repository.slug}`}
- campfireEnabled={repository.campfireEnabled}
- docsEnabled={repository.docsEnabled}
- issueCount={issueCount}
- isOwner={isOwner}
- pullRequestCount={openPullRequestCount}
- >
- <Card>
- <CardHeader>
- <CardTitle className="flex items-center gap-2">
- <IconMessageCircle className="size-5" />
- Discussions
- </CardTitle>
- <CardDescription>
- Discussions will live here for {username}/{repository.slug}.
- </CardDescription>
- </CardHeader>
- <CardContent>
- <div className="rounded-2xl border bg-muted/30 p-5 text-sm text-muted-foreground">
- No discussions yet.
- </div>
- </CardContent>
- </Card>
- </RepositoryShell>
- )
-}
diff --git a/apps/web/app/[username]/[repository]/repository-tabs.tsx b/apps/web/app/[username]/[repository]/repository-tabs.tsx
index edf5b34..df962ff 100644
--- a/apps/web/app/[username]/[repository]/repository-tabs.tsx
+++ b/apps/web/app/[username]/[repository]/repository-tabs.tsx
@@ -5,7 +5,6 @@ import {
IconFileText,
IconFlame,
IconGitPullRequest,
- IconMessageCircle,
IconSettings,
IconSitemap,
} from "@tabler/icons-react"
@@ -58,13 +57,6 @@ export function RepositoryTabs({
isActive: pathname.startsWith(`${baseHref}/pulls`),
label: "Pull requests",
},
- {
- count: 0,
- href: `${baseHref}/discussions`,
- icon: <IconMessageCircle />,
- isActive: pathname.startsWith(`${baseHref}/discussions`),
- label: "Discussions",
- },
...(campfireEnabled
? [
{
diff --git a/apps/web/drizzle/meta/0020_snapshot.json b/apps/web/drizzle/meta/0020_snapshot.json
new file mode 100644
index 0000000..6f018cf
--- /dev/null
+++ b/apps/web/drizzle/meta/0020_snapshot.json
@@ -0,0 +1,5403 @@
+{
+ "id": "46dad2cb-b312-4000-b37f-ce189c2bfeab",
+ "prevId": "38f967ee-7b96-4564-98da-6f0fa2b4e05e",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.branches": {
+ "name": "branches",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "gen_random_uuid()"
+ },
+ "repository_id": {
+ "name": "repository_id",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "commit_sha": {
+ "name": "commit_sha",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "is_default": {
+ "name": "is_default",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "last_indexed_at": {
+ "name": "last_indexed_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp with time zone",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {
+ "branches_repository_name_idx": {
+ "name": "branches_repository_name_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "name",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "branches_repository_commit_idx": {
+ "name": "branches_repository_commit_idx",
+ "columns": [
+ {
+ "expression": "repository_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "commit_sha",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "branches_repository_id_repositories_id_fk": {
+ "name": "branches_repository_id_repositories_id_fk",
+ "tableFrom": "branches",
+ "tableTo": "repositories",
+ "columnsFrom": [
+ "repository_id"
+ ],
+ "columnsTo": [
+ "id"
+ ],
+ "onDelete": "cascade",
+ "onUpdate": "no action"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
0114 10:54:19 AM [system] agent step 4 exited 0.
0115 10:54:25 AM [agent] Step 5: run: Locate eager Stack Auth initialization causing build-time failure and inspect recent branch context before applying a focused fix.
0116 10:54:25 AM [system] $ agent step 5
0117 10:54:25 AM [stderr] bash: line 1: rg: command not found
0118 10:54:25 AM [system] agent step 5 exited 127.
0119 10:54:27 AM [agent] Step 6: run: Use standard grep to locate eager Stack Auth initialization and inspect recent branch context.
0120 10:54:27 AM [system] $ agent step 6
0121 10:54:29 AM [stdout] apps/web/app/layout.tsx:6:import { stackServerApp } from "@/stack"
apps/web/app/layout.tsx:35: <StackProvider app={stackServerApp}>
apps/web/app/handler/[...stack]/page.tsx:4:import { stackServerApp } from "@/stack"
apps/web/app/handler/[...stack]/page.tsx:9: <StackHandler app={stackServerApp} fullPage routeProps={props} />
apps/web/app/sign-up/page.tsx:6:import { stackServerApp } from "@/stack"
apps/web/app/sign-up/page.tsx:11: const user = await stackServerApp.getUser()
apps/web/app/api/admin/approve/route.ts:4:import { stackServerApp } from "@/stack"
apps/web/app/api/admin/approve/route.ts:54: const user = await stackServerApp.getUser(userId)
apps/web/app/api/admin/approve/route.ts:75: await stackServerApp.sendEmail({
apps/web/app/onboarding/actions.ts:8:import { stackServerApp } from "@/stack"
apps/web/app/onboarding/actions.ts:29: const user = await stackServerApp.getUser({ or: "redirect" })
apps/web/app/onboarding/actions.ts:60: const user = await stackServerApp.getUser({ or: "redirect" })
apps/web/app/onboarding/ensure-onboarded.ts:7:import { stackServerApp } from "@/stack"
apps/web/app/onboarding/ensure-onboarded.ts:10: const user = await stackServerApp.getUser()
apps/web/app/onboarding/username-availability/route.ts:5:import { stackServerApp } from "@/stack"
apps/web/app/onboarding/username-availability/route.ts:8: const user = await stackServerApp.getUser()
apps/web/app/waitlist/actions.ts:8:import { stackServerApp } from "@/stack"
apps/web/app/waitlist/actions.ts:11: const user = await stackServerApp.getUser({ or: "redirect" })
apps/web/app/waitlist/page.tsx:10:import { stackServerApp } from "@/stack"
apps/web/app/waitlist/page.tsx:16: const user = await stackServerApp.getUser()
apps/web/middleware.ts:4:import { stackServerApp } from "@/stack"
apps/web/middleware.ts:31: const user = await stackServerApp.getUser()
apps/web/db/user-profiles.ts:5:import { stackServerApp } from "@/stack"
apps/web/db/user-profiles.ts:71: const user = await stackServerApp.getUser()
apps/web/.env.example:1:NEXT_PUBLIC_STACK_PROJECT_ID=
apps/web/node_modules/@stackframe/stack/README.md:19: NEXT_PUBLIC_STACK_PROJECT_ID=<your-project-id>
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider.d.ts:1:import { StackServerApp } from "../lib/stack-app/apps/interfaces/server-app.js";
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider.d.ts:3:import { StackClientApp } from "../lib/stack-app/apps/interfaces/client-app.js";
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider.d.ts:24: app: StackClientApp<true> | StackServerApp<true> | StackAdminApp<true>;
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider-client.d.ts:1:import { StackClientApp, StackClientAppJson } from "../lib/stack-app/apps/interfaces/client-app.js";
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider-client.d.ts:8: app: StackClientApp<true>;
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider-client.d.ts:11: app: StackClientAppJson<true, string> | StackClientApp<true>;
apps/web/node_modules/@stackframe/stack/dist/providers/stack-provider-client.js:15: const app = props.serialized ? ___lib_stack_app_index_js.StackClientApp[___lib_stack_app_index_js.stackAppInternalsSymbol].fromClientJson(props.app) : props.app;
apps/web/node_modules/@stackframe/stack/dist/index.d.ts:10:import { StackServerApp, StackServerAppConstructor, StackServerAppConstructorOptions } from "./lib/stack-app/apps/interfaces/server-app.js";
apps/web/node_modules/@stackframe/stack/dist/index.d.ts:15:import { StackClientApp, StackClientAppConstructor, StackClientAppConstructorOptions, StackClientAppJson } from "./lib/stack-app/apps/interfaces/client-app.js";
apps/web/node_modules/@stackframe/stack/dist/index.d.ts:40:export { AccountSettings, AdminDomainConfig, AdminEmailConfig, AdminEmailOutbox, AdminEmailOutboxRecipient, AdminEmailOutboxSimpleStatus, AdminEmailOutboxStatus, AdminOAuthProviderConfig, AdminOwnedProject, AdminProject, AdminProjectConfig, AdminProjectConfigUpdateOptions, AdminProjectCreateOptions, AdminProjectPermission, AdminProjectPermissionDefinition, AdminProjectPermissionDefinitionCreateOptions, AdminProjectPermissionDefinitionUpdateOptions, AdminProjectUpdateOptions, AdminSendAttemptError, AdminSentEmail, AdminTeamPermission, AdminTeamPermissionDefinition, AdminTeamPermissionDefinitionCreateOptions, AdminTeamPermissionDefinitionUpdateOptions, type AnalyticsOptions, type AnalyticsReplayOptions, Auth, AuthPage, CliAuthConfirmation, Connection, ContactChannel, CredentialSignIn, CredentialSignUp, CurrentInternalServerUser, CurrentInternalUser, CurrentServerUser, CurrentUser, EditableTeamMemberProfile, EmailOutboxListOptions, EmailOutboxListResult, EmailOutboxUpdateOptions, EmailVerification, ForgotPassword, GetCurrentUserOptions, GetCurrentUserOptions as GetUserOptions, HandlerUrlOptions, HandlerUrls, InternalApiKey, InternalApiKeyBase, InternalApiKeyBaseCrudRead, InternalApiKeyCreateOptions, InternalApiKeyFirstView, MagicLinkSignIn, MessageCard, OAuthButton, OAuthButtonGroup, OAuthConnection, OAuthProvider, OAuthProviderConfig, OAuthScopesOnSignIn, PasswordReset, Project, ProjectConfig, PushedConfigSource, ReceivedTeamInvitation, ResolvedHandlerUrls, SelectedTeamSwitcher, SentTeamInvitation, ServerContactChannel, ServerListUsersOptions, ServerOAuthProvider, ServerTeam, ServerTeamCreateOptions, ServerTeamMemberProfile, ServerTeamUpdateOptions, ServerTeamUser, ServerUser, SignIn, SignUp, StackAdminApp, StackAdminAppConstructor, StackAdminAppConstructorOptions, StackClientApp, StackClientAppConstructor, StackClientAppConstructorOptions, StackClientAppJson, type StackConfig, StackHandler, NextStackProvider as StackProvider, StackServerApp, StackServerAppConstructor, StackServerAppConstructorOptions, StackTheme, Team, TeamCreateOptions, TeamInvitation, TeamMemberProfile, TeamSwitcher, TeamUpdateOptions, TeamUser, User, UserAvatar, UserButton, defineStackConfig, getConvexProvidersConfig, getPagePrompt, stackAppInternalsSymbol, useStackApp, useUser };
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts:12:import { StackServerAppConstructorOptions } from "../interfaces/server-app.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts:13:import { _StackClientAppImplIncomplete } from "./client-app-impl.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts:31:declare class _StackServerAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _StackClientAppImplIncomplete<HasTokenStore, ProjectId> {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts:85: constructor(options: StackServerAppConstructorOptions<HasTokenStore, ProjectId>, extraOptions?: {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.d.ts:241:export { _StackServerAppImplIncomplete };
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:12:import { StackClientApp, StackClientAppConstructorOptions, StackClientAppJson } from "../interfaces/client-app.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:44:type StackClientAppImplConstructorOptionsResolved<HasTokenStore extends boolean, ProjectId extends string> = StackClientAppConstructorOptions<HasTokenStore, ProjectId> & {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:47:declare class _StackClientAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string = string> implements StackClientApp<HasTokenStore, ProjectId> {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:58: protected readonly _options: StackClientAppImplConstructorOptionsResolved<HasTokenStore, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:134: constructor(options: StackClientAppConstructorOptions<HasTokenStore, ProjectId>, extraOptions?: {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:190: protected _hasPersistentTokenStore(overrideTokenStoreInit?: TokenStoreInit): this is StackClientApp<true, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:191: protected _ensurePersistentTokenStore(overrideTokenStoreInit?: TokenStoreInit): asserts this is StackClientApp<true, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:497: fromClientJson: <HasTokenStore extends boolean, ProjectId extends string>(json: StackClientAppJson<HasTokenStore, ProjectId>) => StackClientApp<HasTokenStore, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:500: toClientJson: () => StackClientAppJson<HasTokenStore, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:514: inheritsFrom?: StackClientApp<any, any>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:522: inheritsFrom: StackClientApp<any, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.d.ts:547:export { _StackClientAppImplIncomplete };
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/common.js:49: return _________env_js.envVars.NEXT_PUBLIC_STACK_PROJECT_ID || _________env_js.envVars.STACK_PROJECT_ID || (0, _stackframe_stack_shared_dist_utils_errors.throwErr)(/* @__PURE__ */ new Error("Welcome to Stack Auth! It seems that you haven't provided a project ID. Please create a project on the Stack dashboard at https://app.stack-auth.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable."));
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.js:45:var _StackAdminAppImplIncomplete = class extends __server_app_impl_js._StackServerAppImplIncomplete {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.js:20:var _StackServerAppImplIncomplete = class extends __client_app_impl_js._StackClientAppImplIncomplete {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.js:994: console.warn("stackServerApp.getServerUser is deprecated; use stackServerApp.getUser instead");
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.js:1259: return (0, __common_js.useAsyncCache)(this._emailDeliveryInfoCache, [], "stackServerApp.useEmailDeliveryStats()");
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/server-app-impl.js:1298:exports._StackServerAppImplIncomplete = _StackServerAppImplIncomplete;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:9:import { StackClientApp } from "../interfaces/client-app.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:11:import { _StackServerAppImplIncomplete } from "./server-app-impl.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:31:declare class _StackAdminAppImplIncomplete<HasTokenStore extends boolean, ProjectId extends string> extends _StackServerAppImplIncomplete<HasTokenStore, ProjectId> implements StackAdminApp<HasTokenStore, ProjectId> {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:133: inheritsFrom?: StackClientApp<any, any>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:141: inheritsFrom: StackClientApp<any, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:160: inheritsFrom?: StackClientApp<any, any>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/admin-app-impl.d.ts:168: inheritsFrom: StackClientApp<any, ProjectId>;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.d.ts:1:import { _StackClientAppImplIncomplete } from "./client-app-impl.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.d.ts:2:import { _StackServerAppImplIncomplete } from "./server-app-impl.js";
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.d.ts:6:declare const _StackAdminAppImpl: typeof _StackAdminAppImplIncomplete, _StackClientAppImpl: typeof _StackClientAppImplIncomplete, _StackServerAppImpl: typeof _StackServerAppImplIncomplete;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.d.ts:8:export { _StackAdminAppImpl, _StackClientAppImpl, _StackServerAppImpl };
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/session-replay.d.ts:42: * The return type is AnalyticsOptions to keep StackClientAppJson simple;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:11:* of `_StackClientAppImplIncomplete.LazyStackAdminAppImpl`.
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:18: __client_app_impl_js._StackClientAppImplIncomplete.LazyStackAdminAppImpl.value = __admin_app_impl_js._StackAdminAppImplIncomplete;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:21: _StackClientAppImpl: (0, _stackframe_stack_shared_dist_utils_compile_time.scrambleDuringCompileTime)(__client_app_impl_js._StackClientAppImplIncomplete),
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:22: _StackServerAppImpl: (0, _stackframe_stack_shared_dist_utils_compile_time.scrambleDuringCompileTime)(__server_app_impl_js._StackServerAppImplIncomplete)
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:25:const { _StackAdminAppImpl, _StackClientAppImpl, _StackServerAppImpl } = complete();
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:29:exports._StackClientAppImpl = _StackClientAppImpl;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/index.js:30:exports._StackServerAppImpl = _StackServerAppImpl;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/session-replay.js:11:* The return type is AnalyticsOptions to keep StackClientAppJson simple;
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.js:52:var _StackClientAppImplIncomplete = class _StackClientAppImplIncomplete {
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.js:320: if (!_StackClientAppImplIncomplete.LazyStackAdminAppImpl.value) throw new _stackframe_stack_shared_dist_utils_errors.StackAssertionError("Admin app implementation not initialized. Did you import the _StackClientApp from stack-app/apps/implementations/index.ts? You can't import it directly from ./apps/implementations/client-app-impl.ts as that causes a circular dependency (see the comment at _LazyStackAdminAppImpl for more details).");
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.js:1640: if (!this._ownedAdminApps.has([session, forProjectId])) this._ownedAdminApps.set([session, forProjectId], new _StackClientAppImplIncomplete.LazyStackAdminAppImpl.value({
apps/web/node_modules/@stackframe/stack/dist/lib/stack-app/apps/implementations/client-app-impl.js:2483: return
...[truncated 36323 chars]
0122 10:54:29 AM [system] agent step 6 exited 0.
0123 10:54:34 AM [agent] Step 7: run: Determine whether the missing build-time auth configuration or the newly added migration snapshot is the branch-specific build regression.
0124 10:54:34 AM [system] $ agent step 7
0125 10:54:34 AM [stdout] import { StackServerApp } from "@stackframe/stack"
import { isWaitlistEnabled } from "@/lib/waitlist-config"
export const stackServerApp = new StackServerApp({
tokenStore: "nextjs-cookie",
urls: {
accountSettings: { type: "custom", url: "/settings/account", version: 1 },
signIn: "/handler/sign-in",
signUp: "/sign-up",
afterSignIn: "/",
afterSignUp: isWaitlistEnabled() ? "/waitlist" : "/onboarding",
},
})
NEXT_PUBLIC_STACK_PROJECT_ID=
STACK_SECRET_SERVER_KEY=
APP_URL=http://localhost:3000
CAMPFIRE_WS_TOKEN_SECRET=dev-campfire-token-secret-change-me
NEXT_PUBLIC_CAMPFIRE_WS_URL=ws://localhost:4322
WAITLIST_ENABLED=true
WAITLIST_ADMIN_TOKEN=
WAITLIST_KEY_SECRET=
DATABASE_URL=postgresql://opengit:opengit@localhost:54329/opengit
CODE_STORAGE_BUCKET=opengit-code-storage
CODE_STORAGE_REGION=us-east-1
CODE_STORAGE_S3_ENDPOINT=http://localhost:9000
CODE_STORAGE_ACCESS_KEY_ID=opengit
CODE_STORAGE_SECRET_ACCESS_KEY=opengit_password
GIT_REMOTE_BASE_URL=http://localhost:4321
GIT_GATEWAY_PORT=4321
GIT_GATEWAY_CACHE_ROOT=.git-gateway-cache
6b346ab Fix PR Autopilot findings
89c5305 Fix PR Autopilot findings
a699915 Fix PR Autopilot findings
ddfdfeb ba migrations
d94390c update sign in/up and forgot password pages
203d16f feat(web): UI feedback round 4
862e21b github connected accounts and repo imports
4b0aac0 move off of deprecated stack-auth integration and into hexclave.
52762e3 Removed active waitlist implementation entierly. /waitlist, admin approval api, waitlist db helper, waitlist config, approval script, package script, deploy env vars, middleware gating, schema table/type, and sign-up redirects. Added 0027 drop waitlist to drop the old table in existing db. Also tightened duplicated code by extracting shared issue/PR row UI into resource-list-row.tsx then resued it in the issue and PR list pages. Cleaned a few stale lint items in campfire, PR autopilot timeline, diff sidebar, campfire ref parsing, and utrbo env declarations. waitlist still appears only in historical drizzle migration/snapshot files plus the new drop migration.
6c734e0 enable replays
a5eda11 Merge branch 'main' into orgs
eff27c2 fix: add missing drizzle snapshot for migration 0020
02d4315 feat: add namespace-backed organization permissions
0c39040 new settings pages. New PR creation pages
c9a2068 waitlist
e9c76c3 init
0002_snapshot.json
0005_snapshot.json
0011_snapshot.json
0015_snapshot.json
0016_snapshot.json
0017_snapshot.json
0018_snapshot.json
0019_snapshot.json
0020_snapshot.json
_journal.json
0126 10:54:34 AM [stderr] fatal: path 'apps/web/stack.ts' exists on disk, but not in 'origin/main'
0127 10:54:34 AM [system] agent step 7 exited 0.
0128 10:54:39 AM [agent] Step 8: run: Check whether the PR branch is behind a target branch that already replaced Stack Auth, since the current auth failure appears unrelated to the discussions-only diff.
0129 10:54:46 AM [system] Destroyed workspace xawx7jujxtxgowki92q8.
0130 10:54:46 AM [system] Error: Autopilot command is outside allowed scope: git status --short; git branch -avv; git rev-parse HEAD origin/main $(git merge-base HEAD origin/main); git log --oneline --left-right --cherry-pick origin/main...HEAD | head -40; git show --stat --oneline HEAD
at validateAgentCommand (/repo/apps/web/lib/pull-requests/autopilot/run.ts:714:11)
at runAgentLoop (/repo/apps/web/lib/pull-requests/autopilot/run.ts:315:5)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async runPrAutopilotJob (/repo/apps/web/lib/pull-requests/autopilot/run.ts:115:25)
at async main (/repo/apps/web/scripts/run-autopilot-worker.ts:33:7)Last refreshed 5:46:28 PM.