PocketPilot 源码解读 · 03 | 护栏才是护城河:WorkspaceGuard、capability 与审批恢复

PocketPilot 不按工具名写白名单:路径先过 WorkspaceGuard,再按 capability 后缀分成 ALLOW / REQUIRE_APPROVAL / DENY。写操作在磁盘变更前用异常打断;批准恢复时重建 Guard,下一次 write 还要再批。配策略决策图。

2026年9月13日 · 2 分钟 · 329 字 · Latent

PocketPilot 源码解读 · 04 | 能力全挂同一条总线:工具、记忆、MCP、入口与评测

记忆、技能、MCP、cron、webhook 在 PocketPilot 里都不是特权子系统:它们经同一张工具表注册,过同一道策略门,最终仍是一条可审计 Task。评测用 ScriptedProvider 把路径逃逸和拒批锁成 26 个无 LLM 用例。配能力总线图。

2026年9月13日 · 2 分钟 · 414 字 · Latent

墨坊源码解读 · 01 | 它不是演示店面:先收下订单,再让库存和余额各自失败

墨坊是一份可读的 Java 小店:网关只暴露 8080,商品库、库存、店铺各用各的库。下单先 202 收下,库存经 RabbitMQ 后扣;余额不够再发消息把库存加回去。本文钉死产品论点和分层,配架构图。仓库 https://github.com/GitHub1002/ink-workshop。

2026年10月14日 · 2 分钟 · 324 字 · Latent

墨坊源码解读 · 02 | 一张订单怎么活:202、发件箱、再决定能不能付款

下单接口先写 PENDING 和发件箱,返回 202。两份店铺用 SKIP LOCKED 抢同一行再投递 RabbitMQ。库存结果把订单推进 RESERVED 或 REJECTED;付款只接受 RESERVED,余额不够则 RELEASING。配状态机图。

2026年10月14日 · 1 分钟 · 198 字 · Latent

墨坊源码解读 · 03 | 库存为什么能重试:条件更新、指纹、付款失败再加回去

库存进程不共享订单表。扣减是 update … where available >= quantity,同一把钥匙用 SHA-256 指纹挡住换行重放。付款失败走另一条释放队列,结果仍经库存自己的发件箱回到店铺。配扣减回补图。

2026年10月14日 · 1 分钟 · 153 字 · Latent

墨坊源码解读 · 04 | 浏览器只能看见网关:限流、熔断、两份店铺

对外只暴露 8080。网关用 lb://ink-workshop 轮转两份店铺,限流每秒 20 可从 Nacos 热更新,店铺连续失败后熔断返回 503。店面 Vite 只打网关。配边缘图。

2026年10月14日 · 1 分钟 · 155 字 · Latent