Visual Journal deploy commited on
Commit
67447a4
·
1 Parent(s): 6a6bf47

Deploy eebe13e to Docker Space

Browse files
CHANGELOG.md CHANGED
@@ -6,22 +6,13 @@
6
 
7
  ## [未发布]
8
 
9
- ### 变更
10
 
11
- - 产品正式名称统一为“图像手记 / Visual Journal”;现有技术标识保持兼容,并同步更新 Space 卡片、浏览器图标、访问码文案、历史下载名和运维标识。
12
- - 默认上游请求和上游能力探针 User-Agent 统一为 `visual-journal` 品牌标识。
13
- - Agent 状态库初始化、请求恢复和测试重置遵循显式资源释放顺序;运行中不允许切换状态库配置。
14
- - 本地部署在启用 WebUI 自动图片清理时要求显式确认,避免发布后立即清理历史图片。
15
- - Prettier 与 Tailwind 格式化插件升级到当前兼容版本,并收敛现有源码格式。
16
-
17
- ### 修复
18
-
19
- - 非活动生成表单不再显示当前表单之外的高分辨率流式建议。
20
-
21
- ## [2.2.0] - 2026-07-27
22
 
23
  ### 新增
24
 
 
25
  - 增加工作台生成活动状态播报、短屏布局和 API 设置弹窗的回归测试,覆盖生成、批量、继续编辑和配置草稿生命周期。
26
  - 增加共享 DOM 测试辅助模块以及可转发 Node test runner 参数的脚本测试入口。
27
  - 增加默认关闭的 WebUI 文件系统图片自动清理,可配置保留天数,并通过运行时能力接口查询配置和最近执行摘要。
@@ -29,6 +20,11 @@
29
 
30
  ### 变更
31
 
 
 
 
 
 
32
  - Node.js 最低版本统一为 `22.15.0`,启动器、诊断脚本、客户说明和部署文档使用同一版本门槛。
33
  - 安装流程会确认 npm 支持 `--strict-allow-scripts`,避免旧 npm 静默忽略 `allowScripts` 白名单。
34
  - 独立启动脚本显式加载 Next.js 运行时环境,测试和版本检查脚本改为支持显式测试文件与 runner 参数。
@@ -39,6 +35,7 @@
39
 
40
  ### 修复
41
 
 
42
  - 修正生成完成、批量进度和继续编辑之间残留活动状态导致的实时播报错误。
43
  - 修正 API 设置弹窗常驻挂载后的草稿回填、焦点恢复和重复测试生命周期问题。
44
  - 修正移动端运行时状态加载引起的首屏布局位移,并增加键盘跳到主要内容入口。
@@ -178,12 +175,12 @@
178
  - 支持基于 OpenAI 兼容 Images API 的本地图片生成和编辑流程。
179
  - 增加 Docker 部署支持和多平台启动脚本。
180
 
