Elixir MCP 服务器库 0.5.0 版本发布说明,新增基于拓扑的可达性查询、Lengauer-Tarjan 支配树、不透明分页及更严格的符号词汇。
AI translation, not an official translation. Refer to the original for technical details.
Adapted from @aylacroft两天前我把果蝇的大脑放进了我的 MCP 服务器。今天它已经能回答问题了。 0.5.0 已发布到 hex。0.4.0 绘制了连线图,声明了对观测值的比对,将漂移作为一项发现呈现,你可以盯着它看。这个版本让你向图提问,它必须用自己的边来作答。 这个入口点能否在不经过某个审批节点的情况下到达那个效果?这是一个支配者问题,不是凭感觉,答案只有是或否。当答案为否时,你会得到一条由你传入的图构成的见证路径,这样你可以自己走一遍这条绕行路,而不是去信任一个分数。reachable?/4、reachable_without/5、dominates?/4、mandatory_pass/3。基于 :digraph 构建,该模块已随 OTP 一同发布,因此零新增依赖。支配树采用 Lengauer-Tarjan 算法,因为 :digraph_utils 和 libgraph 均未提供。在一个一万条边的测试夹具上,耗时十四到二十五毫秒。 all_paths 被拒绝。永远如此。枚举不是这个库的用途,而且这个拒绝逻辑写在模块里,这样一个出发点良好的 PR 也无法在日后把它"改进"掉。 同样在线的还有:带不透明键集分页的资源与提示,connectome://declared、connectome://observed 和 connectome://diff 作为只读资源,以及 MRTR 被明确标记为移出并附上了原因说明。每个请求要么完整回答,要么被拒绝。不会有半开的往返请求挂在服务器里等你回来。 有两件事人们会在 PPT 里混为一谈,所以我要对这个区别较真。可达性回答的是拓扑问题。已发布的是:通往某个效果的每条路径都经过这个节点。未发布的是:某个拒绝无法被绕过。这两句话在站会上听起来一模一样,但它们不是同一种断言。符号(signs)在这个包里仍然没有被决定,这是有意为之。 @minitru 问了 :unknown 是什么意思,并发现了一个真实的漏洞。它当时同时承担两份职责:不是我来说,以及还没人决定。现在改为 :unset 了。意思是:没有符号被提供给这个包。而不是说世界上不存在任何符号。旧的措辞声称没有任何策略表过态,这是关于整个世界的断言,一个库没有资格这么说。:ungoverned 是新增的。宿主可以声明某条边故意不需要关卡。这个包永远不会将其视为隐藏处理。diff 仍然会记录它,仍然会对它标记漂移,因为框架不会因为豁免而崩溃,它们崩溃是因为未记录在案的豁免。有一个测试证明,代码中不存在任何路径会基于符号来过滤或隐藏某条边。 枯燥,但我替你啃下来了。文档现在随 tarball 一起发布。https://t.co/OQIDJLd6rw 上的每一个相对链接在 0.4.0 中都是 404,我直到一个针对构建产物的测试告诉我才发现。合规性测试在 CI 中针对官方 MCP 套件运行,并发布两行数据:套件总数和声称的覆盖面,因为没有另一个数字相对照的单一数字,正是用绿色勾来撒谎的方式。有一个"不会实现"页面,列有十二条条目,每条都有对应的普查测试。不持有密钥。不制作签名。没有会话标识符。没有 OAuth。没有客户端库。没有权威机构决定。测试是证明。这个页面是契约。否则,一个 issue tracker 会一次一个合理请求地蚕食掉边界,我已经在 DEF CON 上看过这部电影,只是灯光更差。 请锁定 ~> 0.5.0,而不是 ~> 0.5。符号词汇已破坏性变更,schema_version 为 2,:unknown 在输入时会被拒绝。0.x 版本仍然故意在次版本号处发生破坏性变更。 Apache 2.0。Elixir。仍然可以独立运行,无需安装我的任何其他东西。 https://t.co/KpuuzfZqV5