Skip to content

Releases: MengBad/astrbot_plugin_anima

v1.5.1 - 修复框体宽度 + 跨会话趋势错误处理

Choose a tag to compare

@MengBad MengBad released this 13 Jun 08:07

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

升级指南

  1. 在服务器上执行 \git pull origin mimocode/nimble-planet\
  2. 重启 AstrBot 或重载插件
  3. 刷新浏览器页面

v1.5.0 - SSE实时推送 + Demo模式 + StateStore写入集成

Choose a tag to compare

@MengBad MengBad released this 13 Jun 07:30

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

升级指南

  1. 覆盖重启即可
  2. 无数据迁移需求
  3. 所有配置项向后兼容
  4. SSE 实时推送自动可用
  5. 演示模式可通过按钮切换

v1.4.0 - 下一代架构

Choose a tag to compare

@MengBad MengBad released this 13 Jun 05:26

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

升级指南

  1. 覆盖重启即可
  2. 无数据迁移需求
  3. 所有配置项向后兼容
  4. 新增的 StateStore 和 Observatory 功能自动可用

兼容性

  • 向后兼容 v1.3.0
  • 所有现有 API 端点保持不变
  • 新增 API 端点为增量添加

v1.3.0 - 完全体发布:版本统一与文档同步

Choose a tag to compare

@MengBad MengBad released this 13 Jun 04:26

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.json
  • self_notes.md
  • desires.json
  • persona_core.yaml
  • Sylanne .alpha.json 会话缓存
  • AstrBot 数据库 KV 状态

发版建议

  • 建议 tag:v1.3.0
  • 建议发布类型:次要版本(Minor Release)
  • 发版理由:版本号统一与文档同步,确认完全体状态,强烈推荐所有用户升级。

v1.2.9 - 独立 WebUI 旧监听器接管热修复

Choose a tag to compare

@MengBad MengBad released this 10 Jun 01:36

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.py
  • py -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-manifest
  • pages.dashboard.index_exists
  • pages.capability-tree.index_exists
  • routes 中是否包含 /api/state_inspector

v1.2.8 - WebUI 入口自诊断与部署资源缺失降级

Choose a tag to compare

@MengBad MengBad released this 09 Jun 13:25

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.py
  • py -m pytest -q
  • 全量测试通过:408 passed, 50 warnings

v1.2.7 - WebUI 入口与 fallback 数据接口热修复

Choose a tag to compare

@MengBad MengBad released this 09 Jun 12:50

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.json
  • self_notes.md
  • desires.json
  • Sylanne .alpha.json 会话缓存
  • AstrBot 数据库 KV 状态

发版建议

  • 建议 tag:v1.2.7
  • 建议发布类型:补丁版本(Patch Release)
  • 发版理由:在完全向后兼容的基础上,补齐了后台异步任务与数据一致性的安全透视,彻底修复了共享管理页面下的显示缺陷,强烈推荐所有使用 Portal 管理面板的 operator 升级。

v1.2.6 - 后台异步任务监控台与数据源审计发布

Choose a tag to compare

@MengBad MengBad released this 09 Jun 08:26

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.json
  • self_notes.md
  • desires.json
  • Sylanne .alpha.json 会话缓存
  • AstrBot 数据库 KV 状态

发版建议

  • 建议 tag:v1.2.6
  • 建议发布类型:补丁版本(Patch Release)
  • 发版理由:在完全向后兼容的基础上,补齐了后台异步任务与数据一致性的安全透视,彻底修复了共享管理页面下的显示缺陷,强烈推荐所有使用 Portal 管理面板的 operator 升级。

v1.2.5 - 认知观测台与页面精简整合发布

Choose a tag to compare

@MengBad MengBad released this 08 Jun 00:59

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.json
  • self_notes.md
  • desires.json
  • Sylanne .alpha.json 会话缓存
  • AstrBot 数据库 KV 状态

如果系统检测到损坏 of JSON,会自动生成时间戳备份文件 .bak。

发版建议

  • 建议 tag:v1.2.5
  • 建议发布类型:补丁版本(Patch Release)
  • 发版理由:在完全向后兼容的基础上,提供了极为强大的安全脱敏认知观测视图(Cognitive Observatory),保障插件生产环境稳定性。

v1.2.4

Choose a tag to compare

@MengBad MengBad released this 07 Jun 08:21

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.json is now backed up instead of being overwritten by {}.
  • Core JSON/text writes use temp-file + os.replace atomic persistence.
  • desires.json updates 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_events exposes structured runtime events.
  • Runtime events are appended to data/plugin_data/astrbot_plugin_anima/runtime_events.jsonl.
  • /astrbot_plugin_anima/events now prefers Runtime Event Bus data and falls back to evolution logs.
  • Anima Portal now includes a Cognitive Timeline panel 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.json
  • self_notes.md
  • desires.json
  • Sylanne .alpha.json runtime 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.