Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Fix/reset pin logic - #1005

Merged
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic
Jun 4, 2026
Merged

Fix/reset pin logic#1005
coodos merged 2 commits into
mainfrom
fix/reset-pin-logic

Conversation

@Bekiboo

@BekibooBekiboo commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Description of change

Two fixes to the Change-PIN flow in settings: the current-PIN step now verifies before advancing (previously the wrong PIN only surfaced after the user had typed all three screens), and the new PIN is rejected if it matches the current one.

Issue Number

Closes#991
Closes#992

Type of change

  • Fix

How the change has been tested

  • Settings → Change PIN → enter wrong current PIN → inline error, dots cleared, stays on step 1.
  • Settings → Change PIN → enter correct current PIN, then same value as new PIN → inline error, dots cleared, stays on step 2.
  • Settings → Change PIN → enter correct current PIN, then a different new PIN, confirm → success bottom sheet.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

Summary by CodeRabbit

Release Notes

  • New Features
    • PIN verification is now required when changing your PIN
    • Clear error messages display when verification fails
    • PIN field automatically resets on verification failure
    • Updated button interaction during PIN change workflow

@BekibooBekiboo self-assigned this Jun 4, 2026
@Bekiboo
Bekiboo requested a review from coodos as a code ownerJune 4, 2026 06:33
@coderabbitai

coderabbitaiBot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5634bada-cc18-4bac-bd56-2adaa067485f

📥 Commits

Reviewing files that changed from the base of the PR and between 22f0447 and 007bb8f.

📒 Files selected for processing (1)
  • infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte

📝 Walkthrough

Walkthrough

The PIN change flow is updated to verify the current PIN asynchronously before allowing progression to the new PIN entry step. The advance() function now gates step transitions on successful PIN verification with globalState.securityController.verifyPin(), and the button blocking behavior is adjusted to control click interactions during step transitions.

Changes

PIN Change Flow Verification

Layer / File(s)Summary
Current PIN verification and step progression control
infrastructure/eid-wallet/src/routes/(app)/settings/pin/+page.svelte
The advance() function becomes async and verifies the current PIN before transitioning to the "new" step; verification failure or exceptions set user error messages and clear PIN fields; button blocking updates from step === "repeat" to step !== "new" to control interactions during the flow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • MetaState-Prototype-Project/prototype#417: Both PRs modify the PIN-step flow in the same +page.svelte—main PR updates advance() to verify the current PIN before moving to "new", while PR #417 rewrites the PIN update/reset handler (handleChangePIN) to validate and call securityController.updatePin—so they are directly related code changes.

Suggested reviewers

  • coodos
  • sosweetham

Poem

🐰 A rabbit hops through the PIN-gate,
Checking each digit before it's too late,
Current then new, verified with care,
No more slipping through without a pair! 🔐

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'Fix/reset pin logic' is directly related to the main change—fixing the PIN reset flow with verification and validation improvements.
Description check✅ PassedThe description covers all required sections: change description, issue numbers (#991, #992), type (Fix), testing steps, and a completed checklist.
Linked Issues check✅ PassedThe PR fully addresses both linked issues: adds current PIN verification before progression [#991] and validates that new PIN differs from current PIN [#992].
Out of Scope Changes check✅ PassedAll changes are scoped to the Change-PIN flow in settings, directly addressing the two linked issues without introducing unrelated modifications.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/reset-pin-logic

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coodos
coodos merged commit 972f1f6 into mainJun 4, 2026
4 checks passed
@coodos
coodos deleted the fix/reset-pin-logic branch June 4, 2026 06:44
Sign up for freeto 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.

[Bug] - Current PIN and New PIN Cannot be same. [Bug] - PIN change flow allows progression with an invalid Current PIN

2 participants

@Bekiboo@coodos