> **本仓库说明：这是 `test-memind` 本地开发仓库，默认用于本机联调与验收。生产 / 测试 / 预览隔离规则单独看 [docs/service-isolation-runbook.md](docs/service-isolation-runbook.md)，不要把生产同步流程混进本地开发。**
>
> **重要：** `pnpm dev` 只启动本仓库自己的服务，不再联动 Plaza。需要全栈联动时请显式使用 `pnpm dev:all`。
>
> **流程硬约束：** 本机开发每次都要形成 Git commit；本机不允许直接 `rsync` 到 `103` 或 `105`，只能从本地 commit 打包发布。

# Memind (TKMind H5)

Memind 主应用与 Plaza 发现广场。**当前以本机 Mac 为主服务**，105 服务器已停用。

> **开发基线：** `v0.1.0-baseline`（2026-06-16）— 后续开发请从此 tag 创建分支，详见 [docs/BASELINE.md](docs/BASELINE.md)。

## 快速开始

```bash
pnpm install
cp .env.example .env   # 按需填写
pnpm dev               # MindSpace + API / Portal + Ops
```

| 服务 | 地址 |
|------|------|
| MindSpace H5 | http://127.0.0.1:5173/?preview=mindspace |
| Plaza | http://127.0.0.1:3001/plaza |
| Ops 审核后台 | http://127.0.0.1:3002/ops/ |
| API / Portal | http://127.0.0.1:8081 |
| memind_adm | http://127.0.0.1:8082 |

`pnpm dev` 现在只启动本仓库自己的服务，Plaza 已单独剥离为 `pnpm dev:plaza` / `pnpm start:plaza`。如果你确实要一次性拉起旧式全家桶，请用 `pnpm dev:all`。

详见 [docs/local-dev.md](docs/local-dev.md)。如果你在本机联调 Plaza，请优先看本地开发文档里 `PLAZA_APP_DIR` 的默认路径；生产 / 测试 / 预览隔离另看 [生产 / 测试 / 预览隔离规程](docs/service-isolation-runbook.md)。

仅 Plaza：

```bash
pnpm start:plaza       # 本机正式模式（Tunnel 回源）
pnpm dev:plaza         # 开发热更新
pnpm open:plaza        # 浏览器打开 https://plaza.tkmind.cn/plaza
```

## Plaza 本机为主

完整说明见 **[docs/plaza-local.md](docs/plaza-local.md)**，摘要如下：

| 步骤 | 命令 |
|------|------|
| 首次 DNS | `sudo pnpm setup:plaza-dns` |
| 首次 TLS（可选） | `sudo pnpm setup:plaza-local` |
| 公网 Tunnel | `pnpm setup:plaza-tunnel` |
| 日常正式 | `pnpm start:plaza` |
| 开发调试 | `pnpm dev:plaza` |
| 诊断 | `pnpm check:plaza` |

公网 `https://plaza.tkmind.cn` 经 Cloudflare Tunnel 回源本机 `:3001`，需保持 `pnpm start:plaza` 运行。

## 常用脚本

| 命令 | 说明 |
|------|------|
| `pnpm dev` | 本仓库开发（不含 Plaza） |
| `pnpm dev:all` | 兼容入口：全栈开发（含 Plaza），仅在需要联动 Plaza 时使用 |
| `pnpm open:local-test` | 浏览器打开 H5 |
| `pnpm start:plaza` | Plaza 正式模式 + Portal |
| `pnpm dev:plaza` | Plaza 开发模式 + Portal |
| `pnpm open:plaza` | 浏览器强制本地解析 |
| `pnpm check:plaza` | 本地 Plaza 诊断 |
| `pnpm test` | 单元测试 |
| `bash scripts/release-portal-runtime-prod.sh --dry-run` | 预演 103 Portal runtime 发布包，不做实际切换 |
| `bash scripts/release-portal-runtime-prod.sh` | 本机构建 runtime artifact 并按正式流程发布 Portal 到 103 |

## 发布规则入口

```bash
cd /Users/john/PycharmProjects/test/test-memind
bash scripts/release-portal-runtime-prod.sh --dry-run
bash scripts/release-portal-runtime-prod.sh
```

说明：

- 103 Portal 生产必须是**无源码 runtime 模式**
- 103 生产禁止 `rsync`
- `bash scripts/release-prod.sh` 已停用，不得再用于 Portal
- 规则文档见仓库根目录的开发 / 测试 / 生产发布规则，以及 [Portal 无源码迁移说明](docs/no-source-portal-migration.md)

## 文档

- [本地开发（test.*.tkmind.cn）](docs/local-dev.md)
- [Memind 小白使用手册](docs/memind-beginner-guide.md)
- [标准化开发测试发布约束](ENGINEERING_WORKFLOW_RULES.md)
- [开发环境规则](DEVELOPMENT_RELEASE_RULES.md)
- [测试发布规则](TEST_RELEASE_RULES.md)
- [生产发布规则](PRODUCTION_RELEASE_RULES.md)
- [生产更新发布指南](docs/release-deploy.md)
- [生产 / 测试 / 预览隔离规程](docs/service-isolation-runbook.md)
- [Plaza 本机部署与 Tunnel](docs/plaza-local.md)
