The GitHub Actions job "CI" on rocketmq-dashboard.git/fix/dingtalk-secret-affordance has failed. Run started by GitHub user unbridled-41 (triggered by unbridled-41).
Head commit for run: 1589355369b2aa0c15a4d4253cd554f14e1fe04d / unbridled-41 <[email protected]> fix(settings): reveal the clear action after a signing secret has been saved The notification form saves the DingTalk signing secret, but the page then reconciles its state from a settings read taken *before* the write: const base = await loadFreshSettings(); await saveGeneralSettings(buildPayload({ ...base, ...patch })); setSettings({ ...base, ...statePatch }); `dingtalkSigningSecretConfigured` is a server-derived marker that buildPayload strips, so it stays false after the save - and it is the only thing that renders the 清除钉钉签名密钥 button: {settings?.dingtalkSigningSecretConfigured && (<Button danger onClick={clearDingtalkSigningSecret}>...} The operator who pasted a wrong secret therefore cannot remove it: the clear action never appears until a full page reload, and emptying the field reports "保存成功" while SettingsService keeps the stored secret (an empty value means "keep the current one"), so DingTalk signing keeps failing with a secret the UI claims to have cleared. The AI tab's key field in the same page already marks itself configured after a successful save; this form had no equivalent. Mark the secret configured from the submission itself and empty the field so the next save does not resubmit the same value. Tests (web/): npx vitest run src/pages/settings/__tests__/GeneralSettingsTab.test.tsx - new case "reveals the clear action once a signing secret has been saved" fails before this change (the button stays absent) and passes after it; it also asserts the field is emptied. - 9 tests pass; npx eslint reports no errors; npx tsc -b passes. Report URL: https://github.com/apache/rocketmq-dashboard/actions/runs/37979542197 With regards, GitHub Actions via GitBox
