-
-
Notifications
You must be signed in to change notification settings - Fork 199
feat: add per-group provider priority and inline editing #701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
579c82e
2f7ff72
396945a
671aadd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -92,3 +92,4 @@ tmp/ | |
| .trae/ | ||
| .sisyphus | ||
| .ace-tool/ | ||
| .worktrees/ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,19 +10,19 @@ COPY --from=deps /app/node_modules ./node_modules | |
| COPY . . | ||
| ENV NEXT_TELEMETRY_DISABLED=1 | ||
| ENV CI=true | ||
| RUN bun run build | ||
| RUN --mount=type=cache,target=/app/.next/cache bun run build | ||
|
|
||
| FROM node:20-slim AS runner | ||
| WORKDIR /app | ||
| ENV NODE_ENV=production | ||
| ENV PORT=8080 | ||
| EXPOSE 8080 | ||
| ENV PORT=3000 | ||
| EXPOSE 3000 | ||
|
|
||
| # 关键:确保复制了所有必要的文件,特别是 drizzle 文件夹 | ||
| COPY --from=builder /app/public ./public | ||
| COPY --from=builder /app/.next ./.next | ||
| COPY --from=builder /app/node_modules ./node_modules | ||
| COPY --from=builder /app/package.json ./package.json | ||
| COPY --from=builder /app/drizzle ./drizzle | ||
| COPY --from=builder /app/.next/standalone ./ | ||
|
Comment on lines
21
to
+23
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Possible missing The runner stage copies Prompt To Fix With AIThis is a comment left during a code review.
Path: Dockerfile
Line: 21:23
Comment:
**Possible missing `server.js`**
The runner stage copies `/.next/standalone` into `./` and then runs `CMD ["node","server.js"]`. This only works if `server.js` is actually present at the container workdir root after the copy. If Next’s standalone output layout changes or `output: 'standalone'` isn’t enabled in some build contexts, this will crash at runtime with `Cannot find module '/app/server.js'`. It would be safer to ensure the build always produces standalone output (and/or validate the file exists in CI) before switching the runtime command.
How can I resolve this? If you propose a fix, please make it concise. |
||
| COPY --from=builder /app/.next/static ./.next/static | ||
| COPY --from=builder /app/drizzle ./drizzle | ||
| COPY --from=builder /app/VERSION ./VERSION | ||
|
|
||
| CMD ["node", "node_modules/.bin/next", "start"] | ||
| CMD ["node", "server.js"] | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -68,7 +68,13 @@ services: | |
| - "${APP_PORT:-23000}:3000" | ||
| restart: unless-stopped | ||
| healthcheck: | ||
| test: ["CMD-SHELL", "curl -f http://localhost:3000/api/actions/health || exit 1"] | ||
| test: | ||
| [ | ||
| "CMD", | ||
| "node", | ||
| "-e", | ||
| "fetch('http://' + (process.env.HOSTNAME || '127.0.0.1') + ':3000/api/actions/health').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))", | ||
| ] | ||
|
Comment on lines
70
to
+77
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Healthcheck uses missing The Prompt To Fix With AIThis is a comment left during a code review.
Path: docker-compose.yaml
Line: 70:77
Comment:
**Healthcheck uses missing `node`**
The `app` service healthcheck runs `node -e fetch(...)`, but the container image is `ghcr.io/ding113/claude-code-hub:latest` (and in this repo’s Dockerfile the runtime command is `node server.js` only if Node exists in the image). If the published image is bun-based or otherwise lacks the `node` binary, the healthcheck will fail continuously and the service will be marked unhealthy. Consider switching back to a healthcheck that relies on tools guaranteed to exist in the image (or ensure `node` is present in the runtime image).
How can I resolve this? If you propose a fix, please make it concise. |
||
| interval: 30s | ||
| timeout: 5s | ||
| retries: 3 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| ALTER TABLE "providers" ADD COLUMN "gemini_google_search_preference" varchar(20); | ||
| ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "gemini_google_search_preference" varchar(20); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "group_priorities" jsonb DEFAULT 'null'::jsonb; | ||
NieiR marked this conversation as resolved.
Show resolved
Hide resolved
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Runtime port mismatch
This Dockerfile changes
ENV PORT/EXPOSEfrom8080to3000, but the final command isnode server.jsfrom Next standalone output. If the generatedserver.jsis configured to bindprocess.env.PORT(common) this is fine, but if any deployment still expects8080(e.g., existing infra / docs / helm values), this change will break connectivity. At minimum ensure the app actually listens on 3000 in standalone mode and update any references that still assume 8080.Prompt To Fix With AI