285
* through `onTurnComplete` → `_doComputeStaticChangeset`. See tracking issue.
286
*/
288
>
sources: readonly ISessionDiffSource[],
289
>
diffService: IDiffComputeService,
290
>
): Promise<ISessionFileDiff[]> {
291
>
// Load every source's edits in parallel, then concatenate in source order so
292
>
// the identity graph sees a deterministic session-first ordering while each
293
>
// source keeps its own insertion order.
294
>
const perSourceEdits = await Promise.all(sources.map(source => source.db.getAllFileEdits()));
295
>
296
>
const pathToIdentityKey = new Map<string, string>();
297
>
const identities = new Map<string, IFileIdentity>();
298
>
let totalEdits = 0;
299
>
300
>
for (let sourceIdx = 0; sourceIdx < perSourceEdits.length; sourceIdx++) {
301
>
for (const edit of perSourceEdits[sourceIdx]) {
302
totalEdits++;
303
let identityKey: string;