Releases: MengBad/astrbot_plugin_anima
Release list
v1.5.1 - 修复框体宽度 + 跨会话趋势错误处理
v1.5.1 - 修复框体宽度 + 跨会话趋势错误处理
修复内容
1. 框体宽度修复
- 修复框体只占显示窗口一半的问题
- 添加 width: 100% 到 .content、.view、.split-grid、.obs 容器
- 现在所有面板撑满整个窗口
2. 跨会话趋势错误处理
- 加固 cross_session_trend_handler 错误处理
- 外层 try/except 捕获所有异常
- 内层逐层 try/except 防止 host 属性访问崩溃
- 添加 fallback 默认值
测试结果
\
444 passed, 0 warnings in 32.22s
\\
升级指南
- 在服务器上执行 \git pull origin mimocode/nimble-planet\
- 重启 AstrBot 或重载插件
- 刷新浏览器页面
v1.5.0 - SSE实时推送 + Demo模式 + StateStore写入集成
v1.5.0 - SSE实时推送 + Demo模式 + StateStore写入集成 + 帮助文档
核心亮点
1. SSE 实时推送
- 后端新增 /api/events/stream SSE 端点
- 前端使用 EventSource 接收实时事件
- 新事件以动画效果追加到时间线顶部
- 断线自动重连,从 last_id 继续
- 每次推送后发送心跳保持连接
2. Demo Data 模式
- 一键切换演示数据
- 新用户/演示时界面不为空
- 演示模式按钮在头部导航栏
3. StateStore 写入集成
- 新增 �nima/state_store/migration.py — 将 15 个旧持久化路径注册到 StateStore
- 新增 �nima/state_store/write_mixin.py — 统一读写接口
- 新增 /api/state_store_summary API 端点
4. 帮助文档
- 10 个子面板都有详细帮助说明
- 点击 ?\ 按钮查看面板功能和使用场景
- 健康概览 6 个指标有悬浮帮助
5. 跨会话趋势图表
- 温暖度和稳定度的可视化条形图对比
- 支持多会话数据对比
6. 响应式 CSS
- 移动端适配:768px 以下自适应布局
- 子面板标签自动换行
7. 语言统一
- 调试字符串翻译:\partial\ → \部分可用\、\metadata_ready\ → \元数据就绪\
- 全面中文化
8. 空状态引导
- 每个面板空数据时显示配置建议
- 引导用户如何启用相关功能
StateStore 迁移状态
已注册的 15 个状态源:
- 10 个 JSON 文件(anima_state, desires, worldview 等)
- 3 个 Markdown 文件(self_notes, capabilities_diary, tool_diary)
- 2 个 JSONL 文件(evolution_log, runtime_events)
测试结果
\
444 passed, 0 warnings in 28.38s
\\
升级指南
- 覆盖重启即可
- 无数据迁移需求
- 所有配置项向后兼容
- SSE 实时推送自动可用
- 演示模式可通过按钮切换
v1.4.0 - 下一代架构
v1.4.0 - 下一代架构:StateStore 统一、Runtime Event 增强、Observatory 深化、WebUI 重构
核心亮点
1. StateStore 统一抽象层
- 新增 �nima/state_store/ 包,提供统一的状态存储接口
- StateSource 协议:统一的状态源接口
- JsonStateSource:JSON 文件原子读写
- MarkdownStateSource:Markdown 文件原子读写
- JsonlStateSource:JSONL 文件 append-only
- StateStore 主类:snapshot/diff/rollback/metadata
- 17 个新测试覆盖
2. Runtime Event Timeline 增强
- EventSnapshot:事件快照数据类
- EventDiff:事件差异数据类
- RuntimeEventBus 新方法:
- snapshot():创建事件快照
- diff():计算事件差异
ollback():回滚到指定快照
- compact():压缩旧事件
- get_snapshot() / list_snapshots() / delete_snapshot():快照管理
- 3 个新测试覆盖
3. Cognitive Observatory UI 深化
- 新增 8 个 API 端点:
- /api/event_search:事件全文搜索
- /api/state_snapshot:创建状态快照
- /api/state_rollback:回滚到指定快照
- /api/state_diff:计算快照差异
- /api/snapshot_list:列出所有快照
- /api/snapshot_delete:删除指定快照
- /api/cross_session_trend:跨会话趋势对比
- /api/event_compact:压缩旧事件
- 6 个新测试覆盖
4. WebUI 重构
- 将 1616 行单文件重构为 10 个清晰的逻辑段落
- CSS 按功能分组:变量、头部导航、内容面板、观测卡片、时间线、响应式
- JavaScript 模块化:核心工具、观测加载器、时间线加载器、初始化
- 移除外部 Google Fonts 依赖,使用系统字体栈
- 保持所有 14+ 观测面板功能
5. Python 3.14 兼容
- pytest.ini 添加警告过滤器
- 测试输出从 50 warnings 降为 0
测试结果
ext 435 passed, 0 warnings in 30.32s
升级指南
- 覆盖重启即可
- 无数据迁移需求
- 所有配置项向后兼容
- 新增的 StateStore 和 Observatory 功能自动可用
兼容性
- 向后兼容 v1.3.0
- 所有现有 API 端点保持不变
- 新增 API 端点为增量添加
v1.3.0 - 完全体发布:版本统一与文档同步
Release Notes - v1.3.0
概要
v1.3.0 是 astrbot_plugin_anima 的「完全体」发布版本。
本版本将版本号统一到 v1.3.0,更新全部发布文档,确认 409 个测试全绿通过。
核心叙事引擎、可观测性面板和双引擎架构保持稳定,无功能性变更。
核心亮点
- 版本号统一:将 main.py、metadata.yaml、README.md 的版本号统一到 v1.3.0。
- 文档同步:更新 RELEASE_NOTES、MIGRATION_GUIDE、KNOWN_ISSUES、TEST_REPORT 到 v1.3.0。
- 测试验证:确认 409 个测试全部通过,覆盖核心稳定性、可观测性、安全脱敏、能力系统等。
兼容性说明
本次升级不需要任何数据迁移。
所有既有持久化文件均保持完全兼容:
anima_state.jsonself_notes.mddesires.jsonpersona_core.yaml- Sylanne
.alpha.json会话缓存 - AstrBot 数据库 KV 状态
发版建议
- 建议 tag:
v1.3.0 - 建议发布类型:次要版本(Minor Release)
- 发版理由:版本号统一与文档同步,确认完全体状态,强烈推荐所有用户升级。
v1.2.9 - 独立 WebUI 旧监听器接管热修复
v1.2.9 - 独立 WebUI 旧监听器接管热修复
本版修复 v1.2.8 部署后可能出现的“ AstrBot 插件页已经更新,但独立端口 2718 仍由旧 WebUI 监听器提供服务”的半热更新状态。该状态会导致 /api/state 可用,但 /api/webui_manifest、/api/state_inspector、dashboard/capability-tree fallback 等新路由仍然 404。
主要改动
- 为独立 WebUI 监听器新增
route_version版本戳,用于识别当前端口上运行的路由表是否来自新版代码。 start_webui_background()发现旧_server_task仍存活但route_version不一致时,会主动取消旧 aiohttp task,并在清理完成后重启监听器。- stdlib fallback listener 同步支持
route_version检查;旧线程版本不一致时会主动 shutdown、server_close 并重新绑定。 WebUILifecycle.start_if_enabled()不再仅凭已有 task/thread 就跳过启动,只有监听器版本与当前代码一致时才复用。/api/webui_manifest返回route_version,方便确认当前独立端口是否已经完成新代码接管。- AstrBot 插件页探测逻辑会识别 HTTP 200 但正文为 AstrBot 默认
404 Not found的响应,避免误判共享 WebAPI 可用。
验证
py -m py_compile anima/sylanne_alpha/webui_server.py anima/sylanne_alpha/webui_routes.py plugin_api.pypy -m pytest -q- 全量测试通过:
409 passed, 50 warnings
部署后检查
安装或更新到 v1.2.9 后,建议访问:
http://你的服务器:2718/api/webui_manifest?token=你的token
确认返回 JSON,并检查:
route_version是否为1.2.9-webui-route-manifestpages.dashboard.index_existspages.capability-tree.index_existsroutes中是否包含/api/state_inspector
v1.2.8 - WebUI 入口自诊断与部署资源缺失降级
v1.2.8 - WebUI 入口自诊断与部署资源缺失降级
本版继续加固 v1.2.7 的 WebUI 发布路径,重点修复 AstrBot 侧插件页面自动跳转共享路由时可能落入默认 404、独立 Sylanne WebUI 部署包缺少 legacy dashboard/capability-tree 资源时直接显示 index.html not found、以及 Observatory 子接口缺失时缺少有效诊断线索的问题。
主要改动
- 移除 AstrBot 插件页入口的自动跳转,改为先探测共享
/health与/api/state,避免直接进入 AstrBot 默认 404。 - 插件页共享 WebAPI 不可达时,明确提示使用
/anima_dashboard_url获取独立 WebUI 地址。 - 独立 aiohttp 与 stdlib fallback WebUI 在 dashboard/capability-tree 资源缺失时,改为渲染轻量只读 fallback 页面,不再硬 404。
- 新增
/api/webui_manifest,可诊断当前 WebUI 承载层、模块文件、插件根目录、legacy 页面资源是否存在、路由注册状态等。 - Portal 的 Observatory 子接口加载失败时,新增 manifest 诊断链接,便于定位 stale listener、部署包资源缺失或路由缺失问题。
兼容性说明
- 未改动核心叙事、记忆、反刍、突变、状态持久化逻辑。
- 共享 WebUI、独立 aiohttp WebUI、stdlib fallback WebUI 均保持向后兼容。
验证
py -m py_compile anima/sylanne_alpha/webui_server.py anima/sylanne_alpha/webui_routes.py plugin_api.pypy -m pytest -q- 全量测试通过:
408 passed, 50 warnings
v1.2.7 - WebUI 入口与 fallback 数据接口热修复
Release Notes - v1.2.7
概要
v1.2.7 是 astrbot_plugin_anima 的 WebUI 入口与 fallback 数据接口热修复版本。
本版本基于 v1.2.6 继续加固 Cognitive Observatory 的可达性,重点修复 AstrBot Plugin Page 入口 404、独立 Sylanne WebUI fallback 模式下的 API/iframe 加载失败,以及 query-token 打开页面后的 POST 操作兼容性:
- 异步后台任务生命周期监控与统一容器管理
- 状态存储源(StateStore)只读一致性审计与元数据指纹机制
- AstrBot 共享 WebUI 路由完全修复与 API 动态映射
- 决策路径分析与会话回放的安全脱敏保护加固
- 全面的
README.md中文文档重构与架构厘清
本版本完全保留了双引擎架构,不修改任何高风险的自主认知或演化逻辑,整体向后兼容。
核心亮点
- 后台任务监控台 (Background Task Observatory):通过
/api/background_tasks接口,脱敏暴露活跃 asyncio 任务、时间碎片定时器、分段响应任务、Checkpoint 任务和投递队列的生命周期与队列深度,绝不泄漏回复正文和敏感 Context 键。 - 状态存储只读审计 (StateStore Audit):新增只读的
/api/state_store_audit接口,盘点anima_state.json、self_notes.md、desires.json等全部数据源的可达性与文件大小,并基于元数据生成metadata_fingerprint与全局唯一source_fingerprint,作为未来 diff 观测的基线。未配置但已声明的状态源、runtime 容器和 session 文件聚合也会进入拓扑指纹,便于观察 StateStore 迁移缺口。不读取或哈希文件正文,防隐私泄漏。 - 共享路由数据路径完全修复:Portal API 与 iframe URL 引入
routePath()助手,动态适配 AstrBot 共享页面(/astrbot_plugin_anima/api/...)与独立 WebUI 端口,并注册/astrbot_plugin_anima/anima页面别名以兼容 AstrBot Plugin Page 前端入口。 - 静态资源共享层绑定:将遗留的 dashboard/capability-tree 页面资产、静态资源和人格回滚接口注册至 AstrBot 共享 WebUI 层,解决 Portal 嵌入卡片在共享页面中加载失败的问题。
- 独立 WebUI fallback 对齐:stdlib fallback 服务器现在同样提供 Portal、dashboard/capability-tree、Observatory API、
?token=鉴权与 mutation rollback POST,避免 fallback 环境显示index.html not found或/api/...加载失败。 - 人格回滚与突变历史加固:回滚接口复用插件 IO 锁和原子文本写入,在共享与独立路由上记录一致的脱敏
回滚恢复演化日志。抹除突变历史的 core-beliefs 具体细节,仅暴露哈希指纹。 - 决策路径与会话回放扩展:支持
state.store_audit_snapshot诊断快照事件流,并在 Timeline 中以元数据形式安全呈现。收紧了 Reasoning Trace 通用事件回退机制的白名单限制,防止意外泄漏复杂嵌套对象。 - 任务容器安全重构:统一内部
_background_tasks容器为 Set 结构,防止由于 API 变动在插件运行、派发、Takeover 和 Shutdown 时发生集合分歧或产生垃圾泄漏。 - README 全面重写:重写了项目中文说明文档,提供清晰的数据流图、首选配置、安全观测边界、部署及测试运行指引。
兼容性说明
本次升级不需要任何数据迁移。
所有既有持久化文件均保持完全兼容:
anima_state.jsonself_notes.mddesires.json- Sylanne
.alpha.json会话缓存 - AstrBot 数据库 KV 状态
发版建议
- 建议 tag:
v1.2.7 - 建议发布类型:补丁版本(Patch Release)
- 发版理由:在完全向后兼容的基础上,补齐了后台异步任务与数据一致性的安全透视,彻底修复了共享管理页面下的显示缺陷,强烈推荐所有使用 Portal 管理面板的 operator 升级。
v1.2.6 - 后台异步任务监控台与数据源审计发布
Release Notes - v1.2.6
概要
v1.2.6 是 astrbot_plugin_anima 的一个可观测性与稳定性加固版本。
本版本重点引入了后台异步任务监控(Background Task Observatory)和状态数据源审计(StateStore Audit),并彻底修复了通过共享路由(AstrBot 插件管理页面)访问时的 WebUI 数据加载及卡片显示问题:
- 异步后台任务生命周期监控与统一容器管理
- 状态存储源(StateStore)只读一致性审计与元数据指纹机制
- AstrBot 共享 WebUI 路由完全修复与 API 动态映射
- 决策路径分析与会话回放的安全脱敏保护加固
- 全面的
README.md中文文档重构与架构厘清
本版本完全保留了双引擎架构,不修改任何高风险的自主认知或演化逻辑,整体向后兼容。
核心亮点
- 后台任务监控台 (Background Task Observatory):通过
/api/background_tasks接口,脱敏暴露活跃 asyncio 任务、时间碎片定时器、分段响应任务、Checkpoint 任务和投递队列的生命周期与队列深度,绝不泄漏回复正文和敏感 Context 键。 - 状态存储只读审计 (StateStore Audit):新增只读的
/api/state_store_audit接口,盘点anima_state.json、self_notes.md、desires.json等全部数据源的可达性与文件大小,并基于元数据生成metadata_fingerprint与全局唯一source_fingerprint,作为未来 diff 观测的基线。不读取或哈希文件正文,防隐私泄漏。 - 共享路由数据路径完全修复:Portal API 与 iframe URL 引入
routePath()助手,动态适配 AstrBot 共享页面(/astrbot_plugin_anima/api/...)与独立 WebUI 端口。 - 静态资源共享层绑定:将遗留的 dashboard/capability-tree 页面资产、静态资源和人格回滚接口注册至 AstrBot 共享 WebUI 层,解决 Portal 嵌入卡片在共享页面中加载失败的问题。
- 人格回滚与突变历史加固:回滚接口复用插件 IO 锁和原子文本写入,在共享与独立路由上记录一致的脱敏
回滚恢复演化日志。抹除突变历史的 core-beliefs 具体细节,仅暴露哈希指纹。 - 决策路径与会话回放扩展:支持
state.store_audit_snapshot诊断快照事件流,并在 Timeline 中以元数据形式安全呈现。收紧了 Reasoning Trace 通用事件回退机制的白名单限制,防止意外泄漏复杂嵌套对象。 - 任务容器安全重构:统一内部
_background_tasks容器为 Set 结构,防止由于 API 变动在插件运行、派发、Takeover 和 Shutdown 时发生集合分歧或产生垃圾泄漏。 - README 全面重写:重写了项目中文说明文档,提供清晰的数据流图、首选配置、安全观测边界、部署及测试运行指引。
兼容性说明
本次升级不需要任何数据迁移。
所有既有持久化文件均保持完全兼容:
anima_state.jsonself_notes.mddesires.json- Sylanne
.alpha.json会话缓存 - AstrBot 数据库 KV 状态
发版建议
- 建议 tag:
v1.2.6 - 建议发布类型:补丁版本(Patch Release)
- 发版理由:在完全向后兼容的基础上,补齐了后台异步任务与数据一致性的安全透视,彻底修复了共享管理页面下的显示缺陷,强烈推荐所有使用 Portal 管理面板的 operator 升级。
v1.2.5 - 认知观测台与页面精简整合发布
Release Notes - v1.2.5
概要
v1.2.5 是 astrbot_plugin_anima 的一个认知观测性与稳定性加固版本。
本版本重点是对认知观测台(Cognitive Observatory)进行了深度加固与安全透视支持,而非修改角色的核心认知行为:
- 更加安全的状态落盘与原子写入
- 更健壮的插件卸载清理逻辑
- 一致的 Sylanne 响应观察机制
- 兼容低风险的 JSON 序列化 monkeypatch
- 新增认知观测台的 6 大细分脱敏诊断 API(Prompt、State、Memory、Desire、Scar、Personality Drift)
- 细化对内存检索证据(Memory Recall Replay)与欲望演化轨迹(Desire Evolution History)的脱敏展示
- 新增脱敏决策路径分析(Reasoning Trace)与会话序列还原(Session Replay)
- 重构并提供单一、规整的 AstrBot 插件 WebUI Portal 面板,并对旧页面资产进行向后兼容适配
本版本完全保留了双引擎架构:
- 遗留的 Anima Mixin 路径与接口保持可用
- Sylanne Alpha 热路径正常运行
- 没有任何高风险的自主性逻辑被简化或删除
核心亮点
- 原子化数据写入:JSON 和文本写入机制采用临时文件写入、flush/fsync 后
os.replace原子替换,彻底规避高频持久化时的文件损坏风险。 - 防止状态损坏覆盖:当遇到 JSONDecodeError 时,不再用
{}覆盖 state 损坏文件,而是备份为.bak方便排查。 - 收紧
desires.json事务边界:欲望衰减与满足逻辑迁移至单锁读改写事务机制。 - Sylanne 响应捕捉完整化:即使关闭了实时拦截,机器人的回复内容也会在后台进入 Sylanne 缓冲队列,确保记忆流一致性。
- Idempotent Monkeypatch:全局 JSON 编码器 monkeypatch 提升为幂等性保护,并在插件 terminate 时安全恢复。
- 独立及共享 WebUI 路由注册:新诊断 API 同步注册在共享 AstrBot 端口与独立 Sylanne WebUI 服务器上。
- 脱敏 Prompt 调试器 (
/api/prompt_debug):记录注入槽位名、预算上限及字符长度,绝对不暴露 Prompt 文本与记忆原文。 - 状态检查器 (
/api/state_inspector):诊断活动会话状态、脏标志、持久化文件大小和隔离违规计数,展示状态拓扑而不读取核心人设与欲望。 - 记忆浏览器 (
/api/memory_explorer):提供 L1/L2/L3 拓扑指标与 Consolidation 配置分析,不暴露具体记忆内容,仅提供 SHA-256 混淆指纹。 - 内存检索回放 (
/api/memory_recall_replay):记录 L2 回收条目指纹与匹配分,不泄漏任何 Query 及 Prompt 详情。 - 欲望仪表盘 (
/api/desire_dashboard):评估欲望队列健康度与极性分布,剔除欲望正文及目标 UMO/用户标识。 - 欲望演化历史 (
/api/desire_evolution):回溯欲望周期,记录增删欲望的计数与指纹差异。 - 创伤浏览器 (
/api/scar_explorer):跟踪 Scar Algebra 维度敏感度、愈合阶段与熔断器,剥离创伤事件原文。 - 人格漂移观测器 (
/api/personality_drift):展现 5D 向量变动、表面特质 EMA 和人设 beliefs Fingerprint,屏蔽 persona_core 原始内容。 - 决策路径分析 (
/api/reasoning_trace):串联 Prompt 注入、工具使用(记录输入/输出长度与成功状态)及响应事件,不保留工具参数值与回复文本。 - 会话回放仿真 (
/api/session_replay):提取历史消息的气泡长度、发送方角色与发送时间,供时间线回放,绝不暴露真实聊天信息。 - 整合 Plugin Page 列表:AstrBot 插件菜单精简为单一的
Anima入口,旧页面无缝折叠入 Portal iframe 中以保证完美向后兼容。
兼容性说明
本次升级不需要任何数据迁移。
所有既有持久化文件均保持完全兼容:
anima_state.jsonself_notes.mddesires.json- Sylanne
.alpha.json会话缓存 - AstrBot 数据库 KV 状态
如果系统检测到损坏 of JSON,会自动生成时间戳备份文件 .bak。
发版建议
- 建议 tag:
v1.2.5 - 建议发布类型:补丁版本(Patch Release)
- 发版理由:在完全向后兼容的基础上,提供了极为强大的安全脱敏认知观测视图(Cognitive Observatory),保障插件生产环境稳定性。
v1.2.4
Release Notes - v1.2.4
Summary
v1.2.4 is a stability and observability release for astrbot_plugin_anima.
It focuses on release-readiness rather than new cognitive behavior:
- safer state persistence
- stronger shutdown cleanup
- consistent Sylanne response observation
- lower-risk JSON serialization compatibility
- first foundation of the Cognitive Observatory through a Runtime Event Bus and JSONL Cognitive Timeline
The release preserves the dual-engine architecture:
- legacy Anima Mixin paths remain available
- Sylanne Alpha hot path remains intact
- high-risk autonomy logic is not simplified or removed
Highlights
- Corrupt
anima_state.jsonis now backed up instead of being overwritten by{}. - Core JSON/text writes use temp-file +
os.replaceatomic persistence. desires.jsonupdates can use a single transactional update boundary.- Bot responses are observed even when realtime intercept is disabled.
- Plugin termination flushes loaded Sylanne hosts and cancels tracked background tasks.
- JSONEncoder monkeypatch is now idempotent and restored on terminate.
/astrbot_plugin_anima/api/runtime_eventsexposes structured runtime events.- Runtime events are appended to
data/plugin_data/astrbot_plugin_anima/runtime_events.jsonl. /astrbot_plugin_anima/eventsnow prefers Runtime Event Bus data and falls back to evolution logs.- Anima Portal now includes a
Cognitive Timelinepanel for live runtime event inspection. - The independent Sylanne WebUI server also exposes
/api/runtime_events.
Compatibility
No migration is required for normal users.
Existing files remain compatible:
anima_state.jsonself_notes.mddesires.json- Sylanne
.alpha.jsonruntime files - AstrBot KV state
If a corrupt JSON file is detected, it is moved to a timestamped .bak file so operators can inspect or restore it manually.
Release Recommendation
Recommended tag: v1.2.4
Release type: patch release.
Reason: the work fixes stability, data consistency, lifecycle, and observability issues without changing public cognitive semantics.