# ShowenV2 — 数字生命窗口平台

基于 Rust 的跨平台插件微内核架构，支持全息/VR/AR/屏幕显示，承载虚拟宠物、数字人、AI 歌姬、3D 模型等数字生命内容。

## 架构概览

```
ShowenV2/
├── CLAUDE.md / docs/STATUS.md   # 管理手册 · 功能成熟度板
├── src/
│   ├── core/              # 插件微内核（消息/配置/动态插件/版本）
│   └── plugins/           # video · http · ble · wifi · device · screen · live2d · ai
├── configs/               # 角色内容包 JSON
├── clients/flutter/       # 安卓控制 App（M1 遥控 + M2.1 对话骨架）
├── scripts/device/        # 设备运维脚本
├── plugin-sdk/ · plugins/ # 动态插件 SDK 与示例
├── tests/                 # M1.2 集成测试
└── docs/                  # PRD / 测试计划 / STATUS
```

**功能做到哪了**：请先读 [`docs/STATUS.md`](docs/STATUS.md)，勿仅看提交日期。

## 技术栈

- **语言**: Rust (edition 2021)
- **视频**: OpenCV 0.66
- **HTTP**: warp + tokio
- **BLE**: D-Bus + BlueZ (GATT)
- **WiFi**: nmcli
- **插件加载**: libloading
- **远程仓库**: ureq + flate2 + tar

## 动态插件系统

ShowenV2 支持两种插件模式：

1. **静态插件** — 编译时链接（video, http, ble, wifi, device, screen, live2d, ai 等）
2. **动态插件** — 运行时加载 `.so` 文件，通过 `extern "C"` FFI + JSON 序列化通信

动态插件特性：
- 多版本管理 (`plugin_store/` 目录结构)
- 远程仓库下载安装 (HTTP + tar.gz)
- 错误自动回退 (AutoRollback / DisableAndLog)
- REST API 管理 (`/api/plugins/*`)

## 快速开始

```bash
# 验证配置
cargo run -- --validate --config configs/dog_state_machine.json

# 运行
cargo run -- --config configs/dog_state_machine.json

# 测试
cargo test --workspace
```

## 硬件与平台定位

- **平台定位**: ShowenV2 是通用数字生命窗口平台，不局限于“全息宠物播放器”
- **分辨率支持**: 支持 8K 以内所有分辨率显示
- **显示类型**: 支持 AR、VR、XR、普通屏幕、全息显示、投影、LED 矩阵，以及任何可运行的显示设备
- **当前调试环境**: Debian 11 KDE 桌面 (`ARM64` / `aarch64`)
- **跨平台策略**: 当前以 Linux/ARM64 为主，架构已为扩展到其他平台预留空间
