Files
Agent-System/.doc/ops/short-term/2026-09-26-degraded-flags-enable.md
T
weichen e9c0281404 feat(ctxmgr): wildcard session allowlist for semantic replace rollout
- SEMANTIC_SUMMARY_REPLACE_SESSIONS supports * (all sessions, present and
  future), mirroring INTENT_PLAN_PROJECT_ALLOWLIST; empty allowlist still
  replaces nothing (fail-closed defense in depth unchanged)
- declare SEMANTIC_SUMMARY_REPLACE(_SESSIONS) in dev/test/main compose app
  env (stale Wave2 "REPLACE unwired" comment fixed); extend A-4 declaration
  test; .env.example key docs updated
- sysadmin feature catalog: SESSIONS description + REPLACE reason note *

Prepares dev degraded-flags enable (task degraded-flags-enable-2026-09-26-r4):
user-authorized all-session replace, plan tier confirm, shadow summary, PI
change-report narrative; env ops and runtime verification follow.
2026-09-26 02:29:29 +00:00

4.2 KiB
Raw Blame History

降级功能开关放量 dev(short-term)

  • task_id: degraded-flags-enable-2026-09-26-r4
  • owner: pi
  • status: in_progress
  • 授权来源: 用户会话指令「请将已经实现但是降级了的功能都启动」+ 追加确认(① dev 单二进制启动、不用容器;② SEMANTIC_SUMMARY_REPLACE 面向系统全部会话含后续新建;③ MULTI_INTENT_PLAN_TIER 保持 confirm)。该指令同时构成 docgov-pi-narrative 行「dev 常驻开启另授权」与 chat-semantic-replace 行「放量逐环境另授权(dev)」的显式授权。
  • write_scope: internal/ctxmgr, internal/sysadmin, internal/config, docker-compose.{dev,test,main}.yml, .env.example, .doc/ops/CURRENT.md, .doc/ops/short-term, .doc/status/FEATURE-MATRIX.md, .doc/test-reports
  • mutex: summary-flags-rollout
  • base_dev_sha: 66ea4e3e51
  • capabilities: git:dev, env:dev, docs:publish
  • policy_revision: AGENTS 2026-09 / agent-worktree-workflow r1 / validation-contract 2026-09-21
  • review_state: pending
  • integration_state: pending
  • deployment: pending
  • cleanup: pending
  • remote_sync: not_requested(本地 dev 领先 origin/dev 192+,未要求 push)

一、范围与现状

用户面板(sysadmin features 目录)为 fallback 快照;dev 实际运行态 = 单二进制 launch.sh --no-docker 只加载根 .env(不读 configs/.env.dev),故 intentflow 系列与摘要/叙事开关全部落在默认 legacy/false。dev 容器组当前未运行;test/main 仍为 compose。

已实现但未启动的降级项及处置:

开关 处置 依据
MULTI_INTENT_PLAN_TIER(legacy→confirm)+ INTENT_PLAN_PROJECT_ALLOWLIST=* 根 .env 写入 confirm + * I2/I3 已按 allowlist 验收 shadow→auto_read→confirm(项目 6579,确认前零写);用户确认保持 confirm
MULTI_INTENT_U9/U10/U11/U12 根 .env 全 true I3 live + P8 逐键接线;域名 flag 开启后未打开的细粒度键保持 dry-run
SEMANTIC_SUMMARY_SHADOW 根 .env true D3 收口 PASS;shadow 生成不影响 served Narrative
SEMANTIC_SUMMARY_REPLACE(+SESSIONS) 代码:SESSIONS 支持 * 通配(原仅枚举 ID,无法覆盖"全部会话含后续");compose 三环境补声明(原 Wave2 注释"REPLACE 未接线"已过期);根 .env true + * chat-semantic-replace 2026-09-26 fail-closed 灰度接线;用户授权全会话
PI_CHANGE_REPORT_NARRATIVE 根 .env true 2026-09-23 收口复测 PASS;matrix 注明 dev 常驻开启另授权,本任务授权来源满足

不改动:WORKFLOW_SCOPE_MODE(strict 可用);U11/U12 五个逐键 live flag(P8"禁止 full 一次放量",不在本次面板范围,compose 亦未声明,保持 off 待后续运维侧逐键放量)。

防泄漏:根 .env 经 --env-file 同样被 test/main compose 读取,故在 configs/.env.test / configs/.env.main(git-ignored 运维配置)显式钉住上述键为默认值,行为保持不变。

二、实现(代码侧)

  1. internal/ctxmgr/summary_flags.go:SummaryFeatureFlags.ReplaceAllSessions;parseReplaceSessions 返回 (set, wildcard),任意 * token → 全会话;SemanticReplaceEnabledFor 先过 master 再过通配/名单。空名单仍拒绝一切(纵深防御不变)。
  2. 单测:semantic_replace_test.go 更新 FlagParsing(通配/混合/空)+ 新增 WildcardAllowlistSwapsNarrative / WildcardMasterOffKeepsDeterministic。
  3. compose ×3 声明 SEMANTIC_SUMMARY_REPLACE(_SESSIONS)(默认 false/空);A-4 声明测试扩键;.env.example 修 Wave2 过期注释并补 SESSIONS/ALLOWLIST 注释键;sysadmin SESSIONS 描述与 REPLACE reason 注明 *。

三、计划

  1. 分析与授权确认
  2. 代码实现(通配 + compose 声明 + 目录/示例更新)
  3. 工程门禁(arch-check block / go vet / go test -short)+ dev 集成(--no-ff)
  4. env 运维:根 .env + configs/.env.{test,main} 钉默认;launch.sh --no-docker 重启 dev(env:dev 锁内)
  5. 运行时验收:/health /ready、features 快照、行为抽查
  6. 测试报告 + MATRIX 行注记 + CURRENT 收口

四、结果登记

(待填)