The sessionStorage seed set loading=false whenever any cache existed, which defeats App.tsx's load-bearing pluginsLoading gate: with a cached manifest that declares tab.override === "/chat", the persistent ChatPage host must NOT mount before plugins resolve, or it spawns a PTY and gets yanked when the override plugin takes over the route. Seed loading=false from the cache only when no cached manifest overrides /chat (canSeedLoadedFromCache); manifests are still seeded either way so plugin routes register synchronously on refresh. Adds focused tests for the gate, including the /chat-override case. |
||
|---|---|---|
| .. | ||
| PluginPage.tsx | ||
| index.ts | ||
| registry.ts | ||
| sdk.d.ts | ||
| slots.ts | ||
| types.ts | ||
| usePlugins.test.ts | ||
| usePlugins.ts | ||