181
- [未发布]: https://github.com/MisonL/gpt-image-playground-customer/compare/v2.2.0...HEAD
182
- [2.2.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/v2.1.0...v2.2.0
183
- [2.1.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/v2.0.0...v2.1.0
184
- [2.0.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/v1.4.0...v2.0.0
185
- [1.4.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/v1.3.0...v1.4.0
186
- [1.3.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/v1.2.0...v1.3.0
187
- [1.2.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/v1.1.0...v1.2.0
188
- [1.1.0]: https://github.com/MisonL/gpt-image-playground-customer/compare/dc7c8f5855e80cb9507517b5748c718e7155df52...v1.1.0
189
- [1.0.0]: https://github.com/MisonL/gpt-image-playground-customer/commit/dc7c8f5855e80cb9507517b5748c718e7155df52
 
6
 
7
  ## [未发布]
8
 
9
+ 暂无变更
10
 
11
+ ## [2.2.0] - 2026-07-28
 
 
 
 
 
 
 
 
 
 
12
 
13
  ### 新增
14
 
15
+ - README 增加 Hugging Face 官方复制入口,供其他用户创建独立的私有 Space;复制流程不会继承正式服务的凭证。
16
  - 增加工作台生成活动状态播报、短屏布局和 API 设置弹窗的回归测试,覆盖生成、批量、继续编辑和配置草稿生命周期。
17
  - 增加共享 DOM 测试辅助模块以及可转发 Node test runner 参数的脚本测试入口。
18
  - 增加默认关闭的 WebUI 文件系统图片自动清理,可配置保留天数,并通过运行时能力接口查询配置和最近执行摘要。
 
20
 
21
  ### 变更
22
 
23
+ - 产品正式名称统一为“图像手记 / Visual Journal”;现有技术标识保持兼容,并同步更新 Space 卡片、浏览器图标、访问码文案、历史下载名和运维标识。
24
+ - 默认上游请求和上游能力探针 User-Agent 统一为 `visual-journal` 品牌标识。
25
+ - Agent 状态库初始化、请求恢复和测试重置遵循显式资源释放顺序;运行中不允许切换状态库配置。
26
+ - 本地部署在启用 WebUI 自动图片清理时要求显式确认,避免发布后立即清理历史图片。
27
+ - Prettier 与 Tailwind 格式化插件升级到当前兼容版本,并收敛现有源码格式。
28
  - Node.js 最低版本统一为 `22.15.0`,启动器、诊断脚本、客户说明和部署文档使用同一版本门槛。
29
  - 安装流程会确认 npm 支持 `--strict-allow-scripts`,避免旧 npm 静默忽略 `allowScripts` 白名单。
30
  - 独立启动脚本显式加载 Next.js 运行时环境,测试和版本检查脚本改为支持显式测试文件与 runner 参数。
 
35
 
36
  ### 修复
37
 
38
+ - 非活动生成表单不再显示当前表单之外的高分辨率流式建议。
39
  - 修正生成完成、批量进度和继续编辑之间残留活动状态导致的实时播报错误。
40
  - 修正 API 设置弹窗常驻挂载后的草稿回填、焦点恢复和重复测试生命周期问题。
41
  - 修正移动端运行时状态加载引起的首屏布局位移,并增加键盘跳到主要内容入口。
 
175
  - 支持基于 OpenAI 兼容 Images API 的本地图片生成和编辑流程。
176
  - 增加 Docker 部署支持和多平台启动脚本。
177
 
178
+ [未发布]: https://github.com/MisonL/visual-journal/compare/v2.2.0...HEAD
179
+ [2.2.0]: https://github.com/MisonL/visual-journal/compare/v2.1.0...v2.2.0
180
+ [2.1.0]: https://github.com/MisonL/visual-journal/compare/v2.0.0...v2.1.0
181
+ [2.0.0]: https://github.com/MisonL/visual-journal/compare/v1.4.0...v2.0.0
182
+ [1.4.0]: https://github.com/MisonL/visual-journal/compare/v1.3.0...v1.4.0
183
+ [1.3.0]: https://github.com/MisonL/visual-journal/compare/v1.2.0...v1.3.0
184
+ [1.2.0]: https://github.com/MisonL/visual-journal/compare/v1.1.0...v1.2.0
185
+ [1.1.0]: https://github.com/MisonL/visual-journal/compare/dc7c8f5855e80cb9507517b5748c718e7155df52...v1.1.0
186
+ [1.0.0]: https://github.com/MisonL/visual-journal/commit/dc7c8f5855e80cb9507517b5748c718e7155df52
README.md CHANGED
@@ -16,7 +16,7 @@ app_port: 4783
16
  对外产品名称为“图像手记 / Visual Journal”。为保持已有部署和自动化客户端兼容,仓库包名、Docker 服务、HF Space slug、环境变量、API 路径和 Skill 标识继续使用 `gpt-image-playground` 相关技术名称。
17
 
18
  <p align="center">
19
- <img src="https://raw.githubusercontent.com/MisonL/gpt-image-playground-customer/1d36d08e5e022de7183429e7cc345f26d837defc/readme-images/interface.jpg" alt="图像手记主界面" width="900"/>
20
  </p>
21
 
22
  ## 快速开始
@@ -71,8 +71,8 @@ Windows、macOS 和 Linux 也可分别使用 `start-windows.bat`、`start-macos.
71
  ## 界面预览
72
 
73
  <p align="center">
74
- <img src="https://raw.githubusercontent.com/MisonL/gpt-image-playground-customer/1d36d08e5e022de7183429e7cc345f26d837defc/readme-images/mask-creation.jpg" alt="遮罩编辑界面" width="49%"/>
75
- <img src="https://raw.githubusercontent.com/MisonL/gpt-image-playground-customer/1d36d08e5e022de7183429e7cc345f26d837defc/readme-images/history.jpg" alt="历史与费用面板" width="49%"/>
76
  </p>
77
 
78
  ## 配置
@@ -142,6 +142,12 @@ GIP_BIND_HOST=0.0.0.0 npm run deploy:local
142
 
143
  ### Hugging Face Space
144
 
 
 
 
 
 
 
145
  ```bash
146
  npm run doctor:hf-space
147
  npm run deploy:space
 
16
  对外产品名称为“图像手记 / Visual Journal”。为保持已有部署和自动化客户端兼容,仓库包名、Docker 服务、HF Space slug、环境变量、API 路径和 Skill 标识继续使用 `gpt-image-playground` 相关技术名称。
17
 
18
  <p align="center">
19
+ <img src="https://raw.githubusercontent.com/MisonL/visual-journal/eebe13e18fbb1f099fe4f3313cc68e97fe8b111b/readme-images/interface.jpg" alt="图像手记主界面" width="900"/>
20
  </p>
21
 
22
  ## 快速开始
 
71
  ## 界面预览
72
 
73
  <p align="center">
74
+ <img src="https://raw.githubusercontent.com/MisonL/visual-journal/eebe13e18fbb1f099fe4f3313cc68e97fe8b111b/readme-images/mask-creation.jpg" alt="遮罩编辑界面" width="49%"/>
75
+ <img src="https://raw.githubusercontent.com/MisonL/visual-journal/eebe13e18fbb1f099fe4f3313cc68e97fe8b111b/readme-images/history.jpg" alt="历史与费用面板" width="49%"/>
76
  </p>
77
 
78
  ## 配置
 
142
 
143
  ### Hugging Face Space
144
 
145
+ 可直接复制官方 Space 到自己的 Hugging Face 账号或组织中,创建独立的私有服务:
146
+
147
+ [![在 Hugging Face 复制此 Space](https://huggingface.co/datasets/huggingface/badges/resolve/main/duplicate-this-space-md.svg)](https://huggingface.co/spaces/misonL/gpt-image-playground-customer?duplicate=true)
148
+
149
+ 复制流程默认创建私有 Space,不会复制本服务的 API Key、访问码或 Agent token。创建后必须在新 Space 的 Settings 中配置 `APP_PASSWORD`、`AGENT_API_TOKEN` 和自己的上游凭证;Docker Space 的创建资格仍受 Hugging Face 当前账户政策约束。
150
+
151
  ```bash
152
  npm run doctor:hf-space
153
  npm run deploy:space
public/hf-space-deploy-marker.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "schema_version": 1,
3
- "local_sha": "1d36d08e5e022de7183429e7cc345f26d837defc",
4
- "created_at": "2026-07-27T23:18:59.808Z",
5
- "deploy_id": "b4c6c831-4485-41f2-b1e5-83b044176edc"
6
  }
 
1
  {
2
  "schema_version": 1,
3
+ "local_sha": "eebe13e18fbb1f099fe4f3313cc68e97fe8b111b",
4
+ "created_at": "2026-07-28T03:13:21.366Z",
5
+ "deploy_id": "3f0d1a6c-942d-4a7c-86a3-c09d831456df"
6
  }
scripts/check-version-metadata.mjs CHANGED
@@ -6,7 +6,7 @@ import { fileURLToPath } from 'node:url';
6
 
7
  const REPO_ROOT = fileURLToPath(new URL('..', import.meta.url));
8
  const SEMVER_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
9
- const CHANGELOG_BASE_URL = 'https://github.com/MisonL/gpt-image-playground-customer';
10
 
11
  function readText(path) {
12
  return readFileSync(join(REPO_ROOT, path), 'utf8');
 
6
 
7
  const REPO_ROOT = fileURLToPath(new URL('..', import.meta.url));
8
  const SEMVER_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
9
+ const CHANGELOG_BASE_URL = 'https://github.com/MisonL/visual-journal';
10
 
11
  function readText(path) {
12
  return readFileSync(join(REPO_ROOT, path), 'utf8');
scripts/product-branding.test.mjs CHANGED
@@ -24,6 +24,16 @@ describe('product branding', () => {
24
  assert.match(favicon, /<title>图像手记 \/ Visual Journal<\/title>/);
25
  });
26
 
 
 
 
 
 
 
 
 
 
 
27
  it('uses the formal product name in access-code guidance and history downloads', () => {
28
  const translations = readRepositoryText('src/lib/i18n.tsx');
29
  const page = readRepositoryText('src/app/page.tsx');
 
24
  assert.match(favicon, /<title>图像手记 \/ Visual Journal<\/title>/);
25
  });
26
 
27
+ it('offers an isolated private Hugging Face Space copy without sharing production credentials', () => {
28
+ const readme = readRepositoryText('README.md');
29
+
30
+ assert.match(
31
+ readme,
32
+ /https:\/\/huggingface\.co\/spaces\/misonL\/gpt-image-playground-customer\?duplicate=true/
33
+ );
34
+ assert.match(readme, /复制流程默认创建私有 Space,不会复制本服务的 API Key、访问码或 Agent token。/);
35
+ });
36
+
37
  it('uses the formal product name in access-code guidance and history downloads', () => {
38
  const translations = readRepositoryText('src/lib/i18n.tsx');
39
  const page = readRepositoryText('src/app/page.tsx');
src/app/api/deploy-marker/route.ts CHANGED
@@ -1,6 +1,6 @@
1
  import { NextResponse } from 'next/server';
2
 
3
- const deployMarker = {"schema_version":1,"local_sha":"1d36d08e5e022de7183429e7cc345f26d837defc","created_at":"2026-07-27T23:18:59.808Z","deploy_id":"b4c6c831-4485-41f2-b1e5-83b044176edc"} as const;
4
 
5
  export const dynamic = 'force-dynamic';
6
 
 
1
  import { NextResponse } from 'next/server';
2
 
3
+ const deployMarker = {"schema_version":1,"local_sha":"eebe13e18fbb1f099fe4f3313cc68e97fe8b111b","created_at":"2026-07-28T03:13:21.366Z","deploy_id":"3f0d1a6c-942d-4a7c-86a3-c09d831456df"} as const;
4
 
5
  export const dynamic = 'force-dynamic';
6