Skip to content

Commit 8d6a6e9

Browse files
authored
feat: move workboard to relational sqlite
Move Workboard durable data into a relational SQLite database and add extension doctor migration for .28 plugin-state rows. Preserve attachment lifecycle behavior, SQLite permissions/WAL settings, and scoped plugin migration access.
1 parent 7fc02d3 commit 8d6a6e9

15 files changed

Lines changed: 2564 additions & 61 deletions

docs/plugins/workboard.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,19 @@ Claimed cards reject agent-tool mutations from other agents unless the caller
140140
has the claim token returned by `workboard_claim`. Dashboard operators still use
141141
the normal Gateway RPC surface and can recover or reassign cards.
142142

143-
Workboard stores all durable board data through the plugin SQLite key-value
144-
store. Cards live in `workboard.cards`, board metadata in `workboard.boards`,
145-
notification subscriptions in `workboard.notify`, and attachment blobs in
146-
`workboard.attachments`. Run history, comments, proof, artifact references,
147-
attachment indexes, diagnostics, dependencies, lifecycle events, worker logs,
148-
protocol state, and automation metadata stay on the card record so a card export
149-
preserves the board narrative without inlining attachment blob contents. Each
150-
attachment blob must fit one 64 KiB plugin state value after JSON serialization.
143+
Workboard stores durable board data in a plugin-owned relational SQLite database
144+
under the OpenClaw state directory. Boards, cards, labels, lifecycle events,
145+
run attempts, comments, dependency links, proof, artifact references,
146+
attachment metadata and blobs, diagnostics, notifications, worker logs,
147+
protocol state, and subscriptions are persisted in Workboard tables instead of
148+
plugin key-value entries. A card export still preserves the board narrative
149+
without inlining attachment blob contents.
150+
151+
Installations that used Workboard in the `.28` release can run
152+
`openclaw doctor --fix` to migrate the shipped legacy plugin-state namespaces
153+
(`workboard.cards`, `workboard.boards`, and `workboard.notify`) into the
154+
relational database. If a legacy `workboard.attachments` namespace is present,
155+
doctor migrates those attachment blobs too.
151156

152157
Workboard diagnostics are computed from local card metadata. The built-in checks
153158
flag assigned cards that wait too long, running cards without recent heartbeat,

0 commit comments

Comments
 (0)