import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
/**
* A reconciliation outlives the session it began in, and every extension ctx accessor throws once
* that session is replaced or reloaded. Reading the branch is the only way to ask, so a replaced
* session answers "no" instead of throwing into callers that have nowhere to catch it.
*/
export function onLiveBranch(ctx: ExtensionContext, entryId: string | null): boolean {
try {
const branch = ctx.sessionManager.getBranch();
return entryId === null || branch.some((entry) => entry.id === entryId);
} catch {
return false;
}
}