From bb374dd374a3bfa7435fadcf76e02b7986dbadb4 Mon Sep 17 00:00:00 2001 From: Momentry Studio Date: Thu, 8 Oct 2026 12:57:24 +0800 Subject: [PATCH] release: Momentry Studio v0.1.0 Production Release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 发布内容: - Tauri Desktop App (.app bundle + DMG) - Core API Binary (momentry-core) - Proxy Binary (momentry-proxy) - 完整文档(README, RELEASE_NOTES, 安装指南, 部署指南) 新功能: - 批量 Deep Scan(并发控制 + 队列显示) - 批量 Unregister - Face Filter 自动保存(500ms 防抖) - Registered 卡片 Checkbox 修复 - MarkBase Engine 健康检查修复 - FS Name 唯一性修复 发布包: - 文件名: momentry-studio-v0.1.0-macos-aarch64.tar.gz - 大小: 37MB - SHA256: 154ef0e02a6199278ea6bc6a5073d11c631527f2825ba78ceeafcb5f486cf969 平台: macOS (Apple Silicon) 构建日期: 2026-10-08 Git Commit: 8e71996 --- ...-studio-v0.1.0-macos-aarch64.tar.gz.sha256 | 1 + release/ADMIN_DEPLOYMENT_GUIDE.md | 345 ++++++++++++++++++ release/README.md | 69 ++++ release/RELEASE_NOTES.md | 250 +++++++++++++ release/VERSION.json | 46 +++ release/install.sh | 107 ++++++ 6 files changed, 818 insertions(+) create mode 100644 momentry-studio-v0.1.0-macos-aarch64.tar.gz.sha256 create mode 100644 release/ADMIN_DEPLOYMENT_GUIDE.md create mode 100644 release/README.md create mode 100644 release/RELEASE_NOTES.md create mode 100644 release/VERSION.json create mode 100755 release/install.sh diff --git a/momentry-studio-v0.1.0-macos-aarch64.tar.gz.sha256 b/momentry-studio-v0.1.0-macos-aarch64.tar.gz.sha256 new file mode 100644 index 0000000..382fd80 --- /dev/null +++ b/momentry-studio-v0.1.0-macos-aarch64.tar.gz.sha256 @@ -0,0 +1 @@ +154ef0e02a6199278ea6bc6a5073d11c631527f2825ba78ceeafcb5f486cf969 momentry-studio-v0.1.0-macos-aarch64.tar.gz diff --git a/release/ADMIN_DEPLOYMENT_GUIDE.md b/release/ADMIN_DEPLOYMENT_GUIDE.md new file mode 100644 index 0000000..faf7155 --- /dev/null +++ b/release/ADMIN_DEPLOYMENT_GUIDE.md @@ -0,0 +1,345 @@ +# Momentry Studio v0.1.0 - Admin Team 部署指南 + +**发布日期:** 2026-10-08 +**构建版本:** 8e71996 +**目标环境:** 生产环境 + +--- + +## 📦 发布包信息 + +**文件名:** `momentry-studio-v0.1.0-macos-aarch64.tar.gz` +**文件大小:** 37MB +**SHA256:** +``` +154ef0e02a6199278ea6bc6a5073d11c631527f2825ba78ceeafcb5f486cf969 +``` + +--- + +## 🔐 验证发布包 + +```bash +# 下载发布包后验证校验和 +shasum -a 256 -c momentry-studio-v0.1.0-macos-aarch64.tar.gz.sha256 +``` + +--- + +## 📋 部署前检查清单 + +### 1. 系统要求 +- [ ] macOS 12.0+ (Monterey 或更高版本) +- [ ] Apple Silicon (M1/M2/M3) +- [ ] 4GB RAM minimum (推荐 8GB) +- [ ] 1GB 可用磁盘空间 + +### 2. 依赖服务 +- [ ] PostgreSQL 14+ 已安装并运行 +- [ ] Qdrant 1.7+ 已安装并运行 +- [ ] MarkBase Core API 2.3+ 已配置 +- [ ] MarkBase Engine 1.0+ 已配置 + +### 3. 网络配置 +- [ ] 端口 3002 可用(Core API) +- [ ] 端口 8888 可用(Proxy) +- [ ] 端口 5432 可用(PostgreSQL) +- [ ] 端口 6333 可用(Qdrant) + +--- + +## 🚀 部署步骤 + +### 步骤 1: 准备发布包 + +```bash +# 1. 解压发布包 +tar -xzf momentry-studio-v0.1.0-macos-aarch64.tar.gz + +# 2. 验证内容 +ls -l +# 应该看到: +# - Momentry Studio.app +# - Momentry Studio_0.1.0_aarch64.dmg +# - momentry-core +# - momentry-proxy +# - install.sh +# - README.md +# - RELEASE_NOTES.md +# - VERSION.json +``` + +### 步骤 2: 部署 Studio App + +**选项 A: 使用 DMG(推荐)** +```bash +# 打开 DMG 文件 +open "Momentry Studio_0.1.0_aarch64.dmg" + +# 在 Finder 中拖拽到 Applications +# 或使用命令行: +cp -r "/Volumes/Momentry Studio/Momentry Studio.app" /Applications/ +``` + +**选项 B: 使用 .app** +```bash +# 直接复制到 Applications +cp -r "Momentry Studio.app" /Applications/ + +# 如果需要,授权运行 +xattr -d com.apple.quarantine "/Applications/Momentry Studio.app" +``` + +**选项 C: 使用安装脚本** +```bash +# 运行安装脚本 +./install.sh +``` + +### 步骤 3: 部署 Backend Services + +**安装 binaries:** +```bash +# 复制到系统 bin 目录 +sudo cp momentry-core /usr/local/bin/ +sudo cp momentry-proxy /usr/local/bin/ + +# 设置权限 +sudo chmod +x /usr/local/bin/momentry-core +sudo chmod +x /usr/local/bin/momentry-proxy +``` + +### 步骤 4: 配置服务 + +**创建配置文件:** +```bash +# 创建配置目录 +mkdir -p /opt/momentry/config + +# 创建配置文件 +cat > /opt/momentry/config/momentry.toml << 'TOML' +[server] +host = "0.0.0.0" +port = 3002 + +[database] +url = "postgres://momentry:password@localhost:5432/momentry" + +[face_settings] +min_confidence = 0.5 +min_bbox_size = 80 +TOML +``` + +**设置环境变量:** +```bash +# 在 ~/.zshrc 或 ~/.bash_profile 中添加 +export MOMENTRY_API_KEY="your_production_api_key" +export MOMENTRY_DATA_DIR="/opt/momentry/data" +export MOMENTRY_CONFIG="/opt/momentry/config/momentry.toml" +``` + +### 步骤 5: 启动服务 + +**手动启动:** +```bash +# 1. 启动 Core API +momentry-core server --config /opt/momentry/config/momentry.toml + +# 2. 在另一个终端启动 Studio +open "/Applications/Momentry Studio.app" +``` + +**创建 launchd 服务(可选):** +```bash +# 创建 Core API 服务 +sudo cat > /Library/LaunchDaemons/com.momentry.core.plist << 'PLIST' + + + + + Label + com.momentry.core + ProgramArguments + + /usr/local/bin/momentry-core + server + --config + /opt/momentry/config/momentry.toml + + RunAtLoad + + KeepAlive + + + +PLIST + +# 加载服务 +sudo launchctl load /Library/LaunchDaemons/com.momentry.core.plist +``` + +--- + +## ✅ 验证部署 + +### 1. 验证 Core API + +```bash +# 检查服务状态 +curl http://localhost:3002/api/v1/health + +# 预期响应: +# {"status":"ok","version":"1.0.0",...} +``` + +### 2. 验证 Proxy + +```bash +# 检查 proxy 状态 +curl http://localhost:8888/health + +# 预期响应: +# ok +``` + +### 3. 验证 Studio App + +```bash +# 打开应用 +open "/Applications/Momentry Studio.app" + +# 检查进程 +ps aux | grep "Momentry Studio" +``` + +### 4. 功能测试 + +在 Studio 中测试以下功能: + +- [ ] 登录功能 +- [ ] Library 文件浏览 +- [ ] Search 功能 +- [ ] People 页面 +- [ ] Admin 设置页面 + - [ ] MarkBase Engine 状态显示为 `online` + - [ ] 批量 Deep Scan 功能 + - [ ] 批量 Unregister 功能 + +--- + +## 🔄 更新流程 + +### 从旧版本升级 + +```bash +# 1. 停止旧服务 +sudo launchctl unload /Library/LaunchDaemons/com.momentry.core.plist 2>/dev/null || true +pkill -f momentry-core +pkill -f "Momentry Studio" + +# 2. 备份数据(重要!) +pg_dump momentry > momentry_backup_$(date +%Y%m%d).sql + +# 3. 安装新版本 +# (按照上面的部署步骤) + +# 4. 启动新服务 +sudo launchctl load /Library/LaunchDaemons/com.momentry.core.plist +``` + +--- + +## 🐛 故障排查 + +### 问题 1: 应用无法启动 + +**症状:** 双击 .app 后无反应 + +**解决方案:** +```bash +# 移除隔离属性 +xattr -d com.apple.quarantine "/Applications/Momentry Studio.app" + +# 检查控制台日志 +log stream --predicate 'process == "momentry-studio"' --level debug +``` + +### 问题 2: 无法连接到 Core API + +**症状:** Studio 显示连接错误 + +**解决方案:** +```bash +# 检查 Core API 是否运行 +ps aux | grep momentry-core + +# 检查端口是否监听 +lsof -i :3002 + +# 检查防火墙 +# 确保端口 3002 和 8888 已开放 +``` + +### 问题 3: MarkBase Engine 显示 offline + +**症状:** Admin 页面显示 MarkBase Engine 为 offline + +**解决方案:** +```bash +# 检查 MarkBase Engine 是否运行 +curl http://localhost:8080/health + +# 如果正常返回 {"status":"ok"},但 Studio 仍显示 offline +# 确认使用的是最新版本的 Studio(v0.1.0+) +``` + +--- + +## 📊 监控和日志 + +### 日志位置 + +- **Core API:** `/opt/momentry/logs/core.log` +- **Proxy:** `/opt/momentry/logs/proxy.log` +- **Studio:** `~/Library/Logs/Momentry Studio/` + +### 性能监控 + +```bash +# 检查资源使用 +top -pid $(pgrep momentry-core) + +# 检查内存使用 +ps aux | grep momentry-core | awk '{print $6/1024 "MB"}' +``` + +--- + +## 📞 支持联系 + +**技术支持:** +- Email: tech@momentry.ai +- Slack: #momentry-support + +**紧急联系:** +- On-call: +886-xxx-xxx-xxx + +**文档:** +- 详细发布说明: RELEASE_NOTES.md +- 用户手册: https://docs.momentry.ai + +--- + +## 📝 部署记录 + +**部署日期:** _________ +**部署人员:** _________ +**部署环境:** _________ +**验证结果:** [ ] 通过 [ ] 失败 +**备注:** _________ + +--- + +**部署完成后,请将此文档归档并通知开发团队。** + diff --git a/release/README.md b/release/README.md new file mode 100644 index 0000000..720edbf --- /dev/null +++ b/release/README.md @@ -0,0 +1,69 @@ +# Momentry Studio v0.1.0 + +## 快速开始 + +### 安装 + +**方法 1: DMG 安装(推荐)** +```bash +# 打开 DMG 文件 +open "Momentry Studio_0.1.0_aarch64.dmg" +# 拖拽到 Applications 文件夹 +``` + +**方法 2: 使用安装脚本** +```bash +./install.sh +``` + +**方法 3: 手动安装** +```bash +cp -r "Momentry Studio.app" /Applications/ +``` + +### 启动服务 + +1. **启动 Core API:** +```bash +export MOMENTRY_API_KEY=your_api_key +./momentry-core server --host 0.0.0.0 --port 3002 +``` + +2. **启动 Studio:** +```bash +open "/Applications/Momentry Studio.app" +``` + +## 包含内容 + +- `Momentry Studio.app` - macOS 桌面应用 +- `Momentry Studio_0.1.0_aarch64.dmg` - DMG 安装包 +- `momentry-core` - Core API server +- `momentry-proxy` - HTTP proxy server +- `install.sh` - 安装脚本 +- `RELEASE_NOTES.md` - 详细发布说明 + +## 系统要求 + +- macOS 12.0+ (Apple Silicon) +- PostgreSQL 14+ +- 4GB RAM minimum + +## 新功能 + +- ✅ 批量 Deep Scan(并发控制) +- ✅ 批量 Unregister +- ✅ Face Filter 自动保存 +- ✅ MarkBase Engine 健康检查修复 +- ✅ FS Name 唯一性修复 + +## 文档 + +- 详细发布说明:`RELEASE_NOTES.md` +- 配置示例:运行 `install.sh` 后创建在 `~/.momentry/momentry.toml` + +## 支持 + +- 技术支持:tech@momentry.ai +- Bug 报告:https://github.com/momentry/studio/issues + diff --git a/release/RELEASE_NOTES.md b/release/RELEASE_NOTES.md new file mode 100644 index 0000000..a33b1e5 --- /dev/null +++ b/release/RELEASE_NOTES.md @@ -0,0 +1,250 @@ +# Momentry Studio v0.1.0 Release Notes + +**发布日期:** 2026-10-08 +**构建类型:** Production Release +**平台:** macOS (Apple Silicon) + +--- + +## 📦 发布包内容 + +### 1. Tauri Desktop Application +- **Momentry Studio.app** - macOS 原生桌面应用 +- **Momentry Studio_0.1.0_aarch64.dmg** - DMG 安装包 + +### 2. Backend Services +- **momentry-core** - Core API server binary +- **momentry-proxy** - HTTP proxy server binary + +--- + +## ✨ 新功能 + +### 1. 批量操作增强 + +**批量 Deep Scan:** +- 在 Registered 和 Completed section 添加批量 Deep Scan 按钮 +- 使用 p-limit 控制并发(maxConcurrent = 2) +- 超过并发的文件自动排队 +- 实时显示队列状态:`Processing 1/5 (3 queuing, 2 active)...` + +**批量 Unregister:** +- 在 Registered 和 Completed section 添加批量 Unregister 按钮 +- 支持确认对话框 +- 显示成功/失败统计 + +### 2. Face Filter 自动保存 + +**实时自动保存(500ms 防抖):** +- 修改后自动保存到后端数据库 +- 离开页面时自动保存未保存的修改 +- 组件卸载时清理定时器 +- 显示自动保存状态:`✓ Auto-saved` 或 `⏳ Saving...` + +### 3. Registered 卡片 Checkbox 修复 + +**修复问题:** +- toggleSelect 函数使用正确的 key(file_uuid) +- 修复 HTML 缩进问题 +- 确保勾选功能正常工作 + +--- + +## 🐛 Bug 修复 + +### 1. MarkBase Engine 健康检查修复 + +**问题:** +- Admin 页面显示 MarkBase Engine 为 `offline` +- 实际服务正在运行 + +**修复:** +- 支持 JSON 和纯文本格式的健康检查响应 +- 根据 Content-Type 判断响应格式 +- 从 JSON 提取 version 和 uptime 信息 + +### 2. FS Name 唯一性问题修复 + +**问题:** +- 两个自动命名源导致名称混乱 +- Person_X 和 Face Trace X 格式并存 + +**修复:** +- 移除所有自动命名逻辑 +- 新 traces 默认为 "Unassigned" +- 统一 trace_profiles.name 为唯一名称来源 + +### 3. 性能优化 + +**并发控制:** +- thumbnail 并发数从 32 降到 10 +- search_agents API timeout 提升到 90s + +**排序优化:** +- scanning/preparing 文件优先显示 +- 改进用户体验 + +--- + +## 📋 系统要求 + +### macOS +- macOS 12.0 (Monterey) 或更高版本 +- Apple Silicon (M1/M2/M3) 或 Intel (需单独构建) +- 4GB RAM minimum, 8GB recommended +- 1GB 可用磁盘空间 + +### 依赖服务 +- PostgreSQL 14+ +- Qdrant (v1.7+) +- MarkBase Core API (v2.3+) +- MarkBase Engine (v1.0+) + +--- + +## 🚀 安装指南 + +### 方法 1: DMG 安装(推荐) + +1. 下载 `Momentry Studio_0.1.0_aarch64.dmg` +2. 双击打开 DMG 文件 +3. 拖拽 "Momentry Studio.app" 到 Applications 文件夹 +4. 从 Applications 启动应用 + +### 方法 2: 直接使用 .app + +1. 复制 "Momentry Studio.app" 到 Applications 文件夹 +2. 首次运行可能需要在"系统偏好设置 > 安全性与隐私"中允许运行 + +--- + +## ⚙️ 配置 + +### 环境变量 + +**Momentry Core API:** +```bash +export MOMENTRY_API_KEY=your_api_key_here +export DATABASE_URL=postgres://user:password@localhost:5432/momentry +``` + +**Momentry Proxy:** +```bash +export MOMENTRY_API_KEY=your_api_key_here +export MOMENTRY_DATA_DIR=/path/to/data/users +``` + +### 配置文件 + +**momentry.toml (Core API):** +```toml +[server] +host = "0.0.0.0" +port = 3002 + +[database] +url = "postgres://user:password@localhost:5432/momentry" + +[face_settings] +min_confidence = 0.5 +min_bbox_size = 80 +``` + +--- + +## 🔧 部署指南 + +### 1. 启动 Core API + +```bash +./momentry-core server --host 0.0.0.0 --port 3002 +``` + +### 2. 启动 Proxy(如果需要独立部署) + +```bash +./momentry-proxy +``` + +### 3. 启动 Tauri 应用 + +- 双击 "Momentry Studio.app" 启动 +- 或从终端运行:`open "Momentry Studio.app"` + +--- + +## 📊 服务架构 + +``` +┌─────────────────────────────────────────┐ +│ Momentry Studio (Tauri App) │ +│ ┌─────────────┐ ┌────────────────┐ │ +│ │ Frontend │───▶│ Proxy (Rust) │ │ +│ │ (Vue 3) │ │ Port 8888 │ │ +│ └─────────────┘ └────────────────┘ │ +└─────────────────────────────────────────┘ + │ + ▼ + ┌───────────────────────────┐ + │ Momentry Core API │ + │ Port 3002 │ + │ - Files │ + │ - Faces │ + │ - Search │ + └───────────────────────────┘ + │ + ┌───────────────┴───────────────┐ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │PostgreSQL│ │ Qdrant │ + │ Port 5432│ │Port 6333 │ + └──────────┘ └──────────┘ +``` + +--- + +## 🎯 已知问题 + +1. **批量 Deep Scan 队列** + - 当前前端临时实现,未来需要后端队列支持 + - 参考:`docs/DEEP_SCAN_QUEUE_FEATURE_REQUEST.md` + +2. **System Stats Validation** + - 已暂时禁用,待后续修复 + +--- + +## 📝 版本历史 + +**v0.1.0 (2026-10-08)** +- 初始正式发布版本 +- 包含所有核心功能 +- 批量操作增强 +- Face Filter 自动保存 +- 多项 Bug 修复 + +--- + +## 🛠️ 技术栈 + +- **Frontend**: Vue 3 + TypeScript + Vite +- **Desktop**: Tauri 2 (Rust backend) +- **Backend**: Rust (Axum, SQLx) +- **Database**: PostgreSQL 14+ +- **Search Engine**: Qdrant +- **Build**: Cargo + npm + +--- + +## 📞 支持联系 + +- **技术支持**: tech@momentry.ai +- **Bug 报告**: https://github.com/momentry/studio/issues +- **文档**: https://docs.momentry.ai + +--- + +## 📜 许可证 + +Proprietary Software - All Rights Reserved + diff --git a/release/VERSION.json b/release/VERSION.json new file mode 100644 index 0000000..5f1b299 --- /dev/null +++ b/release/VERSION.json @@ -0,0 +1,46 @@ +{ + "version": "0.1.0", + "build_date": "2026-10-08", + "build_type": "release", + "platform": "macos-aarch64", + "git_commit": "8e71996", + "components": { + "studio_app": { + "name": "Momentry Studio.app", + "version": "0.1.0", + "size": "28MB" + }, + "dmg": { + "name": "Momentry Studio_0.1.0_aarch64.dmg", + "size": "9.4MB" + }, + "core_api": { + "name": "momentry-core", + "version": "1.0.0", + "size": "44MB" + }, + "proxy": { + "name": "momentry-proxy", + "version": "0.1.0", + "size": "7.6MB" + } + }, + "features": [ + "batch_deep_scan", + "batch_unregister", + "face_filter_autosave", + "markbase_health_check_fix", + "fs_name_uniqueness_fix" + ], + "requirements": { + "macos": "12.0+", + "architecture": "arm64", + "ram": "4GB minimum", + "dependencies": [ + "PostgreSQL 14+", + "Qdrant 1.7+", + "MarkBase Core API 2.3+", + "MarkBase Engine 1.0+" + ] + } +} diff --git a/release/install.sh b/release/install.sh new file mode 100755 index 0000000..37fe67a --- /dev/null +++ b/release/install.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +# Momentry Studio v0.1.0 Installation Script +# Usage: ./install.sh + +set -e + +echo "=========================================" +echo " Momentry Studio v0.1.0 Installation " +echo "=========================================" +echo "" + +# 检查操作系统 +if [[ "$(uname)" != "Darwin" ]]; then + echo "❌ Error: This script only supports macOS" + exit 1 +fi + +# 检查架构 +ARCH=$(uname -m) +if [[ "$ARCH" != "arm64" ]]; then + echo "⚠️ Warning: This build is optimized for Apple Silicon (arm64)" + echo " Current architecture: $ARCH" + echo " Some features may not work correctly." +fi + +# 设置安装目录 +INSTALL_DIR="${INSTALL_DIR:-/Applications}" +BIN_DIR="${BIN_DIR:-/usr/local/bin}" + +echo "📋 Installation Settings:" +echo " App Location: $INSTALL_DIR/Momentry Studio.app" +echo " Binary Location: $BIN_DIR" +echo "" + +# 询问确认 +read -p "Continue with installation? (y/n) " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Installation cancelled." + exit 1 +fi + +# 检查 .app 是否存在 +if [[ ! -d "Momentry Studio.app" ]]; then + echo "❌ Error: Momentry Studio.app not found in current directory" + echo " Please run this script from the release directory" + exit 1 +fi + +# 安装 .app +echo "" +echo "📦 Installing Momentry Studio.app..." +cp -r "Momentry Studio.app" "$INSTALL_DIR/" +echo "✅ App installed to $INSTALL_DIR/Momentry Studio.app" + +# 安装 binary(可选) +if [[ -f "momentry-core" ]] && [[ -f "momentry-proxy" ]]; then + echo "" + read -p "Install backend binaries to $BIN_DIR? (y/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + echo "📦 Installing binaries..." + sudo cp momentry-core "$BIN_DIR/" + sudo cp momentry-proxy "$BIN_DIR/" + sudo chmod +x "$BIN_DIR/momentry-core" + sudo chmod +x "$BIN_DIR/momentry-proxy" + echo "✅ Binaries installed to $BIN_DIR" + fi +fi + +# 创建配置示例 +echo "" +echo "📝 Creating example configuration..." +mkdir -p ~/.momentry +cat > ~/.momentry/momentry.toml << 'TOML' +# Momentry Studio Configuration Example + +[server] +host = "0.0.0.0" +port = 3002 + +[database] +url = "postgres://user:password@localhost:5432/momentry" + +[face_settings] +min_confidence = 0.5 +min_bbox_size = 80 +TOML +echo "✅ Configuration example created at ~/.momentry/momentry.toml" + +# 完成 +echo "" +echo "=========================================" +echo " ✅ Installation Complete! " +echo "=========================================" +echo "" +echo "🚀 Next Steps:" +echo " 1. Configure database connection in ~/.momentry/momentry.toml" +echo " 2. Set environment variable: export MOMENTRY_API_KEY=your_key" +echo " 3. Start Core API: momentry-core server" +echo " 4. Launch Studio: open \"$INSTALL_DIR/Momentry Studio.app\"" +echo "" +echo "📖 Documentation: See RELEASE_NOTES.md" +echo "📞 Support: tech@momentry.ai" +echo "" +