Repository navigation
fix(dashboard): 研究计数正确区分单条与多条 - #7551
Conversation
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent | gpt-6.1-sol | OpenAI | runtime_reported | reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
未发现本切片的阻塞问题,建议接受准确 head a859fb3989de316af78c4117f7f96a0857bca132 的计数文案修复。以下是作者自评,不是独立批准或合并授权。
动机 / Motivation
阅读研究历程、问题分组和决策记录的用户。只有一条结论时,列表原来显示“1 findings”;现在显示“1 finding”,打开后仍是原来那条完整结论。结论、记录和问题的单条与多条文案一致,受阻和未知仍可直接辨认。本 PR 只修计数措辞,不交付整个研究页改版,也不证明安装采用、翻译质量或研究收益。正式 App 采用和更广的研究阅读体验仍由现有研究工作继续验收。
改动思路 / Approach
计数措辞属于现有显示层;复用结论文案 owner,没有增加状态、评测器或交互。只覆盖研究历程的单条/多条措辞;原研究体验与正式采用继续独立验收。沿现有 Explore 记录及计数投影读取,再由既有 React 文案层决定名词形式。单改初见的一处字符串会遗漏时间段、关系图和决策分组;新增全局国际化框架又超出这次问题。当前选择在共享 finding copy 中统一结论数量,记录、问题和研究项的单复数留在原页面。数据来源、排序、分页、失败恢复和模型调用均未迁移;用户没有多一轮填写、确认或操作。
具体改动 / Changes
依据已接受的 docs/development/design.md,规范 revision 为 843be494266774b63b3de61d0adf5dd7f4f877a2。对应原文中的三个段落:Research Workspace 要求数量对应当前范围,Explanations On Demand 要求真实状态和完整证据可读,Typography 要求正常字号。这三项在本 head 均为 implemented,未增加默认说明段落,未通过缩字实现精简。
关键代码讲解
exploreFindingCopy增加纯count格式化:英文只在数值为 1 时用 finding,0 和多项用 findings;中文使用“条结论”。原状态名称与来源判断的含义逐字保留,没有把“来源确认”升级为独立验证。GoalResearchHistory在图节点和所选问题组复用同一格式化,并为记录总量和日期分组选择 record/question。原来没有结论的节点仍不伪造“0 finding”,真实 blocked 原因继续显示;“已读取数/总数”的分子分母仍来自原读取 owner。GoalResearchTimeline同时修正可见时间段数量及其无障碍名称,路线研究项和日期问题数沿现有整数判断;TrailQuestion用原决策数组数量选择 decision record(s)。这些分支不更改分组、时间范围、历史身份或选择处理。
完整差分为三个既有 TS 文件的 +19/-17,以及八张公开合成截图。没有新增依赖、协议、状态字段、页面或通用测试脚手架。PNG 是可审阅的视觉证据,不是运行时输入;已检查像素和元数据。
对主干的风险 / Risks
最有力的反例是只验证一条成功结论,却遗漏零/多项、超过日期分组阈值和受阻未知状态。本次复用同一准确 head 已完成的四组中英文/1440/390 阅读及另外四组单记录/19 问题边界;逐项核对不可变输入和历史回执。原基线保留 1 findings、1 decision records,修复后为 1 finding、1 decision record;0/20 findings、18 questions/1 question 和 1/1 record 均有真实 HTTP/SQLite 读回。来源字节不变、业务写入为零。
原 head 的 TypeScript/生产构建及完整 packaged research-finding-reader PASS(4.406 秒),本轮重新验证 source witness、head/base、13 份原证据 hash 与差分卫生,条件未失效,因此没有再跑同一完整矩阵。另补看两种宽度的展开原文和来源,长重复段落完整、正文 16px。标准 premerge 的 4 直接 + 11 选中自动检查 PASS,CQR 匹配;八张图片的人工留置仍按原生门保留,不冒称自动放行。早期私有探针的选择器/夹具类型、CQR 参数以及二进制读取工具失败保留,不能改写成产品失败或历史全绿。CI 按当前策略未读取、未等待。回滚只需撤回此文案提交,无数据迁移。
我的整体评价 / Verdict
这是 justified_increment:对研究阅读有具体、有限的改善,long_horizon 为 preserved,user_experience 为 improved,仅指准确的计数措辞。逐张看过八张合成整页图,并补看相同 head 的桌面与 390px 完整结论及展开来源。单条文案得到修正,正文、负面状态和按需原文入口保留;布局没有改变。桌面问题组截图沿用选中后的滚动位置,标题部分被固定页头覆盖,不能据此宣称首屏构图改善;独立的概览首屏与完整阅读视图分别核对。
未验正式 App、真实用户理解、生成译文和完整研究页体验;本次图审不把这些范围判为通过。共享文案复用充分,不需要再加框架或兼容层。没有 opt-in/默认关闭或权限变更主张;语义词汇仅为本地显示文案,不新增控制面术语。GitHub 正式独立批准、维护者合并与安装采用仍是各自边界,本自评不替代它们。
English verdict: APPROVE a859fb3989de316af78c4117f7f96a0857bca132. The count-only change preserves recorded facts and failure states; packaged HTTP/SQLite readback passes. Author review only; installed App and broader research quality remain unverified.
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
a859fb3 to
c9cb6f8
Compare
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Signed-off-by: huangruiteng <huangrt01@163.com>
c9cb6f8 to
baa70f4
Compare
huangruiteng
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; model=gpt-6.1-sol; provider=OpenAI; reasoning_effort=max; source=runtime_reported
本轮 rebase 后,远端已由维护者账号合并为 f3ae654。以下为最终提交的合并后补录评审;本轮未再执行合并,补录不追认缺失的合并前评审和 readiness 记录。
动机 / Motivation
使用研究页阅读历史、分组问题和决策记录的中英文用户会遇到这个问题。同组只有一条结论时,旧页面显示 1 findings;现在显示 1 finding,并保留该问题的暂定状态和旁边问题的受阻原因。已验证零、一、多项计数,以及完整原文、分组返回和来源只读回读;改动完成这项数量文案修复。本次范围仅为数量文案和相应截图,不改变结论判断、时间分组、分析执行或目标验收。
错误会反复出现在同一页的数量旁;不改动仍会保留可复现的阅读瑕疵。收益限于文案准确和一致性,没有声称提升研究结果质量或长程效率。
改动思路 / Approach
Research 入口从既有只读历史加载器读取规范 Explore 记录,TypeScript projection 继续决定节点、结论、时间分组和记录总数。此次只在渲染边界选择单复数,结论数量复用 exploreFindingCopy,其他名词保留在相邻的中英文 copy。数量格式属于现有展示 owner,复用结论文案并保留相邻的局部名词分支,比引入通用翻译框架更直接;本次没有新增状态、策略或 provider。当前 PR 交付研究历程数量文案修复及对应视觉证据,沿用主干的分组阅读与返回机制。
正向路径已走通:时间线选择两项相邻研究,读单条暂定结论,再用 Escape 回到原问题组。rebase 冲突保留主干的 collectionOpener / chooseQuestion 返回上下文。失败路径中另一个问题仍显示 Blocked、来源不可用和结果未知;数量修复没有把这些来源状态变成确认或完成。原始证据展开与重载仍使用已有 reader。
具体改动 / Changes
关键代码讲解
- exploreFindingCopy 新增纯 count 格式化;英文只在数值等于一时使用 finding,零和多条使用 findings,中文保留完整的条结论量词。原有状态标签及意义说明逐字保留。
- GoalResearchHistory 复用结论计数,记录总数按 read.total 选择 record,日期分组按真实成员数选择 question。分页完整性、错误保留、选择及来源回读均未改。组列表点击沿用最新主干的返回机制。
- GoalResearchTimeline 对阶段可见文案和 aria/title 同时应用格式化,并处理 research item、question 单数;TrailQuestion 对单条决策显示 decision record。所有数量仍取自原 typed projection。
规范依据为 docs/development/design.md,固定版本 55f74c1。Research Workspace → implemented:来源判断与记录时间的边界保留;Explanations On Demand → implemented:默认数量可见,完整原文和来源按需可读;Typography → implemented:正文和来源字号未缩小;Populated Page Review → implemented:检查长重复内容、混合正负/暂定/受阻状态、整页及窄屏展开。这里只承接该修复触及的当前设计义务,不把未来产品验收扩大为本 PR 目标。
最终 diff 为三个展示文件的19行增加/17行删除和八张更新截图。没有新增协议、状态、CLI、provider 或翻译框架。复用现有结论文案已是合适的局部简化,无需进一步抽象或新增一次性公开 smoke。
对主干的风险 / Risks
未发现阻断问题。最有实际风险的是 rebase 时误恢复旧的分组点击逻辑,导致读完一条结论丢失原问题集合;真实 HTTP/SQLite 的选择、原文阅读和 Escape 返回已排除这个反例。另一个风险是通用 reader 检查通过但日期分组仍显示 1 questions,因此补用19个规范 question 节点形成18项和1项的日期组,在 timeline 和 graph 两个真实入口分别比较基线与当前行为。
PASS:TypeScript、Vite 及 Chat 生产构建;既有 packaged research-finding-reader;实际 formatter 的0/1/多项与中文检查;单记录、密集33记录/8节点、18+1日期组的基线/当前回读;最终源码哈希与打包资产一致;DCO、双语 RFC 与 diff 检查。标准 premerge 的4项直接检查和11项选中检查全部完成,失败数为零;CQR cqr_04446113da0c28be334c 对最终 diff 有效。原始 gate 仍保留八张图片的 manual_review_required,已通过逐张实际查看与元数据核对完成该人工义务。
来源文件字节保持不变,两个隔离后端的 mutation_attempts 都为零。八张截图已逐张核对合成像素与 ICC-only 元数据,没有私有信息。通用自动检查对图片保留 manual_review_required,人工核对作为独立维护者结论,不伪称自动通过。当前策略 wait_for_ci=false,未获取、轮询或等待 GitHub CI。此前环境变量、私有 fixture 类型/事件 id 和选择器探针失败均保留记录;实际规范 fixture 和当前源树上的有效运行覆盖了这些分支,没有删除断言或把失败改写为通过。
我的整体评价 / Verdict
problem_context=goal_achieved;long_horizon=preserved;user_experience=improved。实际改善是数量文案准确,继续/转向决策、证据来源及完整阅读所需步骤保持原样;没有新增确认、复制或设置轮次。实际整页保留研究标题、数量和状态的层级;桌面与窄屏都能直接看到受阻原因和单条结论数量,完整原文及来源细节仍按需可读。长内容的正文和来源字号保持,分组返回后仍定位到原来的问题集合。未验证正式安装的 App、真实用户数据、独立确认或长期阅读效率;本次结论限于打包页面与合成来源。
机制与问题相称,现有 owner 足够;状态与协议词汇没有扩展,关闭开关隔离不适用,因为没有引入开关。当前提交 baa70f4 是完整审查对象;代码与已构建源树相同,最后 amend 仅刷新 PNG,最终 source-input witness 已核对。旧提交作者自审不能覆盖 rebase 后的新提交。远端在本轮检查期间已经合并,最终 head 当时尚无本轮发布的完整评审,故如实保留这一流程缺口;后续合并仍应先发布不变 head 的评审,再读取 approval closeout 和 merge readiness,不能把本次补录当作门禁已经提前满足。
English verdict: APPROVE baa70f4. Singular/plural labels are corrected through the existing presentation owners; current-main reading and recovery behavior is preserved by paired real-backend checks. No blocking finding. Installed-app adoption and long-horizon benefit remain unverified; CI was not consulted.
研究页只有一条结论时仍显示
1 findings,单条决策记录、日期分组和记录总数也固定使用复数。现在结论数量复用现有exploreFindingCopy,时间线、关系图与分组列表正确显示1 finding、1 decision record、1 question和1 record;零与多项保持复数,中文使用完整量词。这是现有 Research 阅读流程的数量文案修复。原始记录、来源状态、时间分组、错误/未知显示和按需读取原文继续由现有 owner 负责。
已 rebase 到主干
55f74c1af2aa6a726fc2f4e76c1ebd7a1654be39;冲突处保留主干新增的分组阅读与返回上下文。最终提交baa70f4ce3939bf68bad18a9f70ffda82da7a227,远端已合并为f3ae654d94f5899e3287044fc59ec2b4b8691e69。最终提交的完整评审在合并后补录;不把补录当作合并前门禁的证据。验证:TypeScript、Vite 和 Chat 生产构建通过;既有 packaged
research-finding-reader通过。相同合成来源在真实隔离 HTTP/SQLite 上比较主干与当前页面:33 条记录、8 个研究节点、20 条重复长结论、确认/反驳/暂定/受阻和未知;另用单记录及 19 个规范 question 节点组成 18+1 日期组,分别验证 timeline/graph。单数问题可复现且已修复,零和多项保留。完整原文、来源展开、重载、键盘/触屏与 Escape 返回可用;来源字节不变,两个后端均无业务写入。标准 premerge 的 4 项直接检查、11 项选中检查全部执行,失败数为零;最终 diff 的 CQR
cqr_04446113da0c28be334c有效。原始 gate 保留 8 张图片的manual_review_required,已逐张检查实际像素与 ICC 元数据,作为单独人工验证。按当前wait_for_ci=false策略未查询 GitHub CI。视觉证据:以下 8 张均重新捕获并逐张查看,桌面为 1440×900,窄屏为 390×900。之前使用上述不可变主干,之后使用最终提交相同的生产源码;构建于
14364aa24808e60589258f6d0fe5da9a88c0bcc8,最后 amend 仅更新这些 PNG,最终源码输入哈希与 bundle 一致。默认整页先看研究内容、数量与状态,选中后看同组问题,完整原文和来源保持按需读取;负面与未知信息均可见。证据边界为实际打包页面、合成记录、隔离真实后端;未安装正式 App,也不声称真实用户采用或长程收益。