Merge remote-tracking branch 'origin/master' into codex/concrete-provenance-prose

# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-29-terminal-llm-stream-failures.zh.md
#	.agents/notes/implemented/feature/2026-07-27-trajectory-inspection-ledger.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-27-trajectory-inspection-ledger.zh.md
#	.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.i18n.yaml
#	.agents/notes/implemented/process/2026-08-08-browser-gif-evidence-chain.zh.md
#	docs/architecture.i18n.yaml
#	docs/architecture.zh.md
#	packages/boot/app-boot/README.i18n.yaml
#	packages/boot/app-boot/README.zh.md
This commit is contained in:
Turtle
2026-08-09 16:39:34 +08:00
376 changed files with 9620 additions and 1106 deletions

View File

@@ -3,4 +3,4 @@
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.md
2026-07-26-dependency-swaps-rejected-by-nih-audit.md: c3422a9c8b4d60b4795aed5108923ac3446b0a46
2026-07-26-dependency-swaps-rejected-by-nih-audit.zh.md: 9e21c89fcba0b05cfb5c00bef5261e834302bea1
2026-07-26-dependency-swaps-rejected-by-nih-audit.zh.md: d026c6149409fe010fe75269cc6ed58bbcda4434

View File

@@ -6,7 +6,7 @@ Status: rejected — 下列每一项替换在证据上都未达到净简化门
## 问题
一次仓库级的「Not Invented Here非我发明」审计2026-07-26十路并行普查覆盖每个包package分组、scripts/、native/、vendor/ 边界、python/、测试基础设施与 CI对每一处手写接口面追问同一个问题在[依赖政策](../../implemented/process/2026-07-26-dependencies-over-hand-rolling.md)之下,是否有持续维护的外部包或 Node 内置能力能以净收益把它删除?得出肯定结论的发现已各自写成独立的提案 Agent Noteagent 决策记录)。否定裁定的价值不相上下——每一条都点名了一个看似可行、实则手写形态在承重的替换——但否则它们只会留存在某个 PRPull Request正文里。本 note 将它们固化在案。
一次仓库级的「Not Invented Here非我发明」审计2026-07-26十路并行普查覆盖每个包分组、scripts/、native/、vendor/ 边界、python/、测试基础设施与 CI对每一处手写接口面追问同一个问题在[依赖政策](../../implemented/process/2026-07-26-dependencies-over-hand-rolling.md)之下,是否有持续维护的外部包或 Node 内置能力能以净收益把它删除?得出肯定结论的发现已各自写成独立的提案 Agent Note。否定裁定的价值不相上下——每一条都点名了一个看似可行、实则手写形态在承重的替换——但否则它们只会留存在某个 PRPull Request正文里。本 Agent Note 将它们固化在案。
## 提案
@@ -24,7 +24,7 @@ Status: rejected — 下列每一项替换在证据上都未达到净简化门
- **以 `p-retry`/`exponential-backoff` 替换 `llm-retry`**:执行模型不对——该插件是一个返回决策的 waterfall瀑布式事件监听器重新执行由 agent loop智能体循环依据持久日志负责根本不存在可供重新调用的函数而那恰是这些库的全部 API。提供方 `Retry-After` 覆写、依据先前失败代码计算预算、持久化的 `llm/retry` 事件、HMR热模块替换完全停稳式中止全都无从覆盖。[LLM大语言模型请求受限恢复决策](../../implemented/architecture/2026-06-21-bounded-llm-request-recovery.md)已经否决了由 SDK 持有的重试。
- **以 `p-timeout`/`AbortSignal.timeout` 替换 `dsh-timeout`**:内置能力无法提前解除,抛出的是通用 `TimeoutError`,而不是能区分嵌套截止时限、按能力编码的 `TimeoutReason``idleWatchdog` 按需逐次重新装定的能力没有等价物。设计归[超时库决策](../../implemented/architecture/2026-07-06-timeout-deadline-library.md)所有。
- **以 `p-limit`/`p-queue` 替换 agent-loop 的工具调用池**:池的簿记只有约 25 行;实质部分(按模型顺序提交、组中途重新分类、排他屏障、带合成持久结果的中止排空)根本不是并发限制器的形状。
- **以 `p-limit`/`p-queue` 替换 agent loop 的工具调用池**:池的簿记只有约 25 行;实质部分(按模型顺序提交、组中途重新分类、排他屏障、带合成持久结果的中止排空)根本不是并发限制器的形状。
- **以 `p-queue`/`async-mutex` 替换按 key 的 promise 链串行器**`fs-local``storage-domain`):串行器只有 814 行;这些包严格大于它们所能删除的代码。
- **以 `events.once` + `AbortSignal.timeout` 替换 subagent-subprocess 的 `exitsWithin`**`error` 先触发时 `events.once` 会 reject而手写实现有意忽略 `error`(由 spawn 失败路径单独捕获);这次替换恰恰会在语义本身就是拆除竞态的那段代码里改变拆除竞态行为。
@@ -74,5 +74,5 @@ Status: rejected — 下列每一项替换在证据上都未达到净简化门
## 曾考虑的替代方案
- **什么都不记录,让 PR 正文承载这些裁定。** 不予采纳PR 正文不属于受维护的记录,而普查的全部意义就在于下一次审计从这些裁定出发,而不是重新推导。
- **每一项各写一份 rejected note。** 不予采纳:为共享同一套证据标准、同一种命运的裁定制造约 30 个文件的仪式感;只有当某一项带着新证据被重新提出时,逐项 note 才有必要。
- **把每条裁定并入拥有该 seam 的 implemented note。** 部分已做——凡是持有方 note 已经否决过该替代方案的重试、token 计量、schema DSL、zstd、沙箱、node-pty本 note 一律援引而不重复。其余各项没有持有方 note这正是它们记录于此的原因。
- **每一项各写一份 rejected note。** 不予采纳:为共享同一套证据标准、同一种命运的裁定制造约 30 个文件的仪式感;只有当某一项带着新证据被重新提出时,逐项 Agent Note 才有必要。
- **把每条裁定并入拥有该 seam 的 implemented note。** 部分已做——凡是持有方 Agent Note 已经否决过该替代方案的重试、token 计量、schema DSL、zstd、沙箱、node-pty本 note 一律援引而不重复。其余各项没有持有方 note这正是它们记录于此的原因。