[Bug] 0.1.5 breaking rename: agent persona config key text→prefix silently drops persona content (no error, no migration warning) #6484
Replies: 5 comments
|
核实结论:已确认,且改名提交可以精确定位。我逐行对照了 master @
对你三个 ask 的评估(按性价比排序):
如果维护者认可方向,我可以按 ask 1 开 PR(alias + deprecation 日志 + 单测覆盖"text 与 prefix 同时出现时 prefix 优先")。你遇到的是生产环境静默行为差异,这条值得尽快修。 |
|
Thanks for the precise triage — commit IDs + the zod unknown-key strip in the persona schema match exactly what we observed from the outside (boots clean, persona silently empty). Agreed on the priority ordering: ask 1 (deprecated alias) is the right call — we reached the same conclusion independently after hitting it in production: our installer now self-remaps the old key to the new one at install time, which protects our own preset but does nothing for everyone else on older presets running 0.1.5. An alias + deprecation log fixes the ecosystem, not just us. Please do open the PR — your test plan is right, with one addition worth covering: when both keys are present, the new one wins and the deprecation warning still fires (so nobody can pin old behavior silently). One data point for the release-notes ask: we only caught this because a sub-agent behaved differently post-upgrade; our boot and tool-registry smoke checks both stayed green through it. The blast radius is genuinely invisible to standard checks — worth a line in the upgrade notes even after the alias lands. |
|
核实结果(master c291e79): 改名属实 - 4079233(2026-09-06)把 persona 键 text: 改为 prefix:, ≤0.1.2 用 text:, 0.1.3-alpha.2 起含 0.1.5-rc.1 用 prefix:(preset/persona/src/index.ts:36,49-54). 但"静默丢弃"与代码不符: 带 text: 的 preset 在 roster 层被接受(discovery 只查形状), 挂载时却响亮失败 - schemastery 校验链报 invalid config: missing required value (at prefix)(vendor/schemastery/src/index.ts:275-292,470-495 → mount.ts:398,403-405,426-431), rc.1 tag 同链. 即: 不会出现空 persona 运行, 而是该行挂载失败. 若你观察到的是静默空 persona, 一个可能解释(未证实)是 preset 自带旧版 dsh-persona 依赖、按自身目录解析到旧 schema; 建议贴一下 session 日志确认【未核实】. 仍成立的痛点: 无 text 别名、无迁移警告、release notes 无条目, 且报错不点名旧键名. |
|
You were right to push on this — we went back and reproduced our own path, and the silent behavior was ours, not the harness. Correction below, with an apology for the misattribution in the original title. What we actually ran: our deployment does not mount presets through the official persona plugin. Our installer remaps the persona block onto the base system-prompt plugin (the headless base lacks the persona plugin; inserting it causes a duplicate registration boot failure). The remap rewrites the persona body line by matching the current key name — when the preset source still used the old key, the match failed, the persona body was silently dropped from the generated patch, and the agent booted with an empty persona. That is our installer bug (already fixed by tracking the rename), not zod stripping. Meanwhile the official-plugin path you traced (schemastery validation chain failing loudly on mount) matches exactly what we saw on the web side — loud failure, no silent empty run. So the corrected state of this report: the breaking rename is real, the failure is loud (good), and the remaining genuine gaps are discoverability ones — the error says missing-prefix but never mentions the old key name, and there is no deprecated alias / migration note / upgrade-notes entry. Those are nice-to-haves rather than data-loss bugs; the PR offer stands if the maintainers think an alias is worth it, and either way thanks for the source-level diligence — it caught an incorrect claim in our report. |
|
Thanks for closing the loop and correcting the record — good to know the silent drop was your installer's remap missing the renamed key, and not the harness stripping anything. The official-path behavior you observed matches the source: the persona row requires The two discoverability gaps you named — the mount error naming the missing key but never the old one, and the absence of a deprecated alias / migration note — are real and worth tracking separately as UX polish rather than data-loss bugs. I'll keep them on my radar for the next time the preset/docs plane is touched; whether an alias is worth it stays the maintainers' call on your PR offer. Thanks again for the source-level diligence on both sides. |
Uh oh!
There was an error while loading. Please reload this page.
Environment: DSH 0.1.5-rc.1, Windows 10 19045, web + headless both affected (found via web first)
What happened: 0.1.5 renamed the custom agent persona config key from
text:toprefix:. Presets/patches written for ≤0.1.2 that still usetext:are accepted at boot with zero errors, but the persona body is silently dropped — the agent runs with an empty system persona.Why it bites: the failure is silent on both paths we tested. We caught it only because a sub-agent behaved differently in production; a smoke test that checks boot+tool-registry stays green. Our upgrade notes initially missed it too.
Repro sketch (what bit us):
persona: { text: ... }→ boots fine, persona goneprefix:→ worksAsk (any one would have saved us):
textwas previously valid, log a deprecation/migration warning instead of ignoring;textas an alias for one minor cycle;Happy to provide exact session logs if useful. Thanks for the harness — the file-account model has been holding up well in a 30+ chapter production run.
All reactions