fix(web): surface unavailable BYOK credential storage in settings - #6343
Open
anujbolewar wants to merge 1 commit into
Open
fix(web): surface unavailable BYOK credential storage in settings#6343anujbolewar wants to merge 1 commit into
anujbolewar wants to merge 1 commit into
Conversation
On platforms without an OS-backed secure credential store (the unavailable-win32 backend on Windows), saving a BYOK key cannot succeed and the app silently falls back to Open Design Cloud billing. Thread the daemon's credential-store availability bit into Settings and show a persistent notice in the BYOK panel so users understand why the key cannot be saved instead of being surprised by cloud billing on their runs. Fixes nexu-io#6330 Signed-off-by: Anuj Bolewar <bolewara@gmail.com>
Contributor
|
Thanks @anujbolewar — surfacing the fail-closed BYOK storage state directly in Settings is the right direction here. I’ll get this routed through the usual review gates now. |
Contributor
|
🧪 This PR has changes that need a manual QA pass before merge — please hold off self-merging for now; we’ll loop QA in once it’s merge-ready (and design/product have signed off, where applicable). |
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #6330
Why
On Windows the daemon's secure credential store is fail-closed (
unavailable-win32backend after the DPAPI backend was withdrawn in #6308). Saving a BYOK key always fails there, but the web app gave no persistent explanation — a configured BYOK profile was silently cleared at boot and runs fell back to Open Design Cloud billing with no signal to the user.What users will see
On a system where the daemon reports its secure credential store unavailable (Windows), Settings → Execution mode → BYOK now shows a persistent notice: secure BYOK credential storage is unavailable here, so BYOK API keys can't be saved and runs fall back to Open Design Cloud billing. Previously there was no indication why the key couldn't be saved.
Surface area
apps/webSettingsodsubcommand or flag, newtools-dev/tools-packflag, or newOD_*env var/api/*endpoint, new SSE event, or changed shape inpackages/contractsskills/,design-systems/,design-templates/, orcraft/, or change to the skills protocolsettings.byokStorageUnavailableNoticeto all 19 localespackage.json(dependenciesordevDependencies); workspace-packagepackage.jsonfiles are out of scope. Include a paragraph on what we get vs. what bytes we ship (seeCONTRIBUTING.md→ Code style)Screenshots
UI change in
apps/web; screenshots unavailable from this environment. The notice reuses the existingsettings-test-status errornotice styling already used by the BYOK precondition/draft notices, so no new visual surface is introduced.Bug fix verification
apps/web/tests/components/SettingsDialog.execution.test.tsx→ "surfaces a persistent notice when the daemon reports BYOK credential storage unavailable (issue BYOK API key cannot be saved on Windows (v0.16.1) — runs fall back to Open Design Cloud billing #6330)"mainand green on this branch? yes — the spec asserted a notice that did not exist onmain(failed ongetByTestId('settings-byok-storage-unavailable-notice')) and passed after the source change.Validation
pnpm --filter @open-design/web test— focused:SettingsDialog.execution.test.tsx(151/151),SettingsDialog.test.ts+tests/state/config.test.ts(143/143)pnpm --filter @open-design/web typecheck— cleanpnpm guard— exit 0git diff --check— clean