Repository navigation
[Fix] API-key integration drafts disappear after failed saves - #3446
roomote-roomote[bot] wants to merge 1 commit into
Conversation
|
No code issues found. See task Reviewed all three changed files, including shared/personal form recovery, key clearing, duplicate-submit protection, successful retry, and documentation consistency. Current-head lint, type checking, Knip, and docs validation passed; tests, the app Docker build, and JavaScript/TypeScript analysis are still running. The visual-proof gap described in the PR remains outside this code-review result. No approval or draft-state change was made. Reviewed 9af41d9 |
|
Draft-state correction: GitHub's timeline records automation setting |
Keep this PR draft. Accepted visual proof is missing after the bounded capture step timed out before independent proof review completed. Do not auto-promote it solely on clean CI or automated code review.
Related issue
No linked issue; internal Roomote product work.
Why this PR exists
When an API-key integration save request fails, the form clears the name, origin and other nonsecret fields as well as the key. Users must rebuild the setup to try again, even though only the key needs clearing.
What changed
Clear only the key input after sending the request, retaining nonsecret fields and selections for recovery. Successful creation still closes the dialog; local validation and duplicate-submit protection retain their existing behavior. No new state, UI choices, dependencies, auth, protocol or persistence behavior.
Use readable foreground text for the touched save-error message and document recovery from both shared and personal settings.
How it was tested
35201fbf: actual authenticated server rejection erased Name/Service origin. After aligning sandbox public authority to its configured browser target, a nonresolving test origin returned HTTP 500 and reproduced the same loss; valid public origin returned 201 and persisted the synthetic fixture, then removal returned 204.pnpm --filter @roomote/docs checkpasses build validation and broken-link checks. The initial Mintlify preview returned HTTP 500 / “No docs config”; after restarting its existing sandbox process it returned HTTP 200. The changed paragraph's rendered appearance was not re-inspected under the no-proof-recovery instruction.Remaining proof gap: the shared five-minute step expired before independent proof review completed. Its partial images are not accepted proof and are not embedded. No further capture or proof recovery is authorized in this occurrence. Passing tests or code review does not establish readiness under the requested proof standard.
Continuation only if later authorized: check out the exact pushed head; align the sandbox's configured public authority with the required browser URL without bypassing Origin/auth checks; submit synthetic values with a nonresolving
.invalidHTTPS origin; confirm retained nonsecret fields and empty key after the real failure; correct to a public origin, re-enter a disposable synthetic key and Save; verify actual 201/list persistence in shared and personal views; complete a bounded accepted proof handoff/independent review and exact-head CI reconciliation. Remove all fixture integrations through the API/UI and restore sandbox overrides. The fixtures from this run have already been removed and the override restored.Checklist
[Fix],[Feat],[Improve],[Refactor],[Docs], or[Chore]followed by a user-facing descriptionpnpm lintandpnpm check-typespass locally — normal fast lint/types/knip pre-push gates passed insteadpnpm changeset— not run for this scoped fixRelated PRs