Open
[V1110-PLUGIN] [P1] config.get 与 workspace.info:把「一次性配置纸条」变成可查询的会话上下文 #125
kemengAdd on 4 days ago
kemeng
2 days ago Comments:
2 days ago Comments:
[ar审核 2026-11-05] 结论:✅可认领开发。建议:tx优先(建议仅负载均衡,任何人可抢,接单即开分支占位,comm同步防撞)。依赖:无。规范:一issue一分支,PR过L3;改门禁/契约/完成判据语义者ar复核diff。方向:config.get与workspace.info会话上下文,tx认领。


结论
apply(config)是一次性的:宿主把 TOML 编成字符串调一次,之后插件再无途径查询。加上HostBridge没有 workspace 根、没有会话标识(bridge.rs:195-207),插件不知道自己被装在哪个仓库、属于哪个会话、配置有没有变。xw:plugin/host里的get看起来像能补这个口子,但它只认两个 seam(bridge.rs:289-311),且缝里装的是别的插件的贡献——宿主从不向插件 provide。八个导入里,宿主→插件的能力通道是 0 个。钉面
xuanwu-code/xwwasm· tagv0.1.18(75457fb)crates/xw-plugin-kernel/src/bridge.rs:289-311——read()只认prompt/segments与tools/definitions,其余返E_UNKNOWN_SEAM(-6)crates/xw-plugin-kernel/src/source.rs:70-77——encode_config,config 以 TOML 文本注入applyxwkernel v1.4.40kernel-host/src/plugin_prompt.rs—— 只做三次get,零provide(单向链)host_functions.rs:5HostState{workspace_root, session_id, config},:79get_config(脱敏)要做
新增
xw:plugin/context(不动旧七原语):三条硬约束:
config.get("servers[0].url")走 JSON Pointer 子集,取不到返明确缺键码,不返空串。*token*/*secret*/*key*/*password*的值一律替换为"***",并在返回中标注redacted: true。旧轨get_config:79已做过脱敏,直接沿用口径。fs接口与filesystem权限决定,两者不得混为一谈。验收
workspace().name得到仓名;取config("greeting")得到配置值。api_token = "abc123"⇒ 插件取到"***"且redacted: true;测试须断言插件拿不到明文。session().id不同,可用于隔离自身状态。prompt-conventions行为逐字节不变。关联
audit/plugin-capability-2026-11-04/00-CAPABILITY_AUDIT.md§2(get的真实语义)·01-CAPABILITY_PROPOSAL.md§6 L1 与 §7.3