refactor(frontend): 四生成 hook 结束后额外返回产物(AC-3 留痕前置)
useRefine.refine/recommunicate→RefineVersion|null、useContinue.generate→string|null、 useChapterRewrite.send→RewriteVersion|null、useGenerator.generate→GeneratorArtifact|null。 向后兼容(既有调用忽略返回值不受影响);各 hook 成功用例补返回值断言。 面板据此 if(artifact) 才 append,空候选/错误路径不留痕。
This commit is contained in:
@@ -26,18 +26,19 @@ export interface UseRefine {
|
||||
latest: RefineVersion | null;
|
||||
// 最初选中的原文(accept 回填的对比基线)。
|
||||
original: string | null;
|
||||
// 回炉并返回本版产出(供调用方在结束后留痕);失败返回 null。
|
||||
refine: (
|
||||
projectId: string,
|
||||
chapterNo: number,
|
||||
segment: string,
|
||||
instruction?: string,
|
||||
) => Promise<void>;
|
||||
// 以上一版产出为输入 + 作者新意见再回炉一次。无历史版本时为空操作。
|
||||
) => Promise<RefineVersion | null>;
|
||||
// 以上一版产出为输入 + 作者新意见再回炉一次。无历史版本时为空操作(返回 null)。
|
||||
recommunicate: (
|
||||
projectId: string,
|
||||
chapterNo: number,
|
||||
instruction: string,
|
||||
) => Promise<void>;
|
||||
) => Promise<RefineVersion | null>;
|
||||
reset: () => void;
|
||||
}
|
||||
|
||||
@@ -52,7 +53,7 @@ export function useRefine(): UseRefine {
|
||||
chapterNo: number,
|
||||
segment: string,
|
||||
instruction: string,
|
||||
): Promise<void> => {
|
||||
): Promise<RefineVersion | null> => {
|
||||
setStatus("refining");
|
||||
try {
|
||||
const trimmed = instruction.trim();
|
||||
@@ -66,16 +67,20 @@ export function useRefine(): UseRefine {
|
||||
if (error || !data) {
|
||||
setStatus("error");
|
||||
toast("回炉失败,请重试。", "error");
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
setVersions((prev) => [
|
||||
...prev,
|
||||
{ segment, instruction: trimmed, refined: data.refined },
|
||||
]);
|
||||
const version: RefineVersion = {
|
||||
segment,
|
||||
instruction: trimmed,
|
||||
refined: data.refined,
|
||||
};
|
||||
setVersions((prev) => [...prev, version]);
|
||||
setStatus("ready");
|
||||
return version;
|
||||
} catch {
|
||||
setStatus("error");
|
||||
toast("回炉请求异常,请检查网络。", "error");
|
||||
return null;
|
||||
}
|
||||
},
|
||||
[toast],
|
||||
@@ -91,7 +96,7 @@ export function useRefine(): UseRefine {
|
||||
(projectId, chapterNo, instruction) => {
|
||||
const last = versions[versions.length - 1];
|
||||
// 无历史版本 → 无从「再沟通」;空操作,不打后端。
|
||||
if (!last) return Promise.resolve();
|
||||
if (!last) return Promise.resolve(null);
|
||||
return runRefine(projectId, chapterNo, last.refined, instruction);
|
||||
},
|
||||
[runRefine, versions],
|
||||
|
||||
Reference in New Issue
Block a user