Skip to content

fix: remove All option from KB documents pagination to avoid page_size=-1 - #9918

Draft
lxfight wants to merge 1 commit into
AstrBotDevs:masterfrom
lxfight:fix/kb-docs-pagination-all
Draft

fix: remove All option from KB documents pagination to avoid page_size=-1#9918
lxfight wants to merge 1 commit into
AstrBotDevs:masterfrom
lxfight:fix/kb-docs-pagination-all

Conversation

@lxfight

@lxfight lxfight commented Sep 2, 2026

Copy link
Copy Markdown
Member

Fixes #9907

In the WebUI knowledge base detail page, switching the documents table pagination to "All" sent page_size=-1 to the backend, where list_documents clamps it with page_size = max(page_size, 1). The response therefore contained only 1 document while total was correct.

The v-data-table-server in DocumentsTab.vue did not set :items-per-page-options, so it inherited Vuetify's default [10, 25, 50, 100, -1], where -1 renders as "All".

This PR follows option A suggested in the issue: explicitly provide [10, 25, 50, 100] (no "All" entry), consistent with other pages such as ConversationPage.vue. The backend clamp is kept as a safety net.

Modifications / 改动点

  • dashboard/src/views/knowledge-base/components/DocumentsTab.vue: add :items-per-page-options="[10, 25, 50, 100]" to the documents v-data-table-server, removing the "All" option.

  • This is NOT a breaking change. / 这不是一个破坏性变更。

Screenshots or Test Results / 运行截图或测试结果

  • npx vue-tsc --noEmit in dashboard/ passes (exit 0).
  • Verification steps: open WebUI → Knowledge Base → a KB with ≥ 2 documents → Documents tab → the per-page selector now offers 10 / 25 / 50 / 100 only (no "All"), and every selection returns the expected number of items (page_size echoed correctly).

Checklist / 检查清单

  • 😊 If there are new features added in the PR, I have discussed it with the authors through issues/emails, etc.
    / 如果 PR 中有新加入的功能,已经通过 Issue / 邮件等方式和作者讨论过。

  • 👀 My changes have been well-tested, and "Verification Steps" and "Screenshots" have been provided above.
    / 我的更改经过了良好的测试,并已在上方提供了“验证步骤”和“运行截图”

  • 🤓 I have ensured that no new dependencies are introduced, OR if new dependencies are introduced, they have been added to the appropriate locations in requirements.txt and pyproject.toml.
    / 我确保没有引入新依赖库,或者引入了新依赖库的同时将其添加到 requirements.txtpyproject.toml 文件相应位置。

  • 😮 My changes do not introduce malicious code.
    / 我的更改没有引入恶意代码。

Summary by Sourcery

Bug Fixes:

  • Remove the documents table’s “All” pagination option to prevent requests with page_size=-1 from returning only one document.

…e=-1

The documents table inherited Vuetify's default items-per-page options,
which include -1 (displayed as All). The backend clamps page_size to at
least 1, so selecting All returned a single document.

Explicitly provide [10, 25, 50, 100], consistent with other pages.
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.

[Bug] 知识库文档列表分页选择「All」时只返回 1 条文档

1 participant