Compare commits

...

2 Commits

Author SHA1 Message Date
CI Bot c213ff8719 fix(ci): pass NGINX_CONF build arg for staging web image
CI Build & Deploy Pipeline / Build Staging API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (push) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 2m5s
CI/CD Pipeline / Unit Tests (push) Successful in 2m14s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m43s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 38s
CI/CD Pipeline / Frontend Lint (push) Successful in 2m49s
CI Build & Deploy Pipeline / Build Production API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (push) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (push) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m19s
CI/CD Pipeline / Integration Tests (push) Successful in 1m39s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m29s
The web.Dockerfile defaults NGINX_CONF to infra/docker/nginx.conf
(production config with xiaoxia-api-production upstream). Staging
builds were baking the production nginx config into the web image,
causing nginx to fail with 'host not found in upstream
xiaoxia-api-production' on the staging network.

Add extra_build_args to the staging web matrix entry and pass it
through to docker_build_push.sh so staging builds use
nginx-staging.conf (which proxies to xiaoxia-api-staging:8000).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 22:15:46 +08:00
CI Bot 4dbd7968f0 fix: 修复生成链路三个阻塞问题
CI Build & Deploy Pipeline / Build Staging API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (push) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (push) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (push) Successful in 1m29s
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (push) Successful in 32s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 34s
CI/CD Pipeline / Unit Tests (push) Successful in 1m50s
CI Build & Deploy Pipeline / Build Production API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (push) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (push) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m39s
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 1m51s
CI/CD Pipeline / Integration Tests (push) Successful in 1m30s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m21s
1. EditingPlanner.css: 状态栏 display:none → flex 布局,恢复「生成历史」按钮可见
2. main.tsx: 添加 <AntApp> 包裹,修复 antd v5 message.xxx() toast 不显示
3. EditingPlanner.tsx: handleGoToGenerate 先重置计划状态为 draft,
   解决 failed 状态计划无法更新配置和触发生成的问题

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 21:46:37 +08:00
4 changed files with 34 additions and 6 deletions
+2 -1
View File
@@ -60,6 +60,7 @@ jobs:
image_name: xiaoxia-saas-web
cache_name: web-cache
timeout: 30
extra_build_args: NGINX_CONF=infra/docker/nginx-staging.conf
steps:
- name: Checkout code
shell: sh
@@ -139,7 +140,7 @@ jobs:
run: "set -eu\n# 确保使用 docker-container driver 以支持 cache export 功能\nif ! docker buildx inspect ci-builder-${GITHUB_RUN_ID}-${GITHUB_JOB} > /dev/null 2>&1; then\n docker buildx create --use --name ci-builder-${GITHUB_RUN_ID}-${GITHUB_JOB} --driver docker-container\n echo \"Created ci-builder (docker-container driver)\"\nelse\n docker buildx use ci-builder-${GITHUB_RUN_ID}-${GITHUB_JOB}\n echo \"Using existing ci-builder\"\nfi\ndocker buildx inspect --bootstrap\n"
- name: Build and push ${{ matrix.service_display }} image (buildx cache)
shell: sh
run: "set -eu\nREGISTRY=\"xiaoxia-registry.cn-hangzhou.cr.aliyuncs.com/xiaoxiakeji\"\nIMAGE_TAG=\"${REGISTRY}/${{ matrix.image_name }}:${GITHUB_SHA}\"\nCACHE_REF=\"${REGISTRY}/${{ matrix.cache_name }}:${GITHUB_REF_NAME}\"\n\nbash scripts/ci/docker_build_push.sh ${{ matrix.dockerfile }} \"${IMAGE_TAG}\" \"${CACHE_REF}\" APP_VERSION=\"${GITHUB_SHA}\"\n\necho\necho \"${{ matrix.service_display }} image pushed: ${IMAGE_TAG}\""
run: "set -eu\nREGISTRY=\"xiaoxia-registry.cn-hangzhou.cr.aliyuncs.com/xiaoxiakeji\"\nIMAGE_TAG=\"${REGISTRY}/${{ matrix.image_name }}:${GITHUB_SHA}\"\nCACHE_REF=\"${REGISTRY}/${{ matrix.cache_name }}:${GITHUB_REF_NAME}\"\n\nbash scripts/ci/docker_build_push.sh ${{ matrix.dockerfile }} \"${IMAGE_TAG}\" \"${CACHE_REF}\" APP_VERSION=\"${GITHUB_SHA}\" ${{ matrix.extra_build_args }}\n\necho\necho \"${{ matrix.service_display }} image pushed: ${IMAGE_TAG}\""
- name: Job duration summary
if: always()
shell: sh
+4 -2
View File
@@ -6,7 +6,7 @@ import React from "react";
import ReactDOM from "react-dom/client";
import { RouterProvider } from "react-router-dom";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { ConfigProvider } from "antd";
import { ConfigProvider, App as AntApp } from "antd";
import zhCN from "antd/locale/zh_CN";
import router from "./router";
import "./index.css";
@@ -91,7 +91,9 @@ ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<QueryClientProvider client={queryClient}>
<ConfigProvider locale={zhCN} theme={theme}>
<RouterProvider router={router} />
<AntApp>
<RouterProvider router={router} />
</AntApp>
</ConfigProvider>
</QueryClientProvider>
</React.StrictMode>,
@@ -1812,7 +1812,27 @@
═══════════════════════════════════════ */
.ep-status-bar {
display: none;
display: flex;
align-items: center;
justify-content: space-between;
padding: 6px 16px;
background: var(--ep-bg-card, #fff);
border-bottom: 1px solid var(--ep-border, #e8e8e8);
font-size: 12px;
color: var(--text-secondary, #666);
flex-shrink: 0;
}
.ep-status-left,
.ep-status-right {
display: flex;
align-items: center;
gap: 4px;
}
.ep-status-sep {
margin: 0 4px;
opacity: 0.35;
}
/* ═══════════════════════════════════════
@@ -955,14 +955,19 @@ const EditingPlanner: React.FC = () => {
let planId = loadedPlanId;
if (planId) {
// 已有计划 → 更新配置(不传 status,避免非 draft 状态被后端拒绝)
// 已有计划 → 先重置状态为 draftfailed/editing 等非 draft 状态被后端拒绝更新和生成
try {
await updateEditPlan(planId, { status: "draft" });
} catch (resetErr) {
console.warn("[状态重置跳过]", resetErr);
}
// 再更新配置
try {
await updateEditPlan(planId, {
config,
total_duration: totalDuration,
});
} catch (updateErr) {
// 非 draft 状态(如 failed/editingPUT 会被拒绝,忽略继续生成
console.warn("[计划更新跳过]", updateErr);
}
} else {