release: Momentry Studio v0.1.0 Production Release

发布内容:
- 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
This commit is contained in:
2026-10-08 12:57:24 +08:00
parent 8e71996ab1
commit bb374dd374
6 changed files with 818 additions and 0 deletions

View File

@@ -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'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.momentry.core</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/momentry-core</string>
<string>server</string>
<string>--config</string>
<string>/opt/momentry/config/momentry.toml</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
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
---
## 📝 部署记录
**部署日期:** _________
**部署人员:** _________
**部署环境:** _________
**验证结果:** [ ] 通过 [ ] 失败
**备注:** _________
---
**部署完成后,请将此文档归档并通知开发团队。**

69
release/README.md Normal file
View File

@@ -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

250
release/RELEASE_NOTES.md Normal file
View File

@@ -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

46
release/VERSION.json Normal file
View File

@@ -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+"
]
}
}

107
release/install.sh Executable file
View File

@@ -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 ""