Skip to content

feat(backups): paginate restore file pickers newest first - #5691

Draft
lmachineone wants to merge 5 commits into
Dokploy:canaryfrom
lmachineone:codex/backup-file-pagination
Draft

lmachineone wants to merge 5 commits into
Dokploy:canaryfrom
lmachineone:codex/backup-file-pagination

Conversation

@lmachineone

@lmachineone lmachineone commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

What is this PR about?

Both restore dialogs can browse all matching backup files through bounded newest-first pages, instead of stopping at 100 entries. The new paginated procedure preserves the existing listBackupFiles array response, ordering and limit for current callers.

  • Filter the full directory inventory before paging. Keep directories first; sort native database, web-server and volume backups by their validated filename UTC timestamp, including custom names generated by Dokploy. Nonstandard names follow in descending full-path order; their modification time is unknown.
  • Bind cursors to the organization, destination, server, search, page size and listing fingerprint. Changed inventories require Refresh. Both pickers handle loading, retry, empty/end states, context resets and stale responses. Long paths retain their complete selected value while the controls fit the viewport.
  • Preserve current canary's destination checks and backup download endpoints. Retain --no-mimetype --no-modtime. Each page still enumerates the directory in O(n) and sorts matching entries. Pagination bounds API response counts and incremental rendering, not provider I/O or server memory. Identical-size overwrites cannot be detected without available hashes.

Validation

Refreshed against canary eaffeba4 at head e4a96645, using Node 24.22.1 and pnpm 10.22.0.

  • 78 selected Vitest tests passed, covering ordering, 251-entry traversal, full-inventory search, cursor validation/invalidation, authorization boundaries, shell quoting, legacy compatibility, long-path consumer wiring and the affected upstream destination/download regressions.
  • Scoped Biome and the full application typecheck passed.
  • CI build and typecheck and formatting passed. All 78 selected tests also passed in CI.
  • 66 browser checks passed against the actual database and volume restore components with in-memory API fixtures. Coverage includes pagination, filtering/navigation, long root/nested paths, desktop and narrow viewport containment, real pointer interaction, retry, inventory refresh, context resets, and all six delayed-response transitions. Full selected paths were retained; no restore or download was executed.
  • No full authenticated application, live storage provider or backup restore was exercised.

The test job failed only on __test__/utils/remote-stream.test.ts:43, reports a target failure with its stderr, which timed out after 30 seconds. The run passed 1,584 tests, with one failure and one skip. That test, its process helper, test configuration, dependency manifests, lockfile and CI workflow match canary and the preceding a3323aa9 head, whose full test job passed. The subsequent changes only constrain the two restore-form grids and selected-path badges. The timeout cause remains unproven; CI is still failing. A maintainer rerun or separate process-test repair is needed because this account lacks upstream rerun permission.

The current-head Codex review returned a generic service error. A manual retry returned the same unknown error. Neither attempt produced actionable findings or a clean review result. Final review clearance remains outstanding.

Checklist

  • Created a dedicated branch from official canary and refreshed against current canary.
  • Read CONTRIBUTING.md.
  • Tested locally using the automated checks and synthetic actual-component browser harness described above; this was not a full authenticated/live-provider instance.

Issues related

Closes #5688

@lmachineone

lmachineone commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-26T15:34:16.982017Z
We couldn’t complete this review. Comment @codex review to try again.
e4a9664 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: f178ea8f49

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@lmachineone

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

An unknown error occurred
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@lmachineone

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

An unknown error occurred
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

This branch has not been deployed

No deployments
Sign up for free to 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.

feat(backups): browse all restore files with newest-first pagination

1 participant