@@ -132,7 +131,7 @@ function CompletedMaterialItem({ material }: { material: AIMaterial }) {
{material.content && (
- {desensitize(material.content.slice(0, 300))}
+ {material.content.slice(0, 300)}
{material.content.length > 300 && '…'}
)}
@@ -170,7 +169,7 @@ function OutlineCompleted({ record, expanded, onToggle }: { record: CompletedInt
已确认大纲
{record.outline?.title && (
- 《{desensitize(record.outline.title)}》
+ 《{record.outline.title}》
)}
共 {sectionCount} 章节
@@ -197,7 +196,7 @@ function OutlineCompleted({ record, expanded, onToggle }: { record: CompletedInt
// ── 草稿确认历史卡 ────────────────────────────────────────────────────────────
function DraftCompleted({ record, expanded, onToggle }: { record: CompletedIntervention; expanded: boolean; onToggle: () => void }) {
- const title = record.draftTitle ? `《${desensitize(record.draftTitle)}》` : '草稿';
+ const title = record.draftTitle ? `《${record.draftTitle}》` : '草稿';
const wordCount = record.draftWordCount ?? 0;
const hasReview = !!record.reviewResult;
diff --git a/frontend-web/src/open-canvas/components/ai-writing/DraftStreamingView.tsx b/frontend-web/src/open-canvas/components/ai-writing/DraftStreamingView.tsx
index a244c25d..db6dc7f1 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/DraftStreamingView.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/DraftStreamingView.tsx
@@ -1,7 +1,6 @@
import { useEffect, useRef, useState } from 'react';
import { Brain, ChevronRight } from 'lucide-react';
import { cn } from '@/lib/utils';
-import { desensitize } from '@/lib/desensitize';
import type { StreamingDraftSection } from '../../types/ai-writing';
import { CollapseTransition } from './CollapseTransition';
@@ -50,7 +49,7 @@ function SectionThinking({ thinkingText, isDone }: { thinkingText: string; isDon
ref={preRef}
className="text-[10px] font-mono leading-relaxed px-2.5 py-2 text-amber-700/70 dark:text-amber-300/60 whitespace-pre-wrap max-h-32 overflow-y-auto italic"
>
- {desensitize(thinkingText)}
+ {thinkingText}
{!isDone && (
)}
@@ -72,7 +71,7 @@ function SectionBody({ text, showCursor }: { text: string; showCursor: boolean }
if (heading) {
return (
- {desensitize(line.slice(heading[0].length))}
+ {line.slice(heading[0].length)}
);
}
@@ -82,7 +81,7 @@ function SectionBody({ text, showCursor }: { text: string; showCursor: boolean }
key={i}
className="text-xs leading-relaxed text-foreground/90 whitespace-pre-wrap m-0 mb-1"
>
- {desensitize(line)}
+ {line}
);
})}
@@ -109,7 +108,7 @@ export function DraftStreamingView({ title, sections }: DraftStreamingViewProps)
{title && (
-
{desensitize(title)}
+ {title}
)}
{sections.map((sec) => (
@@ -118,7 +117,7 @@ export function DraftStreamingView({ title, sections }: DraftStreamingViewProps)
'text-sm font-semibold mb-1.5',
sec.isDone ? 'text-foreground' : 'text-purple-500',
)}>
- {desensitize(sec.sectionTitle ?? "")}
+ {sec.sectionTitle}
{/* 该章节的思考过程(可折叠) */}
diff --git a/frontend-web/src/open-canvas/components/ai-writing/IntentResultCard.tsx b/frontend-web/src/open-canvas/components/ai-writing/IntentResultCard.tsx
index 8cd885b9..1d69ff2f 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/IntentResultCard.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/IntentResultCard.tsx
@@ -1,7 +1,5 @@
import { Sparkles } from 'lucide-react';
-import { desensitize } from '@/lib/desensitize';
-
import type { ParsedIntent } from '../../types/ai-writing';
import type { ArticleType } from '../../api/ai-writing-article-types';
@@ -34,13 +32,13 @@ export function IntentResultCard({
-
+
{!hideTargetAudience && (
-
+
)}
{intent.refinedIntent && (
-
+
)}
diff --git a/frontend-web/src/open-canvas/components/ai-writing/IntentStreamingView.tsx b/frontend-web/src/open-canvas/components/ai-writing/IntentStreamingView.tsx
index a2899ffa..8be413d8 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/IntentStreamingView.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/IntentStreamingView.tsx
@@ -1,8 +1,6 @@
import { useEffect, useRef, useState } from 'react';
import { Sparkles, ChevronDown, ChevronRight, Brain } from 'lucide-react';
-import { desensitize } from '@/lib/desensitize';
-
interface IntentStreamingViewProps {
text: string;
thinkingText?: string;
@@ -56,7 +54,7 @@ export function IntentStreamingView({ text, thinkingText }: IntentStreamingViewP
ref={thinkRef}
className="text-[11px] font-mono leading-relaxed p-3 text-amber-700/70 dark:text-amber-300/60 whitespace-pre-wrap max-h-40 overflow-y-auto italic"
>
- {desensitize(thinkingText)}
+ {thinkingText}
{!text && (
)}
@@ -86,7 +84,7 @@ export function IntentStreamingView({ text, thinkingText }: IntentStreamingViewP
ref={preRef}
className="text-[11px] font-mono leading-relaxed p-3 text-muted-foreground whitespace-pre-wrap max-h-52 overflow-y-auto"
>
- {desensitize(text)}
+ {text}
diff --git a/frontend-web/src/open-canvas/components/ai-writing/InterventionCard.tsx b/frontend-web/src/open-canvas/components/ai-writing/InterventionCard.tsx
index d37af853..6f652103 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/InterventionCard.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/InterventionCard.tsx
@@ -6,7 +6,6 @@ import {
} from 'lucide-react';
import { Button } from '@/components/ui/button';
import { cn } from '@/lib/utils';
-import { desensitize } from '@/lib/desensitize';
import type {
AIMaterial, AIOutline, ReviewResult, ReviewIssue,
ProgressEvent, UserInterventionPayload,
@@ -381,7 +380,7 @@ function DraftConfirmCard({ draftTitle, revisionCount, reviewResult, onSubmit, d
草稿已完成,请确认后继续
- {draftTitle ? `《${desensitize(draftTitle)}》` : '草稿'}
+ {draftTitle ? `《${draftTitle}》` : '草稿'}
{revisionCount > 0 ? `(第 ${revisionCount} 次修改稿)` : '(初稿)'}
· 右侧可预览完整内容
@@ -617,8 +616,8 @@ function SectionHelpCard({ blockedSections, onSubmit, disabled }: SectionHelpCar
{blockedSections.map((b) => (
-
{desensitize(b.sectionTitle ?? "")}
-
{desensitize(b.reason ?? "")}
+
{b.sectionTitle}
+
{b.reason}
{DECISION_OPTIONS.map((opt) => {
diff --git a/frontend-web/src/open-canvas/components/ai-writing/IssueList.tsx b/frontend-web/src/open-canvas/components/ai-writing/IssueList.tsx
index 035f8241..e71bf5c8 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/IssueList.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/IssueList.tsx
@@ -1,5 +1,4 @@
import { cn } from '@/lib/utils';
-import { desensitize } from '@/lib/desensitize';
import type { ReviewIssue } from '../../types/ai-writing';
interface IssueListProps {
@@ -94,14 +93,14 @@ function IssueGroup({ label, labelClass, items, selectable, selectedIndices, onT
{CATEGORY_LABEL[issue.category] ?? issue.category}
- {desensitize(issue.location ?? "")}
+ {issue.location}
- {desensitize(issue.issue ?? "")}
+ {issue.issue}
→
- {desensitize(issue.suggestion ?? "")}
+ {issue.suggestion}
);
diff --git a/frontend-web/src/open-canvas/components/ai-writing/MaterialItem.tsx b/frontend-web/src/open-canvas/components/ai-writing/MaterialItem.tsx
index 8490bf10..539d90ff 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/MaterialItem.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/MaterialItem.tsx
@@ -1,7 +1,6 @@
import { useState } from 'react';
import { ChevronRight, ExternalLink } from 'lucide-react';
import { cn } from '@/lib/utils';
-import { desensitize } from '@/lib/desensitize';
import { buildIntranetSourceUrl } from '@/core/config';
import type { AIMaterial } from '../../types/ai-writing';
import { CollapseTransition } from './CollapseTransition';
@@ -52,7 +51,7 @@ export function MaterialItem({ material, checked, onToggle }: MaterialItemProps)
className="flex flex-1 items-start gap-1.5 text-left"
>
- {desensitize(material.title ?? "")}
+ {material.title}
- {desensitize(material.source ?? "")}
+ {material.source}
{material.publishedAt && (
<>
·
- {desensitize(material.publishedAt)}
+ {material.publishedAt}
>
)}
{/* 相关度色条 */}
@@ -91,7 +90,7 @@ export function MaterialItem({ material, checked, onToggle }: MaterialItemProps)
- {desensitize(material.content.slice(0, 300))}
+ {material.content.slice(0, 300)}
{material.content.length > 300 && '…'}
{material.recUuid && (
diff --git a/frontend-web/src/open-canvas/components/ai-writing/OutlineCard.tsx b/frontend-web/src/open-canvas/components/ai-writing/OutlineCard.tsx
index 8c638eb0..f70a36dc 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/OutlineCard.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/OutlineCard.tsx
@@ -1,7 +1,6 @@
import { useState } from 'react';
import { ListTree, Plus } from 'lucide-react';
import { Button } from '@/components/ui/button';
-import { desensitize } from '@/lib/desensitize';
import type { AIOutline, OutlineSection as OutlineSectionType } from '../../types/ai-writing';
import { OutlineSection } from './OutlineSection';
import { CollapseTransition } from './CollapseTransition';
@@ -93,7 +92,7 @@ export function OutlineCard({ outline, onChange, readOnly = false }: OutlineCard
className={editable ? 'flex-1 font-semibold cursor-text hover:text-primary' : 'flex-1 font-semibold'}
onClick={() => editable && setEditingTitle(true)}
>
- {outline.title ? desensitize(outline.title) :
(未设置标题)}
+ {outline.title ||
(未设置标题)}
)}
diff --git a/frontend-web/src/open-canvas/components/ai-writing/OutlineSection.tsx b/frontend-web/src/open-canvas/components/ai-writing/OutlineSection.tsx
index 92e226ff..b4dfeeec 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/OutlineSection.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/OutlineSection.tsx
@@ -1,6 +1,5 @@
import { useState } from 'react';
import { ChevronRight, Plus, X, GripVertical } from 'lucide-react';
-import { desensitize } from '@/lib/desensitize';
import { cn } from '@/lib/utils';
import type { OutlineSection as OutlineSectionType } from '../../types/ai-writing';
import { CollapseTransition } from './CollapseTransition';
@@ -101,7 +100,7 @@ export function OutlineSection({
className={cn('flex-1 font-medium', !readOnly && 'cursor-text hover:text-primary')}
onClick={() => !readOnly && setEditingTitle(true)}
>
- {section.sectionTitle ? desensitize(section.sectionTitle) : (未命名)}
+ {section.sectionTitle || (未命名)}
)}
@@ -120,7 +119,7 @@ export function OutlineSection({
•
{readOnly ? (
- {desensitize(kp)}
+ {kp}
) : (
- {desensitize(thinkingText)}
+ {thinkingText}
{/* 思考仍在进行时显示光标 */}
{!text && (
@@ -84,7 +82,7 @@ export function OutlineStreamingView({ text, thinkingText }: OutlineStreamingVie
ref={preRef}
className="text-[11px] font-mono leading-relaxed p-3 text-muted-foreground whitespace-pre-wrap max-h-52 overflow-y-auto"
>
- {desensitize(text)}
+ {text}
diff --git a/frontend-web/src/open-canvas/components/ai-writing/ReviewStreamingView.tsx b/frontend-web/src/open-canvas/components/ai-writing/ReviewStreamingView.tsx
index 1ab0bd5a..8019d069 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/ReviewStreamingView.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/ReviewStreamingView.tsx
@@ -1,7 +1,6 @@
import { useEffect, useRef } from 'react';
import { CheckCircle2, Loader2 } from 'lucide-react';
import { cn } from '@/lib/utils';
-import { desensitize } from '@/lib/desensitize';
import type { StreamingReviewItem, ReviewIssue } from '../../types/ai-writing';
const CATEGORY_META: Record<
@@ -42,9 +41,9 @@ function IssueRow({ issue }: { issue: ReviewIssue }) {
)}>
{issue.severity === 'major' ? '严重' : '轻微'}
- {desensitize(issue.issue ?? "")}
+ {issue.issue}
{issue.suggestion && (
- → {desensitize(issue.suggestion)}
+ → {issue.suggestion}
)}
);
@@ -74,10 +73,10 @@ function StreamingText({ item }: { item: StreamingReviewItem }) {
>
{item.thinkingText && (
- {desensitize(item.thinkingText)}
+ {item.thinkingText}
)}
- {desensitize(item.streamingText ?? "")}
+ {item.streamingText}
);
diff --git a/frontend-web/src/open-canvas/components/ai-writing/RevisionSummaryCard.tsx b/frontend-web/src/open-canvas/components/ai-writing/RevisionSummaryCard.tsx
index 30ef7453..0c9dca9a 100644
--- a/frontend-web/src/open-canvas/components/ai-writing/RevisionSummaryCard.tsx
+++ b/frontend-web/src/open-canvas/components/ai-writing/RevisionSummaryCard.tsx
@@ -1,6 +1,5 @@
import { CheckCircle2, XCircle } from 'lucide-react';
import { cn } from '@/lib/utils';
-import { desensitize } from '@/lib/desensitize';
import type { RevisionSummary } from '../../types/ai-writing';
interface RevisionSummaryCardProps {
@@ -50,7 +49,7 @@ export function RevisionSummaryCard({ summary }: RevisionSummaryCardProps) {
)}>
{CATEGORY_LABEL[iss.category] ?? iss.category}
-
{desensitize(iss.issue ?? "")}
+
{iss.issue}