Discourse_list_private_messages 始终因发送 per_page 参数而触发 Discourse HTTP 500 错误

核心复现

GET /topics/private-messages/ashley.json?page=0&per_page=20

观察到的现象

TypeError: String can't be coerced into Integer
lib/topic_query/private_message_lists.rb:277

原因

offset = options[:page].to_i * options[:per_page]

MCP 的 list.ts 始终构建如下参数:

new URLSearchParams({
  page: String(page),
  per_page: String(per_page),
});

预期修复方案

在上游请求中省略不支持的 per_page 参数,或者协调在 Discourse 核心中实现有界的整数强制转换修复。