- 架构重组:
- 移除 Python 后端 (simtag/) → 纯 Emacs Lisp
- 基于数据的新架构,使用
supertag--store - 单向数据流(Action → Ops → Transform → Store → Notify)
- 代码减少 ~53%,性能提升
- 简化部署,无外部依赖
- 统一模块结构:
- 将模块整合到单一职责文件中
- 移除循环依赖
- 提高内聚性与可维护性
- 自动化系统 2.0:
- O(1) 规则索引
- 多动作规则与计划任务
- 关系汇总与公式字段
- 捕获系统:
- 基于模板的节点创建
- 智能字段填充与交互式增强
- 查询系统增强:
- 重命名为"query-block"
- 改进语法与时间操作符
- 动态表格输出,结果可点击
- 用户体验改进:
- 移除实验性功能
- 统一快捷键绑定到 C-c s
- 添加完整的英文与中文文档
org-supertag 新旧版本架构对比
代码量对比
| 版本 | 代码行数 | 说明 |
|---|---|---|
| 旧版 | ~29,973 | 混合了 Emacs Lisp 和 Python |
| 新版 | ~14,165 | 纯 Emacs Lisp 实现 |
新版代码量约为旧版的 47%,在完全移除 Python 依赖的同时,保留并增强了核心功能。
1. 核心哲学:从分散到统一,从命令式到数据驱动
旧版架构虽然功能强大,但其设计更偏向于传统的、分散的命令式模型。各个模块(如 node, tag, db)各自维护自己的状态和操作,模块间直接调用,形成了一张复杂的依赖网络。同时,它依赖一个外部 Python 进程 (simtag/) 来处理 AI 相关功能,这引入了跨语言通信的复杂性。
新版架构则进行了一次彻底的哲学升华,其核心是数据中心化 (Data-Centric) 和单向数据流 (One-Way Data Flow)。
- 单一真相源 (Single Source of Truth):整个系统的所有状态都被收敛到一个全局的、可预测的
supertag--store哈希表中。这消除了数据不一致的根源。 - 严格的控制流:任何对数据的修改都必须通过
supertag-transform函数,这就像是数据进入数据库的唯一网关。这保证了所有修改都是原子性的、可追溯的,并且能够触发一致的事件通知。 - 纯 Emacs Lisp 实现:新架构完全移除了 Python 后端,变成了一个纯粹的 Emacs Lisp 包。这不仅简化了部署和维护,还通过消除进程间通信(EPC)的开销,极大地提升了性能。
2. 架构对比:关键设计点演进
| 特性 | 旧版架构 | 新版架构 |
|---|---|---|
| 核心理念 | 混合的命令式和面向对象风格。 | 数据中心化 & 函数式:将数据作为一等公民,操作视为对数据的变换。 |
| 数据存储 | 两个独立哈希表 (--object, --link) 分别存储实体和关系。 |
单一真相源:一个统一的、嵌套的哈希表 (supertag--store) 保存所有应用状态。 |
| 状态管理 | 分散式。状态可能被不同模块直接修改。 | 集中式 & 不可变风格:所有状态变更通过唯一的 supertag-transform 函数,保证原子性和可预测性。 |
| 控制流 | 模块间直接函数调用,依赖关系复杂。 | 单向数据流:严格遵循 Action -> Ops -> Transform -> Store -> Notify 流程,组件间清晰解耦。 |
| 模块化 | 基于功能划分,但模块内职责混合(数据、逻辑、UI)。 | 基于职责分层:清晰的 core (数据管道), ops (用户意图), services (业务逻辑), ui (交互) 分层。 |
| 外部依赖 | 重度依赖:需要完整的 Python 环境和 EPC 桥接进行通信。 | 轻量 & 原生:纯 Emacs Lisp 实现。AI 等功能通过 gptel 等标准 Emacs 包集成。 |
| AI/RAG 实现 | 在外部 Python 进程 (simtag/) 中实现,通信复杂。 |
原生在 Emacs Lisp 中实现 (supertag-rag.el),简化了技术栈并提升了性能。 |
功能变化
新增功能:
supertag-capture:增强的信息捕获功能supertag-automation:升级的行为自动化系统(原org-supertag-behavior)
迁移中的功能:
supertag-completion:自动补全标签
移除功能:
- 探索视图(
org-supertag-view-discovery) - Python 后端(
simtag)及其 AI 和 RAG 支持
改进功能:
- 标签系统:增加了标签
extends的方

