docs(ctxmgr): seal SEMANTIC_SUMMARY_REPLACE with decision link (X-2)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
weichen
2026-09-18 04:02:18 +00:00
co-authored by Cursor
parent a41836dec0
commit 6c61a5bc37
2 changed files with 13 additions and 4 deletions
+3 -1
View File
@@ -253,7 +253,9 @@ func applySemanticShadow(ctx context.Context, sum *ChatSummary, msgs []ChatMessa
if report.Protocol == "" {
report.Protocol = semanticProtocolV1
}
// Explicitly do NOT swap sum.Narrative even if REPLACE env is true.
// Explicitly do NOT swap sum.Narrative even if REPLACE env is true
// (Wave 5 X-2 sealed; see wave5-deadcode-decisions.md#x-2).
// Keep the call so envBool parsing stays covered; do not "fix" by wiring REPLACE.
_ = SemanticSummaryReplaceEnabled()
sum.Shadow = report
}
+10 -3
View File
@@ -7,12 +7,18 @@ import (
)
const (
EnvSemanticSummaryShadow = "SEMANTIC_SUMMARY_SHADOW"
EnvSemanticSummaryShadow = "SEMANTIC_SUMMARY_SHADOW"
// SEALED (Wave 5 X-2, 2026-09-18): REPLACE must stay unwired indefinitely per
// system-health-remediation-plan.md Wave5 + red-line "SEMANTIC_SUMMARY_REPLACE
// 不接线". Enabling REPLACE to swap served narrative requires a separate
// explicit user authorization + fail-closed rollout design; do not wire it as
// a side effect of an unrelated change. See .doc/ops/short-term/2026-09-18-
// wave5-deadcode-decisions.md#x-2.
EnvSemanticSummaryReplace = "SEMANTIC_SUMMARY_REPLACE"
)
// SummaryFeatureFlags controls semantic summary rollout.
// REPLACE is reserved and must remain unwired in PU6 shadow delivery.
// REPLACE is reserved and must remain unwired in PU6 shadow delivery (Wave 5 X-2 sealed).
type SummaryFeatureFlags struct {
Shadow bool
Replace bool
@@ -51,7 +57,8 @@ func SemanticSummaryShadowEnabled() bool {
}
// SemanticSummaryReplaceEnabled reports the REPLACE env bit.
// PU6 must not use this to swap the served deterministic narrative.
// SEALED (Wave 5 X-2): PU6 must not use this to swap the served deterministic narrative.
// See .doc/ops/short-term/2026-09-18-wave5-deadcode-decisions.md#x-2.
func SemanticSummaryReplaceEnabled() bool {
return CurrentSummaryFlags().Replace
}