fix: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@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: emover batches - #773

Merged
coodos merged 1 commit into
mainfrom
fix/emover-batches
Feb 4, 2026
Merged

fix: emover batches#773
coodos merged 1 commit into
mainfrom
fix/emover-batches

Conversation

@sosweetham

@sosweethamsosweetham commented Feb 4, 2026

Copy link
Copy Markdown
Member

Description of change

fixes all of

1 batch size smaller (10)
2 eid wallet signing page stuck, eid signing gets approved with different user
3 timeout error on big data (related to 1)

Issue Number

closes#772

Type of change

  • Fix (a change which fixes an issue)

How the change has been tested

tested on staging bebe

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

  • Bug Fixes

    • Enhanced security by implementing identity verification in signing operations, ensuring the signer's credentials match the migration owner before proceeding.
  • Performance

    • Migration API endpoints now respond immediately without blocking on background processing, significantly improving user responsiveness and experience.
    • Optimized batch processing for large migration operations to enhance overall system efficiency.

@coderabbitai

coderabbitaiBot commented Feb 4, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR introduces three targeted changes to the migration and signing flow: converting migration processing to non-blocking fire-and-forget execution, reducing batch size from 50 to 10 for eVault meta envelope creation, and adding early validation of signer identity against session owner data.

Changes

Cohort / File(s)Summary
Migration Controller
platforms/emover-api/src/controllers/MigrationController.ts
Converted processMigration invocation to fire-and-forget pattern; HTTP response sent immediately while migration runs asynchronously with errors logged but not returned to client.
Migration Service
platforms/emover-api/src/services/MigrationService.ts
Reduced batch size for bulk meta envelope creation from 50 to 10, increasing iteration count while decreasing per-batch payload size.
Signing Service
platforms/emover-api/src/services/SigningService.ts
Added early validation in processSignedPayload to verify signer's w3id matches migration owner's eName from session; returns error before signature verification if mismatch detected.

Sequence Diagram(s)

sequenceDiagram
participant Client
participant MigrationController
participant MigrationService
participant eVault
Client->>MigrationController: POST /migrate
MigrationController->>MigrationService: processMigration(migrationId)
Note over MigrationController: Fire-and-forget (no await)
MigrationController->>Client: 200 OK (migration started)
par Async Background Process
MigrationService->>eVault: Batch 1/N (size: 10)
eVault-->>MigrationService: ✓
MigrationService->>eVault: Batch 2/N (size: 10)
eVault-->>MigrationService: ✓
Note over MigrationService: ... continue batches
opt Error occurs
MigrationService->>MigrationService: Log error
end
end
Loading
sequenceDiagram
participant Client
participant SigningService
participant SessionData
participant SignatureVerifier
Client->>SigningService: processSignedPayload(payload)
SigningService->>SessionData: Get migration owner eName
SessionData-->>SigningService: eName
SigningService->>SigningService: Validate: payload.signer.w3id == eName?
alt w3id matches eName
SigningService->>SignatureVerifier: Verify signature
SignatureVerifier-->>SigningService: ✓ Valid
SigningService-->>Client: Signed payload accepted
else w3id mismatch
SigningService-->>Client: ✗ Error (signer mismatch)
Note over SigningService: Validation fails early<br/>before signature verification
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

evault-refactor

Suggested reviewers

  • coodos
  • xPathin

Poem

🐰 A hop, skip, and a fire-and-forget bound,
The migration now spins without wait,
Smaller batches dance 'round and 'round,
While signers prove who they create,
eMover's pace keeps steady state! ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (2 inconclusive)
Check nameStatusExplanationResolution
Title check❓ InconclusiveThe title 'fix: emover batches' is vague and does not clearly convey the specific changes made; it lacks detail about what aspects are being fixed.Consider a more specific title that highlights the primary fix, such as 'fix: emover batch size and eID signing validation' to better communicate the changeset.
Linked Issues check❓ InconclusiveThe changes partially address issue #772's objectives: batch size reduced to 10 and eID signing validation added, but timeout prevention for large data not explicitly demonstrated.Clarify how the changes prevent timeout errors on large data; verify that batch size reduction of 10 (versus current state) and validation logic fully resolve all three stated objectives.
✅ Passed checks (3 passed)
Check nameStatusExplanation
Description check✅ PassedThe description addresses the linked issue and covers the required sections (issue number, type of change, testing, checklist), though formatting could be improved and some details are informal.
Out of Scope Changes check✅ PassedAll changes align with issue #772 objectives: batch size adjustment, eID signing validation, and asynchronous migration processing to prevent timeouts.
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 docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/emover-batches

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 7c471b7 into mainFeb 4, 2026
4 checks passed
@coodos
coodos deleted the fix/emover-batches branch February 4, 2026 17:54
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] eMover batches

2 participants

@sosweetham@coodos