feat(mindspace): enforce PostgreSQL user data delivery
This commit is contained in:
@@ -152,6 +152,7 @@ description: 在专属 MindSpace 目录生成可公开访问的静态 HTML 报
|
||||
6. 生成 HTML 后,向用户提供可访问链接,格式:
|
||||
\`${publicBaseUrl}/${PUBLISH_ROOT_DIR}/${slug}/public/<文件名>\`
|
||||
(写入 \`public/页面.html\` 时 URL **必须**含 \`public/\`;仅当 HTML 直接写在 workspace 根目录时才省略)
|
||||
7. **只要页面接收用户输入并要求以后查看、汇总、统计、修改或删除,就不是纯静态页**。禁止使用 \`localStorage\` / \`sessionStorage\` / \`IndexedDB\` 保存任何数据;必须立即 \`load_skill\` → \`page-data-collect\`,通过 Page Data API 写入当前用户专属 PostgreSQL schema。禁止 SQLite、静态 JSON/JS 文件或内存 fallback 冒充持久化。记账、日记、打卡、清单、台账、问卷、报名及其管理页都适用。
|
||||
|
||||
## 推荐工作流
|
||||
|
||||
@@ -298,6 +299,13 @@ ${renderBrandingBlock(addressName)}
|
||||
- 有 \`shell\` 时用 \`ls oa/\`、\`find .\`、\`cat oa/file.csv\`;有 \`tree\` 时用 \`tree oa/\`
|
||||
- 不要说「我没有 shell」——若系统提示已列出 shell,就必须用 shell 在工作区内操作
|
||||
|
||||
## 生成 / 发布 HTML 页面
|
||||
|
||||
- 用户要网页、交互应用或分享链接时,必须使用 对应 skill 并将最终 HTML 写入 \`public/*.html\`
|
||||
- 若页面接收用户输入并需要保存、查询、统计、修改或删除,必须使用 \`page-data-collect\` + Page Data API,禁止 localStorage / sessionStorage / IndexedDB
|
||||
- \`apps__create_app\` 只能用于设计预览,不是 H5 交付物;使用后仍必须写入 \`public/*.html\` 并返回真实可访问链接
|
||||
- 未验证文件已落盘且链接可访问前,禁止声称「已创建」「已打开」或「可在 Apps 标签找到」
|
||||
|
||||
## Word 下载页
|
||||
|
||||
- 若用户要求页面里可下载 Word / docx:必须先 \`load_skill\` → \`docx-generate\`
|
||||
@@ -322,6 +330,12 @@ export function buildSandboxSessionConstraints({ baseConstraints, developerTools
|
||||
const lines = [
|
||||
baseConstraints,
|
||||
'',
|
||||
'## 当前用户专属 PostgreSQL 数据空间(硬性)',
|
||||
'- 当前 session 已绑定当前用户身份;`private_data_*` 工具只连接该用户在新 PG 中的独立 schema,禁止跨用户访问',
|
||||
'- 任何需要保存、再次读取、统计、汇总、筛选、修改或删除的数据都必须使用 `private_data_*` 建表/注册 dataset,并由 HTML 通过 Page Data API 访问',
|
||||
'- Agent 生成的 HTML/JavaScript 禁止使用 `localStorage`、`sessionStorage`、`IndexedDB` 保存数据;write_file/edit_file 会直接拒绝此类代码',
|
||||
'- 不允许 SQLite,也不允许在浏览器存储、静态 JSON/JS 文件中伪装持久化业务数据;失败时必须修复 PG/Page Data 链路,不能降级',
|
||||
'',
|
||||
'## 当前会话可用文件工具',
|
||||
`- ${tools.join(', ')}`,
|
||||
hasSandboxMcp
|
||||
@@ -385,6 +399,8 @@ export function buildPublishConstraints({ slug, username, publicBaseUrl, publish
|
||||
'- **查找文件**:在工作区内对应分区搜索(如 `oa/2025-12-06T13-34_export.csv`),不要搜其它用户目录或公网 URL',
|
||||
'- **禁止**:访问 `assets/` 内部路径、其它用户目录、主机绝对路径;禁止用公网 URL 列目录或读 CSV',
|
||||
'- **路径规则**:只用相对路径;禁止 `../`;工作区外的路径会被系统拒绝(OS 层强制,非软约束)',
|
||||
'- **当前用户专属 PG**:本 session 的 `private_data_*` 工具已绑定当前用户,只能访问该用户在新 PostgreSQL 中的独立 schema;任何需持久化、再次读取、统计、汇总、修改或删除的数据都必须走 PG + Page Data API',
|
||||
'- **浏览器存储硬禁令**:Agent 生成的 HTML/JavaScript 禁止使用 `localStorage`、`sessionStorage`、`IndexedDB` 保存数据;禁止 SQLite、静态 JSON/JS 文件或内存 fallback 冒充持久化',
|
||||
'- **生成页面(必须亲自完成)**:先 `load_skill` → `static-page-publish`,再用 `write_file`/`edit_file` 写入 `public/页面.html`',
|
||||
'- **默认只生成 HTML**:不要在没有明确需求时强制生成 Word、PDF、长图等伴生文件',
|
||||
'- **Word 下载页(按需亲自完成)**:若用户明确要求 Word / docx 下载,必须先 `load_skill` → `docx-generate`,生成并确认 `public/*.docx` 已存在,再在 HTML 中用相对路径链接',
|
||||
|
||||
Reference in New Issue
Block a user