Skip to content

fix(mcp): isolate database config caches and reject stale reads - #62

Closed
BigDataDZ wants to merge 5 commits into
xiaour:mainfrom
BigDataDZ:codex/oct24-mcp-config-cache
Closed

BigDataDZ wants to merge 5 commits into
xiaour:mainfrom
BigDataDZ:codex/oct24-mcp-config-cache

Conversation

@BigDataDZ

@BigDataDZ BigDataDZ commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

本PR的原始功能修复已进入最新main87c2966:原始修复提交已通过git merge-base --is-ancestor验证,相关核心文件及回归测试已核对。后续MCP运行时调整保留了配置缓存及Origin校验。当前PR头多出的上游同步/基线冲突处理不构成尚未合入的独立功能,因此关闭,避免重复审阅;分支与提交保留。


原始说明:
MCP configuration used one module-global cache for every database instance. Reading or saving one instance could therefore expose its enabled/mode/tenant policy through a different instance. An async read started before an administrator save could also complete later and replace that saved policy with an old database snapshot. Key the five-second cache by database identity with a WeakMap. Before publishing an async read, verify its entry is still current; a completed save or reset invalidates the old entry. Preserve successful-write caching, failure propagation, TTL/reset behavior and existing defaults/coercion. Move the unchanged values/coercion into configValues.js while retaining public exports; the facade shrinks from 90 to 57 lines, below its 73-line baseline. Three regression cases failed before the fix. New tests use real SQLite persistence with synchronous and async-only interfaces, deterministic read/save interleaving, TTL/reset and failed-save preservation. Focused 19/19; full suite 732 passed, 14 skipped, 0 failed; eval fixtures 14/14 (two judge results pending). Independent review approved. Architecture errors reduced 36 to 35 with no upward baselines. Includes validated prerequisites through #60. Native MySQL persistence acceptance, PostgreSQL/browser acceptance and both Docker configurations passed in CI. The online unit step passed; the job remains red at the existing architecture guard, so online eval is skipped. 本次邮件/审阅反馈核查后的更新:已合入当前main e19d784,解决上游合并#49–#54后产生的config/size-baseline.json冲突。冲突处理逐项取较低值,未提高任何已有基线;业务代码由Git自动合入。 当前head:de2e126c798fc8bead8d1c5d5631a719385974c4。本地定向验证:ℹ tests 38; ℹ pass 37; ℹ fail 0; ℹ skipped 1。跳过项未计为通过。远端CI已重新触发,结果以最新Checks为准,规模门禁尚未宣称全绿。 已再次对齐新发布的main5385ed3(V1.2.0/#76)。逐项保留较低基线,并修复上游基线JSON漏逗号(独立修复#77);未提高已有数值。当前head:f7dcc97addc93403ead962022a6a192eb3d7046b。本地定向验证:ℹ tests 21; ℹ pass 21; ℹ fail 0; ℹ skipped 0。跳过项未计为通过。 新主分支全量诊断本身有5个失败;此前零失败结果不再代表当前上游。完整CI以最新Checks为准,未宣称全绿。

BigDataDZ added a commit to BigDataDZ/yolo-data that referenced this pull request Oct 26, 2026
BigDataDZ added a commit to BigDataDZ/yolo-data that referenced this pull request Oct 26, 2026
@BigDataDZ BigDataDZ closed this Oct 27, 2026
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