Skip to content

fix(memory): remove dead topic_limit_floor knob that silently rewrote configs - #291

Merged
LeXwDeX merged 1 commit into
devfrom
fix/memory-config-floor
Aug 16, 2026
Merged

fix(memory): remove dead topic_limit_floor knob that silently rewrote configs#291
LeXwDeX merged 1 commit into
devfrom
fix/memory-config-floor

Conversation

@LeXwDeX

@LeXwDeX LeXwDeX commented Aug 16, 2026

Copy link
Copy Markdown
Owner

核对 memory.jsonc/dag.jsonc 自动生成逻辑时发现(用户要求的配置生成规则审计):

Problem

topic_limit_floor 是死旋钮——无任何运行时消费者(pruning/matching/maintenance 均不读取)。唯一作用是静默危害:readConfig每次加载时把 floor≠limit 的文件改写为 floor:=limit,抹掉用户显式设置;schema 还暴露了运行时从不兑现的配置空间。

Fix

  • MemorySchema.ConfigupdateConfig 移除该字段;删除 normalizeConfig 与 readConfig 改写分支
  • decodeConfig 直接解码:旧文件带该字段仍合法(Schema Struct 解码容忍多余属性),下次写入时自然脱落
  • 默认值(selectConfiguration)、admission candidates、测试夹具同步清理

Evidence(/tdd,ask-matt 路由 → diagnosing-bugs → tdd/code-review)

  • 红测先行:test/memory/config.test.ts(legacy 分歧 floor 文件解码后字段缺席;decode/update 输出永不携带;schema 边界保持)
  • memory 套件 93 pass / 0 fail;typecheck 干净;lint 4829→4828(净改善)
  • dag.jsonc 侧核对无问题(种子/查找序/容错均正确),无需改动

… configs

topic_limit_floor had zero runtime consumers — no pruning, matching, or
maintenance logic ever read it. Its only effect was a silent hazard:
readConfig rewrote any file with floor != limit to floor := limit on EVERY
load, clobbering explicit user values; and the schema advertised a knob the
runtime never honored.

- drop the field from MemorySchema.Config and updateConfig
- delete normalizeConfig and the readConfig rewrite branch; decodeConfig now
  simply decodes (legacy files carrying the field stay valid — Schema Struct
  decoding tolerates the extra property, dropped on the next write)
- defaults (selectConfiguration), admission candidates, and test fixtures no
  longer carry the field

Tests (red-first, test/memory/config.test.ts): legacy divergent-floor file
decodes with the field absent; decoded/updated configs never contain it;
schema bounds preserved. Memory suite 93/0; lint 4829 -> 4828.
@LeXwDeX
LeXwDeX merged commit 30484ea into dev Aug 16, 2026
5 checks passed
@LeXwDeX
LeXwDeX deleted the fix/memory-config-floor branch August 16, 2026 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant