qnop 能做的一切。
完整参考——社区版今天提供什么,以及少数已决定但仍在路上的能力。
评审精度
-
行级、区域级精确批注
在渲染后的 PDF 上标注精确的行和区域——而不是页面级的便签。
-
带回应的 Markdown 讨论串
每条批注都有自己的讨论,用 Markdown 书写,支持回应表情。
-
多层锚定
每条批注都保存文字引用、位置和版面,让它始终指向想表达的内容。
-
跨版本重新锚定
新的文档版本通过模糊匹配重新挂接既有批注,而不是让它们失去着落。
-
版本间差异
对比视图精确展示两个版本之间发生了什么变化。
-
明确的决定
接受或拒绝记录在批注本身上——不由沉默来暗示。
-
定稿闸门
只有零未决批注时评审才能定稿。没有事项掉出清单。
文档与版本
-
PDF 评审
上传 PDF,通过规范的摄取与渲染流水线在浏览器中评审。
-
DOCX 与 Markdown 已规划
已决定,基于同一条摄取流水线——尚未交付。
-
不可变的版本历史
内容变更创建新版本;旧版本从不被改写,始终完整可读。
-
持久的后台处理
抽取与重锚定作为持久任务运行在 PostgreSQL 上——崩溃不会丢失任何工作。
-
对象存储中的文档
二进制文件存放在任意兼容 S3 的存储中,绝不进数据库。
人员与团队
-
团队与角色
全局的管理员、成员和审计员角色,加上按团队的负责人。
-
匿名评审
流程需要时,评审可以在评审者匿名的情况下进行。
-
通知与仪表盘
评审事件送达相关的人;仪表盘展示哪里还有未决事项。
-
把评审当作竞技
连续纪录、成就、玩家卡片和团队段位让评审吞吐量可见。
信任与运维
-
完整的审计日志
每个相关操作都被记录,可由专设的审计员角色查阅。
-
企业级登录
OIDC 单点登录或带邮箱验证的本地账户;JWT 会话配合轮换刷新令牌,认证端点有速率限制。
-
没有不安全的默认配置
只要缺少必需的密钥或密钥仍是占位符,服务器就拒绝启动。
-
运行时管理
租户品牌、SMTP 和邮件模板都在管理后台配置,而不是在构建时。
-
简单的拓扑
一个容器包含 API 与 Web 界面,加上 PostgreSQL 和任意兼容 S3 的对象存储。
平台与可扩展性
-
带版本的 REST API
位于 /api/v1 的 OpenAPI 优先契约,附带明确的弃用策略。
-
公开的插件契约
qnop-spi 构件定义扩展点——目前是存储与文档抽取。
-
开源
AGPL-3.0,在 GitHub 上公开开发。