diff --git a/backend/Dockerfile b/backend/Dockerfile index b133fdd..36b47f2 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,7 +1,7 @@ -FROM python:3.12-slim +FROM localhost:8082/python:3.12-slim WORKDIR /app -COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv COPY pyproject.toml uv.lock ./ -RUN uv sync --frozen --no-dev +RUN pip install --index-url http://localhost:8081/repository/pypi-group/simple --trusted-host localhost uv && \ + uv sync --frozen --no-dev --index-url http://localhost:8081/repository/pypi-group/simple COPY app/ app/ CMD ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8900"] diff --git a/docker-compose.yml b/docker-compose.yml index 4f44059..047e63f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,7 +13,7 @@ services: frontend: build: ./frontend ports: - - "80:80" + - "8899:80" depends_on: - backend diff --git a/features/full-implementation/test-images/01-homepage.png b/features/full-implementation/test-images/01-homepage.png new file mode 100644 index 0000000..d2df427 Binary files /dev/null and b/features/full-implementation/test-images/01-homepage.png differ diff --git a/features/full-implementation/test-images/02-project-list.png b/features/full-implementation/test-images/02-project-list.png new file mode 100644 index 0000000..c26a715 Binary files /dev/null and b/features/full-implementation/test-images/02-project-list.png differ diff --git a/features/full-implementation/test-images/03-project-overview-graph.png b/features/full-implementation/test-images/03-project-overview-graph.png new file mode 100644 index 0000000..30fe746 Binary files /dev/null and b/features/full-implementation/test-images/03-project-overview-graph.png differ diff --git a/features/full-implementation/test-images/04-graph-drilldown.png b/features/full-implementation/test-images/04-graph-drilldown.png new file mode 100644 index 0000000..a962082 Binary files /dev/null and b/features/full-implementation/test-images/04-graph-drilldown.png differ diff --git a/features/full-implementation/test-images/05-editor-page.png b/features/full-implementation/test-images/05-editor-page.png new file mode 100644 index 0000000..22eacad Binary files /dev/null and b/features/full-implementation/test-images/05-editor-page.png differ diff --git a/features/full-implementation/test-images/06-csv-editor.png b/features/full-implementation/test-images/06-csv-editor.png new file mode 100644 index 0000000..ae2b141 Binary files /dev/null and b/features/full-implementation/test-images/06-csv-editor.png differ diff --git a/features/full-implementation/test-images/07-md-editor.png b/features/full-implementation/test-images/07-md-editor.png new file mode 100644 index 0000000..c542387 Binary files /dev/null and b/features/full-implementation/test-images/07-md-editor.png differ diff --git a/features/full-implementation/works/progress.md b/features/full-implementation/works/progress.md new file mode 100644 index 0000000..050f595 --- /dev/null +++ b/features/full-implementation/works/progress.md @@ -0,0 +1,32 @@ +# arch-design-agent-skill-dashboard — full-implementation 进度 + +## 步骤 + +1. ✅ Pre-flight: 确认容器运行、项目可见 +2. ✅ 项目移入 develops/ 目录 +3. ✅ 创建 feature branch: feat/full-implementation +4. ✅ 启动桥接 (bridge-supervisor): run 20260323-134055-524432 +5. ✅ CC 开发完成(桥接交互式) +6. ✅ CC 完成,进入后续流程 +7. ✅ QA 测试(宿主机 agent-browser) +8. ✅ 工作记录 +9. ⏳ 提交 PR +10. 🔲 更新项目索引 (projects.md) +11. 🔲 回复报告 + +## 桥接信息 +- Run ID: 20260323-134055-524432 +- Session: arch-dashboard-full-impl +- CC Talk Room: p94wpqsv +- Trigger Room: sj2fua7t + +## 测试结果摘要 +- 前端地址: http://192.168.0.150:8899 +- 后端地址: http://192.168.0.150:8900 +- 全景关系图: ✅(63 nodes / 94 edges) +- 图节点下钻: ✅ +- CSV 编辑器: ✅ +- Markdown 编辑器: ✅ +- 设计扫描: ✅ +- 实现进度评估: ✅ +- Health API: ✅ diff --git a/features/full-implementation/works/summary.md b/features/full-implementation/works/summary.md new file mode 100644 index 0000000..ff2d1ea --- /dev/null +++ b/features/full-implementation/works/summary.md @@ -0,0 +1,67 @@ +# arch-design-agent-skill-dashboard — full-implementation 开发记录 + +## 基本信息 +- 项目: arch-design-agent-skill-dashboard +- 功能: full-implementation(全功能实现) +- 日期: 2026-03-23 +- 状态: ✅ 完成 + +## 需求描述 +根据项目中 design/ 目录下的架构设计文档(业务架构、应用架构、数据架构、技术架构、领域设计等),使用 Superpowers 结构化开发流程,实现 dashboard 的所有功能。项目框架和目录结构已搭建好,需补全所有模块的实际业务逻辑代码。 + +## 技术方案 +- **后端**: Python 3.12 + FastAPI + uvicorn + Pydantic,模块化 DDD 架构 +- **前端**: Vue 3 + TypeScript + Vite + D3.js(图谱可视化) +- **部署**: Docker Compose(backend 8900 / frontend 8899) +- **数据**: JSON 文件持久化项目注册表,设计文件直接读写 + +## 实现细节 + +### 后端模块 (30+ commits) +- **project**: CRUD + JSON 文件持久化 +- **scanner**: CSV/MD/YAML/OpenAPI 四种解析器,支持 20+ CSV 文件类型映射为 Design 实体 +- **editor**: 文件读写 + 影响分析(通过 frontmatter upstream/downstream 关系) +- **graph**: 全景关系图构建 + 邻居查询(63 nodes, 94 edges) +- **impl_tracker**: 实现进度评估 + 手动覆盖(9 modules) +- **design**: 31 个设计实体 dataclass + FileStatus 检测 + 验证规则 +- **shared**: 配置管理 + 文件系统工具 + +### 前端模块 +- **project**: 项目列表 + 创建/删除 +- **graph**: D3.js 力导向图全景 + 节点下钻详情面板(右侧抽屉) +- **editor**: CSV 表格编辑器(添加行/删除行/保存)+ Markdown 双栏编辑器(源码 + 实时预览) +- **router**: 3 个路由(首页/项目图谱/编辑器) + +### 部署 +- Docker Compose: backend (8900) + frontend via nginx (8899) +- DESIGN_DIR 挂载项目根目录 → 容器内 /data/design +- Dockerfile 使用 Nexus 代理(PyPI + npm) + +## 测试结果 +| 序号 | 功能 | 结果 | 截图 | +|------|------|------|------| +| 1 | 首页空状态 | ✅ | test-images/01-homepage.png | +| 2 | 项目列表 | ✅ | test-images/02-project-list.png | +| 3 | 全景关系图(63 nodes, 94 edges) | ✅ | test-images/03-project-overview-graph.png | +| 4 | 图节点下钻详情 | ✅ | test-images/04-graph-drilldown.png | +| 5 | 编辑器页面 | ✅ | test-images/05-editor-page.png | +| 6 | CSV 表格编辑器 | ✅ | test-images/06-csv-editor.png | +| 7 | Markdown 双栏编辑器 | ✅ | test-images/07-md-editor.png | +| 8 | API /health | ✅ | (API response: {"status": "ok"}) | +| 9 | 设计扫描 (POST /scan) | ✅ | (94 files scanned) | +| 10 | 实体查询 (capabilities) | ✅ | (10 capabilities) | +| 11 | 实体查询 (modules) | ✅ | (9 modules) | +| 12 | 影响分析 | ✅ | (API 200 OK) | +| 13 | 实现进度评估 | ✅ | (9 modules evaluated) | + +## API 端点 (23 个) +- Projects CRUD, Scan, Entities (capabilities/modules/entities/integrations/value-flows/user-journeys/data-flows/external-systems/traceability-links/runtime-components + detail), Graph (panorama/neighbors), Editor (read/write + impact), Impl Progress (evaluate/override), Health + +## 遇到的问题及解决方案 +| 问题 | 解决方案 | +|------|----------| +| 宿主机 8900 端口被旧 uvicorn 占用 | kill 旧进程 | +| .git 权限不匹配(vagrant vs dev:1001) | chown 修复 | +| host.docker.internal 在 Linux 不可用 | 改用 --network host 构建 + localhost | +| nginx:alpine 不在 Nexus 代理中 | dpull 通过代理下载后 docker tag | +| Playwright input 选择器不匹配 | 检查 Vue 模板,使用正确的 `input` 选择器 | diff --git a/features/works.md b/features/works.md new file mode 100644 index 0000000..d5d1561 --- /dev/null +++ b/features/works.md @@ -0,0 +1,14 @@ +# arch-design-agent-skill-dashboard 工作记录 + +## full-implementation +- **日期**: 2026-03-23 +- **状态**: ✅ 完成 +- **分支**: feat/full-implementation +- **摘要**: + - 基于 design/ 架构文档完成前后端全功能实现 + - 后端实现 project / scanner / editor / graph / impl_tracker 五大模块 API + - 前端实现项目管理、D3 全景关系图、图节点下钻、CSV 编辑器、Markdown 编辑器 + - 增加 Docker Compose 部署能力,服务地址:前端 `http://192.168.0.150:8899`,后端 `http://192.168.0.150:8900` + - QA 测试通过:全景图(63 nodes / 94 edges)、扫描、编辑、进度评估、health API 全部正常 +- **详细记录**: `features/full-implementation/works/summary.md` +- **测试截图**: `features/full-implementation/test-images/` diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 9cd49d8..acb2302 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,11 +1,11 @@ -FROM node:20-alpine AS build +FROM localhost:8082/node:20-alpine AS build WORKDIR /app COPY package.json package-lock.json ./ -RUN npm ci +RUN npm --registry http://localhost:8081/repository/npm-group/ ci COPY . . RUN npm run build -FROM nginx:alpine +FROM localhost:8082/nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80