From 6b08201e3613e69ef27bbe83e637ebcd0f35e401 Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Mon, 9 Nov 2026 09:36:14 +0800 Subject: [PATCH] Show case conclusion citations in one disclosure Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../personal-workspace/research-case-study.css | 4 +++- .../personal-workspace/research-case-study.tsx | 17 ++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.css b/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.css index 6a65e96d47..719e020888 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.css +++ b/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.css @@ -36,7 +36,9 @@ .case-section-number { color: var(--pw-muted); font-size: var(--text-body); margin-bottom: 6px; } .research-case-study .case-section h3 { font-size: 23px; font-weight: 600; line-height: 1.5; margin: 0 0 18px; } .case-section > .personal-md { max-width: 80ch; } -.case-sources { margin-block-top: 8px; }.case-sources button { display: block; text-align: start; font: inherit; font-size: var(--text-body); color: var(--pw-text); background: none; border: 0; min-height: 44px; padding: 8px 0; cursor: pointer; overflow-wrap: anywhere; } +.case-sources { margin-block-top: 8px; } +.case-citation-links { list-style: none; margin: 0; padding: 0; } +.case-citation-links button { display: block; text-align: start; font: inherit; font-size: var(--text-body); color: var(--pw-text); background: none; border: 0; min-height: 44px; padding: 8px 0; cursor: pointer; overflow-wrap: anywhere; } .case-table-scroll { overflow-x: auto; margin-block: 24px; }.case-table-scroll table { border-collapse: collapse; width: 100%; font-size: var(--text-body); line-height: 1.7; } .case-table-scroll :is(th,td) { border-bottom: 1px solid var(--pw-line); text-align: start; vertical-align: top; padding: 12px 16px 12px 0; min-width: 85px; } .case-table-scroll th { font-weight: 500; }.case-table-scroll thead th { color: var(--pw-muted); }.goal-research-workbench .research-case-reader .research-case-study .case-table-scroll .personal-md { font-size: inherit; }.case-table-scroll .personal-md p { margin: 0; } diff --git a/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.tsx b/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.tsx index 30ca9075f1..d9d03d5b0c 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/research-case-study.tsx @@ -51,10 +51,11 @@ export function ResearchCaseStudy({study, zh, historical, scope, onCitation}: { onCitation: (c: AssessmentCitation, origin?: HTMLButtonElement) => void; }) { const id = useId().replace(/:/g, ''); - const sources = (citations: AssessmentCitation[]) =>
{zh ? '依据与原文' : 'Evidence and originals'} - {citations.map((c, i) => )} -
; + const citationLinks = (citations: AssessmentCitation[]) => ; return

{scope.case_id} · {zh ? 'Case 深度解读' : 'Case study'}

@@ -62,10 +63,10 @@ export function ResearchCaseStudy({study, zh, historical, scope, onCitation}: {
{historical ?

{zh ? '来源已变化或暂不可读。下文保留注册时的解读与证据快照,不能视作当前结果。' : 'The source changed or is unavailable. This reading and its evidence snapshot describe the registered version, not current results.'}

: null} {study.language !== (zh ? 'zh' : 'en') ?

{zh ? '显示已保存的英文原文。' : 'Showing the saved Chinese original.'}

: null} -
{zh ? '范围与来源' : 'Scope and provenance'} +
{zh ? '结论依据与范围' : 'Conclusion evidence and scope'} + {citationLinks(study.citations)}

{zh ? '已保存的作者分析;来源绑定不代表结论已独立验证。' : 'Saved author analysis; source binding does not independently verify the conclusions.'}

{zh ? '观察窗口' : 'Window'}
{scope.window}
{zh ? '运行' : 'Run'}
{scope.run_id}
{zh ? '版本' : 'Revision'}
{scope.revision}
- {sources(study.citations)}
@@ -79,7 +80,9 @@ export function ResearchCaseStudy({study, zh, historical, scope, onCitation}: { {s.table ?
{s.table.columns.map((c, i) => )}{s.table.rows.map((row, i) => {row.map((cell, j) => j === 0 ? : )})}
{c}
{cell}
: null} {s.timeline ?
    {s.timeline.map((event, i) =>
  1. {event.label}

    {event.title}

  2. )}
: null} - {sources(s.citations)} +
{zh ? '依据与原文' : 'Evidence and originals'} + {citationLinks(s.citations)} +
)} {study.limitations.length ?

{zh ? '这份解读还缺什么' : 'What this reading cannot resolve'}

    {study.limitations.map((text, i) =>
  • {text}
  • )}
: null}