<!-- repository-triage-2026-10-14 --> ### 2026-10-14 完成与整理记录 已由 [PR #239](https://github.com/CWNU-Open-Source-Community/Universal-Code/pull/239) 集成至 main。实现提交 `1d0a5d71` 保留显式固定的必需项目规则,并在预算无法容纳时拒绝发送;现有测试覆盖实际模型请求、预算不足、重开与压缩。按已完成关闭。 核对版本:`main@88a7ba86`。以下保留原问题/PR 说明。 --- ## 问题 当前项目规则与摘要、工作看板等内容共享上下文预算。规则块放不下时可以被记入 `OmittedSources`,但不会因此阻止本轮继续调用模型。 因此,「规则已保存在 Run 配置中」不等于「这次请求实际携带了该规则」。本项要补齐当前有效关键规则的投递保证,不是保证模型一定遵守所有自然语言规则,也不把项目规则提升为工具执行权限。 审查基准:`0e15d1d104fe535965cf68df50bca6f106f20d52`。 影响范围:Go control plane、项目指令上下文构建、预算选择和投递审计。 ## 当前代码依据 - `internal/application/run_supervisor.go`:`projectInstructionContextSections()` 将规则包装为 `project_instruction`,优先级为 `760 + source.Depth`,最高 799;`supervisorMemoryContextWithinBudget()` 中摘要为 1000、工作看板为 900。 - `internal/contextmgr/selector.go`:`SelectSections()` 在某个块超过剩余预算时将其放入 `OmittedSources`,继续选择其他块,最终可以正常返回。 - `internal/application/supervisor_context_compaction.go`:`requireSupervisorContinuityContext()` 保证任务目标、摘要和继承历史存在,但没有检查项目规则是否完整投递。 - `internal/application/run_supervisor.go`:上述选择与必需内容检查之后,本轮继续准备模型请求和工具能力。 已有遗漏来源审计;缺少的是规则被省略时的执行约束,而不是完全没有记录。 ## 触发场景 在有效项目规则中写入「保持公共接口不变,交付前运行指定检查」。用合法且有界的高优先级摘要、目标和工作看板占用预算,使规则块超过剩余空间。 预期必须先确认适用于本轮的关键规则已进入实际请求;若无法容纳,应缩减可选背景、按适用路径收敛规则,或明确停止并说明原因,不能只记录省略后继续。 ## 最小可用目标 明确项目规则中必需约束与可选背景的投递语义,对已确定适用于当前任务/路径的必需规则预留预算并检查投递完整性。第一阶段由操作者显式确认来源或规则块的 mandatory/optional 分类,并绑定该来源的版本/指纹;不要求模型从任意自然语言自动推断哪些句子是关键约束。不要仅提高一个优先级常量,因为总量超过预算时仍会出现同类问题。 每轮审计绑定实际投递的来源、版本/指纹和省略原因;被当前操作者指令明确替代或不适用的旧规则不能重新生效。「当前有效」指当前 Run 已固定并确认的 pinned snapshot,不自动等于磁盘上的最新文本;沿用 `ProjectInstructionService.Refresh()` 的显式确认及指纹校验,未确认的磁盘变更不自动生效。 第一阶段以单一 `TargetPath` 对应的 pinned snapshot 和显式 refresh 为范围,验证该路径下规则层级与覆盖。按工具调用动态切换路径并刷新规则可以后续扩展,不作为本项首阶段前提;任何范围选择与快照更新都不从仓库文本推导权限。 ## 验收条件 - [ ] 确定性夹具可构造合法的预算压力场景;检查实际发出的模型请求,而非仅检查数据库中的规则记录。 - [ ] 当前有效的必需规则不会被无提示省略;无法完整投递时,在新的模型调用和工具分发前返回明确状态。 - [ ] 可选背景仍可有界省略,审计中的 included/omitted、估算用量和实际请求保持一致。 - [ ] 压缩、连续工具分段和数据库重开后,仍按同一规则来源及版本执行投递检查,不靠模型记忆补偿。 - [ ] 测试单一 `TargetPath` 下的目录规则层级、冲突覆盖、显式 mandatory/optional 分类及已确认 refresh;磁盘文本变化不越过 pinned snapshot 自动生效,过期、不适用或被明确替代的规则不会复活。 - [ ] 规则内容不能绕过权限、审批、范围、Run 预算或 lease 检查;既有无项目规则任务保持兼容。 - [ ] 面向用户的说明区分「规则已配置」「本轮已投递」与「模型是否遵循」,不把三者混为一谈。 ## 权限与非目标 不增加文件、命令、网络或凭据权限。不把任意项目文本都无条件设为永久必需;目标是对已经认定有效且必需的约束提供明确投递合同。不要求将所有历史规则和所有目录规则每轮全文注入。 ## 证据边界 这是固定提交中的条件性上下文遗漏路径。提交本项不声称已实测某个模型因此修改了公共接口;回归应验证请求内容和失败行为,不用模型是否碰巧遵守作为唯一验收标准。
Activity