assert(resolvedTarget.autoRouted,"Chat target resolver did not auto-route the default chat request.");
assert(!preservedTarget.autoRouted,"Chat target resolver should not auto-route requests that start inside a non-home project session.");
assert(resolvedTarget.sessionState.projectId===xiaohongshu.id,"Chat target resolver did not rebind the request into the Xiaohongshu workspace session.");
assert(preservedTarget.sessionState.projectId===douyin.id,"Chat target resolver should preserve the original non-home project session.");
assert(resolvedTarget.sessionState.sessionId!==seedSession.id,"Chat target resolver should not reuse the original Douyin session for a Xiaohongshu request.");
assert(preservedTarget.sessionState.sessionId===seedSession.id,"Chat target resolver should reuse the original non-home project session.");
assert(resolvedTarget.autoRouted,"Chat target resolver did not auto-route the home chat request.");
assert(resolvedTarget.previousProjectId==="home-chat","Chat target resolver should report home-chat as the previous project.");
assert(resolvedTarget.sessionState.projectId===xiaohongshu.id,"Chat target resolver did not rebind the home chat request into the Xiaohongshu workspace session.");
assert(resolvedTarget.sessionState.sessionId!==homeSession.id,"Chat target resolver should not reuse the original home session for a Xiaohongshu request.");
assert(publisherRoute?.skillId==="xiaohongshu-publisher","Skill router did not choose the Xiaohongshu publisher skill for the existing-draft publish request.");
assert(publisherRoute?.skillId==="xiaohongshu-publisher","Skill router did not choose the Xiaohongshu publisher skill for the existing-draft publish request.");
assert(workspaceEntryDecision.kind==="workspace-entry","Execution router did not prefer workspace-entry for publish intent when a skill was already selected.");