@zmainer/dsh-wx-bridge 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/lib/kernel/bridge.mjs +4 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -266,6 +266,10 @@ ode_modules\@zmainer\dsh-wx-bridge` → 改名成 `...dsh-wx-bridge.bak` 更稳
|
|
|
266
266
|
|
|
267
267
|
## 最近变更
|
|
268
268
|
|
|
269
|
+
- **1.1.6**:修 **1.1.4 引入的回归** —— 1.1.4 把 `let chatOverlayPath` 的声明连同旧函数一起换掉了,
|
|
270
|
+
于是**真的走到「对话档」时会抛 `ReferenceError: chatOverlayPath is not defined`**(写成 1.1.4 时自测
|
|
271
|
+
只覆盖了纯函数与文本生成,没跑到"取叠层路径"这一步,所以没被发现)。补回声明并加 `--print-config` 的
|
|
272
|
+
`overlays.chatOverlay` 断言位:现在它会如实指向生成的 `acp-overlay-chat.gen.yml`(内含当前 `acp.permPreset`)。
|
|
269
273
|
- **1.1.5**:新增只读自检 `--print-config` —— 一条命令看清桥**实际认到**的配置链(dataDir / 宿主 home /
|
|
270
274
|
ACP home / 子进程 home / vault / 契约 / 预设 / 审批策略 / 权限预设 / 两个叠层路径 / 推送 CLI 与 outbox),
|
|
271
275
|
不启动主循环、不抢实例锁、不发网络请求。多 home 环境下"我改的 config 是不是桥在用的那份"用它一眼可辨。
|
package/lib/kernel/bridge.mjs
CHANGED
|
@@ -822,7 +822,7 @@ function presetKey(peer) {
|
|
|
822
822
|
if (peer.acpMode === 'chat') return 'chat'
|
|
823
823
|
return ACP_DEFAULT_PRESET
|
|
824
824
|
}
|
|
825
|
-
function overlayFor(key) {
|
|
825
|
+
function overlayFor(key) {
|
|
826
826
|
if (key === 'chat') return ensureChatOverlay()
|
|
827
827
|
if (!overlayCache.has(key)) overlayCache.set(key, ensurePresetOverlay(key) || '')
|
|
828
828
|
return overlayCache.get(key) || ACP_PATCH
|
|
@@ -863,6 +863,8 @@ function ensurePushHelper() {
|
|
|
863
863
|
* 规则:`defaultPreset:` 一行**无论写的是什么值**都换成当前 `acp.permPreset`;
|
|
864
864
|
* 再按模板最后的缩进追加提示行(推送命令要给手机侧的 agent 看)。
|
|
865
865
|
*/
|
|
866
|
+
let chatOverlayPath = ''
|
|
867
|
+
|
|
866
868
|
export function buildChatOverlayText(text, permPreset, hintLines) {
|
|
867
869
|
const lines = String(text ?? '').split(NL)
|
|
868
870
|
while (lines.length && !String(lines[lines.length - 1]).trim()) lines.pop()
|
|
@@ -879,7 +881,7 @@ export function buildChatOverlayText(text, permPreset, hintLines) {
|
|
|
879
881
|
* 必须重启桥才会重写,否则老生成文件会把新预设**静默顶掉**(2026-09-24 实测踩过)。
|
|
880
882
|
* 这里**每次都重写**(一次几毫秒):宁可多写一次,也不要让"磁盘上的旧生成物"成为隐形真源。
|
|
881
883
|
*/
|
|
882
|
-
function ensureChatOverlay() {
|
|
884
|
+
function ensureChatOverlay() {
|
|
883
885
|
const src = join(HERE, 'acp-overlay-chat.yml')
|
|
884
886
|
let text = ''
|
|
885
887
|
try { text = readFileSync(src, 'utf8') } catch { return src }
|
|
@@ -888,7 +890,6 @@ function ensureChatOverlay() {
|
|
|
888
890
|
try {
|
|
889
891
|
const f = join(STATE_DIR, 'acp-overlay-chat.gen.yml')
|
|
890
892
|
writeFileSync(f, out)
|
|
891
|
-
// 只在内容变了时记一行,避免每次 spawn 都刷日志
|
|
892
893
|
if (!chatOverlayPath) log('chat-overlay-written', { file: f, permPreset: ACP_PERM_PRESET })
|
|
893
894
|
chatOverlayPath = f
|
|
894
895
|
return f
|