@@ -164,7 +164,7 @@ export function createExtensionRuntime(): ExtensionRuntime {
|
||||
invalidate: (message) => {
|
||||
state.staleMessage ??=
|
||||
message ??
|
||||
"This extension instance is stale after session replacement or reload. Use the provided replacement-session context instead.";
|
||||
"This extension ctx is stale after session replacement or reload. Do not use a captured pi or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().";
|
||||
},
|
||||
// Pre-bind: queue registrations so bindCore() can flush them once the
|
||||
// model registry is available. bindCore() replaces both with direct calls.
|
||||
|
||||
@@ -458,7 +458,9 @@ export class ExtensionRunner {
|
||||
return this.shortcutDiagnostics;
|
||||
}
|
||||
|
||||
invalidate(message = "This extension instance is stale after session replacement or reload."): void {
|
||||
invalidate(
|
||||
message = "This extension ctx is stale after session replacement or reload. Do not use a captured pi or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().",
|
||||
): void {
|
||||
if (!this.staleMessage) {
|
||||
this.staleMessage = message;
|
||||
this.runtime.invalidate(message);
|
||||
|
||||
Reference in New Issue
Block a user