Skip to content

feat(feedback): conversation downgrade notice + role requires model config - #16

Merged
btspoony merged 5 commits into
mainfrom
iteration/iter-20260814-fallbacks-feedback
Aug 14, 2026
Merged

feat(feedback): conversation downgrade notice + role requires model config#16
btspoony merged 5 commits into
mainfrom
iteration/iter-20260814-fallbacks-feedback

Conversation

@btspoony

Copy link
Copy Markdown
Collaborator

Summary

User feedback round (2026-08-14) on dsh-llm-fallbacks — two product opinions:

  1. 对话降级提示: when a fallback happens, the conversation must show the model downgrade. The existing fallbacks-switch chat node now says 模型已降级 / Model downgraded (was neutral "模型切换 / Model switch"), with a warn-tone title color via the existing --dsw-alias-state-warn-primary token. Summary unchanged: from → to (role · reason).

  2. Role 必填 model 配置: a declared role without a model config (chain) is meaningless — the settings card now blocks save with a validation.roleChainRequired error (banner + inline hint mirroring the blank-row condition), and the host config validator warns (llm-fallbacks: role "<id>" has no model config — …), never crashes. Schema stays non-breaking (chain? optional); runtime defensive fallback (missing chain → rootChain / inherit-root) preserved.

Changes

  • src/client/ConversationFallbackSwitch.tsx + locales.ts + css: downgrade-clear title (zh/en), warn alias token, JSDoc fix
  • src/client/FallbacksCard.tsx: validateDraft role-chain-required (blocks save, incl. fallback: none + empty chain); inline hint when all chain selector rows are blank
  • src/config.ts: validateFallbacksConfig warn for missing/empty role chain (names role id, no throw)
  • docs/configuration.md, README.md, README.zh-CN.md: required-semantics + defensive-fallback notes
  • Tests: +6 (conversation title zh/en/degraded; config warn ×3; card block+recover+blank-row); suite 409/409, build green

Verification

  • SDD 3 tasks, per-task review APPROVE; plan QC tri 3× Approve (zero-residual; fix wave c9a8b36 → targeted re-review 3× Approve)
  • QA (mandatory): PASS-WITH-NOTES — zero blocking defects; browser screenshots + real-session startup warn pending-user (sandbox cannot run real dsh web; same split as prior rounds)

@btspoony
btspoony force-pushed the iteration/iter-20260814-fallbacks-feedback branch from c9a8b36 to 6b29490 Compare August 14, 2026 08:32
@btspoony
btspoony merged commit 449f6b0 into main Aug 14, 2026
1 check passed
@btspoony
btspoony deleted the iteration/iter-20260814-fallbacks-feedback branch August 14, 2026 08:38
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