feat(workstate): UI des résumés de conversation (Lot C frontend)
Affiche les résumés de conversation dans ProjectWorkStatePanel à partir du DTO camelCase : type de domaine et adaptateur mock alignés, panneau enrichi. Tests verts : workstate.test.tsx + projects.test.tsx (2 fichiers / 19), tsc --noEmit OK. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -1662,7 +1662,9 @@ export class MockWorkStateGateway implements WorkStateGateway {
|
||||
}
|
||||
|
||||
async getProjectWorkState(projectId: string): Promise<ProjectWorkState> {
|
||||
return structuredClone(this.states.get(projectId) ?? { agents: [] });
|
||||
return structuredClone(
|
||||
this.states.get(projectId) ?? { agents: [], conversations: [] },
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1670,6 +1672,7 @@ type LegacyProjectWorkState = {
|
||||
agents: Array<Omit<ProjectWorkState["agents"][number], "tickets"> & {
|
||||
tickets?: ProjectWorkState["agents"][number]["tickets"];
|
||||
}>;
|
||||
conversations?: ProjectWorkState["conversations"];
|
||||
};
|
||||
|
||||
function normalizeProjectWorkState(
|
||||
@ -1680,6 +1683,7 @@ function normalizeProjectWorkState(
|
||||
...structuredClone(agent),
|
||||
tickets: structuredClone(agent.tickets ?? []),
|
||||
})),
|
||||
conversations: structuredClone(state.conversations ?? []),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user