You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// 'Build average car price by days chart in SQLite',
211
+
// ];
212
+
// },
206
213
modes: [
207
214
{
208
215
name: 'Balanced',
@@ -260,6 +267,8 @@ plugins: [
260
267
// optional
261
268
// debugField: 'debug',
262
269
},
270
+
// optional, see the "Persistent checkpointer" section below
271
+
// checkpointResource: { ... },
263
272
}),
264
273
]
265
274
```
@@ -268,6 +277,218 @@ Each item in `modes` defines a user-selectable preset in the chat UI. The select
268
277
269
278
The plugin adds a chat surface to the admin UI, keeps session history per admin user, and shows a mode picker when `modes` are configured.
270
279
280
+
## Persistent checkpointer
281
+
282
+
If you do not configure `checkpointResource`, the plugin falls back to an in-memory `MemorySaver`. This is fine for local testing, but checkpoints are lost on process restart.
283
+
284
+
If you want persistent LangGraph checkpoints between requests, add a dedicated resource and pass it via `checkpointResource`.
285
+
286
+
You can use your own table and field names. The plugin does not require a specific schema name, only a mapping for these logical fields:
The payload fields can be stored as strings. The plugin serializes and deserializes checkpoint JSON on its own. The composite index on `(thread_id, checkpoint_ns, checkpoint_id)` is recommended because the checkpointer filters rows by these columns.
If your existing checkpoint table already uses different column names, keep your schema and only change the field mapping in `checkpointResource`.
491
+
271
492
## Reverse proxy and CDN configuration for streaming
272
493
273
494
The agent streams responses from `<baseURL>/adminapi/v1/agent/response` using server-sent events, where `<baseURL>` is your AdminForth base path or an empty string when deployed at the domain root. If your proxy buffers responses, the UI will receive the answer only after generation is finished.
errors.push(`Resource "${res.resourceId}" action "${action.name}" has showIn enabled for non-bulk locations (list, listThreeDotsMenu, showButton, showThreeDotsMenu) but has no "action" or "url" handler. Either add an "action" handler or set those showIn flags to false.`);
0 commit comments