修:引擎作用域不得吸入他单事实 + 记录 G2 未分流的排查线索
任务视图铺到顶层的字段,原先取「该对象最新一行」—— 那一行很可能是**别的任务** 放行后的正式版记录。实测:NE555P 的打标读到了上一单 LM358DR 的情报 (historyDays 30 / 在产),被判成 Type A;修正后按自己的事实判成 Type B「重估后报」, 与 P-03 规则一致。 改为只铺**本任务自己写下的**草稿(读己之写),别人的事实仍在 `域.对象` 整表里、 要用得显式取。ledger 门面因此新增 `taskDrafts(taskId)` —— 与 `taskView` 的区别是 它只回我写过的那些行。 顺带记录:A1 已能 released 且节点实例正确落 terminal,但 G2 并行网关未起出 下游 A3 / A2;排查线索写进 PROGRESS.md 待办 1。 gates: tsc / eslint / depcruise(317 模块)/ 393 测试 全绿 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -90,6 +90,12 @@ export type LedgerService = {
|
||||
query(query: LedgerQuery): Promise<LedgerPage>;
|
||||
/** 任务视图 = 正式版 + 本任务草稿层 */
|
||||
taskView(taskId: TaskId, query: LedgerQuery): Promise<LedgerPage>;
|
||||
/**
|
||||
* **本任务自己写的**草稿条目(读己之写的读面)。
|
||||
* 与 `taskView` 的区别:那个是「正式版 + 我的草稿」的合并视图,
|
||||
* 这个只回我写过的那些行 —— 引擎求值要区分「这一单的事实」与「别人放行后的事实」。
|
||||
*/
|
||||
taskDrafts(taskId: TaskId): Promise<Array<{ domain: string; object: string; key: Record<string, unknown>; patch: Record<string, unknown> }>>;
|
||||
/** 落地预检第五项:数据冲突检查 */
|
||||
checkConflicts(taskId: TaskId): Promise<ConflictFinding[]>;
|
||||
discardDrafts(taskId: TaskId): Promise<void>;
|
||||
|
||||
@@ -204,6 +204,11 @@ export function createLedgerService(deps: LedgerServiceDeps): LedgerService {
|
||||
return { rows, total: rows.length };
|
||||
},
|
||||
|
||||
async taskDrafts(taskId) {
|
||||
const drafts = await deps.drafts.list(taskId);
|
||||
return drafts.map((d) => ({ domain: d.domain, object: d.object, key: d.key, patch: d.patch }));
|
||||
},
|
||||
|
||||
async checkConflicts(taskId) {
|
||||
const drafts = await deps.drafts.list(taskId);
|
||||
if (drafts.length === 0) return [];
|
||||
|
||||
Reference in New Issue
Block a user