auto-save 2026-05-15 18:23 (~6)
This commit is contained in:
@@ -1,11 +1,5 @@
|
||||
{
|
||||
"entries": [
|
||||
{
|
||||
"files_changed": 4,
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 4 项未提交变更 · 最近提交:auto-save 2026-05-14 02:36 (~2)",
|
||||
"ts": "2026-05-13T18:38:48Z",
|
||||
"type": "session-heartbeat"
|
||||
},
|
||||
{
|
||||
"files_changed": 4,
|
||||
"hash": "43da937",
|
||||
@@ -3254,6 +3248,13 @@
|
||||
"type": "session-heartbeat",
|
||||
"message": "Codex 会话活跃 · 最近命令:codex · 4 项未提交变更 · 最近提交:auto-save 2026-05-15 18:12 (~1)",
|
||||
"files_changed": 4
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-15T18:18:10+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-15 18:17 (+1, ~4)",
|
||||
"hash": "a851ce1",
|
||||
"files_changed": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
2
RULES.md
2
RULES.md
@@ -21,7 +21,7 @@
|
||||
- 管理后台:待定
|
||||
- 服务器目录:`/opt/skg-marketing-studio`
|
||||
- 生产启动:`docker compose -f docker-compose.prod.yml --env-file deploy/.env.production up -d --build`
|
||||
- 生产架构:`web` 容器用 Nginx 承载 Next 静态导出;`/login/`、`/_next/`、`/assets/` 等登录页必需静态资源公开访问;未登录访问工作台跳转 `/login/`,`/api/` 通过 Nginx `auth_request` 校验 FastAPI 会话 Cookie 后反代到 `skg-marketing-api:4291`;Traefik 通过 `coolify` 外部网络接入 80/443
|
||||
- 生产架构:`web` 容器用 Nginx 承载 Next 静态导出;`/login/`、`/_next/`、`/assets/`、`/oasis-source/` 等登录页必需静态资源公开访问;未登录访问工作台跳转 `/login/`,`/api/` 通过 Nginx `auth_request` 校验 FastAPI 会话 Cookie 后反代到 `skg-marketing-api:4291`;Traefik 通过 `coolify` 外部网络接入 80/443
|
||||
- 持久化目录:服务器 `./data/jobs` 挂载到后端 `/data/jobs`
|
||||
- 登录凭证:用户名写下方快捷登录;密码明文备份只放服务器 `/root/skg-marketing-studio-login.txt`,生产环境变量 `WEB_AUTH_PASSWORD` / `WEB_AUTH_SESSION_SECRET` 只放服务器 `deploy/.env.production`
|
||||
|
||||
|
||||
@@ -92,6 +92,11 @@ server {
|
||||
try_files $uri =404;
|
||||
}
|
||||
|
||||
location /oasis-source/ {
|
||||
root /usr/share/nginx/html;
|
||||
try_files $uri =404;
|
||||
}
|
||||
|
||||
location ~* ^/(icon|apple-icon|favicon|manifest|placeholder).* {
|
||||
root /usr/share/nginx/html;
|
||||
try_files $uri =404;
|
||||
|
||||
@@ -536,7 +536,7 @@
|
||||
<tr>
|
||||
<td>生产站点</td>
|
||||
<td><code>https://marketing.skg.com</code></td>
|
||||
<td>公司域名已解析到 VPS <code>76.13.31.179</code>。线上由既有 Coolify / Traefik 负责 HTTPS 入口,项目 <code>web</code> 容器用 Nginx 承载静态前端;<code>/login/</code>、<code>/_next/</code>、<code>/assets/</code> 为公开登录页资源,未登录访问工作台跳转 <code>/login/</code>,<code>/api/</code> 通过 <code>auth_request</code> 校验 FastAPI 会话 Cookie 后再反代。</td>
|
||||
<td>公司域名已解析到 VPS <code>76.13.31.179</code>。线上由既有 Coolify / Traefik 负责 HTTPS 入口,项目 <code>web</code> 容器用 Nginx 承载静态前端;<code>/login/</code>、<code>/_next/</code>、<code>/assets/</code>、<code>/oasis-source/</code> 为公开登录页资源,未登录访问工作台跳转 <code>/login/</code>,<code>/api/</code> 通过 <code>auth_request</code> 校验 FastAPI 会话 Cookie 后再反代。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>生产部署</td>
|
||||
@@ -592,7 +592,8 @@
|
||||
<tbody>
|
||||
<tr><td><code>web/app/page.tsx</code></td><td>产品工作台主状态:jobs、activeJobId、按 job 隔离的 selectedFrames/详情面板状态、clipboard、ReactFlow 节点和边;负责打开/找回画布工作面板。</td></tr>
|
||||
<tr><td><code>web/app/login/page.tsx</code></td><td>生产登录页:访问账号/访问密钥表单、保持会话、错误/成功状态;页面改为全屏 Digital Oasis 式动态背景、黑白/香槟金视觉、Internal Access 胶囊和画面/声音/成片状态栏;同时保留动态角色作为 Live Creative Modules 小组件。</td></tr>
|
||||
<tr><td><code>web/components/login/oasis-canvas.tsx</code></td><td>登录页全屏动态视觉层:本地 Canvas 绘制低视角景深草场、金色柔光、粒子和随鼠标轻微摆动的草叶,不依赖外部 CDN,不出现任何产品元素。</td></tr>
|
||||
<tr><td><code>web/components/login/oasis-canvas.tsx</code></td><td>登录页全屏动态视觉层:用 iframe 直接承载下载包 <code>web/public/oasis-source/index.html</code> 的原 WebGPU / Three.js 草场源码;父级登录页只覆盖自己的文案和表单。</td></tr>
|
||||
<tr><td><code>web/public/oasis-source/index.html</code></td><td>从下载包 <code>remix-3d-website-the-digital-o</code> 复制来的原始视觉源码。只额外隐藏 demo 站自己的导航、文字和设置面板,保留原 WebGPU 渲染、草场、景深和鼠标交互源码。</td></tr>
|
||||
<tr><td><code>web/components/login/animated-login-characters.tsx</code></td><td>登录页四个几何动态角色组件:当前以小型 Live Creative Modules 方式挂在左侧展示区,保留鼠标眼神跟随、输入、显示密码、错误和成功状态反馈。</td></tr>
|
||||
<tr><td><code>web/components/nodes/index.tsx</code></td><td>DAG 节点定义:Input、VisualLab、Audio、Compose,以及画布工作面板 KeyframePanel / VideoFramePanel;旧 Keyframe/Storyboard/VideoGen 组件保留但不再挂主画布。</td></tr>
|
||||
<tr><td><code>web/components/audio-strip.tsx</code></td><td>底部吸附音频条:可拖拽调整高度;播放原音频时移动指针,逐个高亮英文/中文字幕节点和对应波形,并在右侧固定显示按原音频时长生成的 SKG 英文产品口播和 MiniMax 随机英文配音。</td></tr>
|
||||
@@ -951,8 +952,8 @@ SubjectAsset {
|
||||
</header>
|
||||
<div class="body">
|
||||
<p><strong>问题:</strong>用户希望采用下载的 <code>remix-3d-website-the-digital-o</code> 视觉方向;登录页需要更有沉浸感,但不能回到具体产品展示。</p>
|
||||
<p><strong>改动:</strong>新增 <code>web/components/login/oasis-canvas.tsx</code>,用本地 Canvas 绘制全屏低视角景深草场、金色柔光、粒子和鼠标轻微交互,替代原左侧抽象流程卡片;<code>web/app/login/page.tsx</code> 改为全屏动态背景 + 右侧身份验证面板结构,保留 <code>Live Creative Modules</code> 动态角色、内容创作中枢文案和画面/声音/成片状态栏,不引入外部 CDN 或产品元素。</p>
|
||||
<p><strong>影响:</strong><code>web/app/login/page.tsx</code>、<code>web/components/login/oasis-canvas.tsx</code>、<code>web/app/globals.css</code>、<code>docs/source-analysis.html</code>。</p>
|
||||
<p><strong>改动:</strong>新增 <code>web/public/oasis-source/index.html</code>,直接复制下载包原始 WebGPU / Three.js 草场源码;<code>web/components/login/oasis-canvas.tsx</code> 改为 iframe 承载这份源码,登录页只做上层文案和表单覆盖。源码页仅用 CSS 隐藏 demo 站自己的导航、文字和设置面板,保留原草场、景深、风动和鼠标交互。</p>
|
||||
<p><strong>影响:</strong><code>web/app/login/page.tsx</code>、<code>web/components/login/oasis-canvas.tsx</code>、<code>web/public/oasis-source/index.html</code>、<code>web/app/globals.css</code>、<code>docs/source-analysis.html</code>。</p>
|
||||
</div>
|
||||
</article>
|
||||
<article class="change">
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
export function OasisCanvas() {
|
||||
return (
|
||||
<iframe
|
||||
allow="webgpu; fullscreen"
|
||||
aria-hidden="true"
|
||||
className="login-oasis-canvas"
|
||||
loading="eager"
|
||||
src="/oasis-source/index.html"
|
||||
title="Digital Oasis WebGPU background"
|
||||
/>
|
||||
|
||||
@@ -864,21 +864,27 @@
|
||||
.delay-4 { transition-delay: 0.55s !important; }
|
||||
|
||||
/* Embedded in SKG Marketing Studio login.
|
||||
Keep the original WebGPU scene source running, hide this demo site's
|
||||
page chrome/content so the parent login UI owns all text and controls. */
|
||||
Keep the original DOM alive because the WebGPU source reads section
|
||||
positions for camera state. Visual text/chrome is made transparent so
|
||||
the parent login UI owns all visible text and controls. */
|
||||
html, body {
|
||||
height: 100%;
|
||||
overflow: hidden !important;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
#scroll-container,
|
||||
.nav-float,
|
||||
.nav-mobile-overlay,
|
||||
.site-footer {
|
||||
opacity: 0 !important;
|
||||
visibility: hidden !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.settings-gear,
|
||||
.settings-panel,
|
||||
.progress-bar,
|
||||
.site-footer {
|
||||
display: none !important;
|
||||
.progress-bar {
|
||||
opacity: 0 !important;
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
canvas {
|
||||
|
||||
Reference in New Issue
Block a user