mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 10:21:59 +00:00
长报告不再被咬掉一口:折叠只在行边界切
用户看到的是一份读起来完整、末尾却挂着半行原始 markdown 的报告:
userID 用户名 邮箱 昵称 providerID 商家名称 联系人邮箱
| 1 | ThearchyHelios | user@example.com | … | Test Marchant By Shop
表头是制表符(已渲染成表格),数据行是竖线(还是原始文本)——折叠是
text.slice(0, 3000) 按字符硬切的,切点落进表格中间,前面几行渲染成表格、
最后半行没能成行。报告本身是完整的,只是被折叠了,但界面上看不出来。
改成只在行边界切;切点落进表格时整块表格都不要——宁可少显示一段,也不给
一张半截的表。另外原来只有一个"展开全部"按钮,看上去像报告就这么长,
现在先说"…后面还有,这里先折叠了"。
顺带治了落库那一处:answerText 在 4000 字处无声截断,刷新页面后那份就永久
少一截,断点同样常常落在表格中间。上限提到 20000,真切到了会写明已截断、
完整内容见运行记录。喂给下一轮的那份另有更狠的截断,两回事。
check-stream 多一节,盯的就是"折叠后不许留下没渲染的原始表格行"。
把切法改回硬切,它会立刻抓到残留的 `| 24 | user_23 | …`。
This commit is contained in:
@@ -115,6 +115,30 @@ console.log('\n=== Markdown 渲染 ===')
|
||||
await page.close()
|
||||
}
|
||||
|
||||
console.log('\n=== 长报告的折叠 ===')
|
||||
{
|
||||
// 折叠以前是按字符硬切的,切点落进表格中间:前面几行渲染成表格、最后半行
|
||||
// 留成原始的 `| 1 | ThearchyHelios | …`。用户看到的是一份被咬掉一口的报告。
|
||||
const page = await browser.newPage({ viewport: { width: 1280, height: 900 } })
|
||||
await page.goto(`${WEB}/preview.html?long=1`, { waitUntil: 'networkidle' })
|
||||
await page.waitForTimeout(300)
|
||||
|
||||
const folded = await page.locator('body').innerText()
|
||||
check('折叠时说破了"后面还有"', folded.includes('后面还有'))
|
||||
check('给得出展开入口', folded.includes('展开全部'))
|
||||
// 关键一条:折叠后不能留下没渲染成表格的原始 markdown 行
|
||||
const rawRow = folded.split('\n').find((l) => /^\s*\|.*\|/.test(l))
|
||||
check('没有半截的原始表格行', !rawRow, rawRow ? `残留:${rawRow.slice(0, 48)}` : '')
|
||||
check('开头的正文还在', folded.includes('总结'))
|
||||
|
||||
await page.locator('button', { hasText: '展开全部' }).first().click()
|
||||
await page.waitForTimeout(250)
|
||||
const full = await page.locator('body').innerText()
|
||||
check('展开后拿得到结尾', full.includes('身兼管理员与商家双重身份'))
|
||||
check('展开后表格渲染完整', full.includes('user_39'))
|
||||
await page.close()
|
||||
}
|
||||
|
||||
console.log('\n=== 空态 ===')
|
||||
{
|
||||
const page = await browser.newPage({ viewport: { width: 1280, height: 900 } })
|
||||
|
||||
Reference in New Issue
Block a user