Skip to content

Commit a2b2c4a

Browse files
authored
refactor(msteams): persist conversation and poll stores in sqlite
Move MSTeams conversation and poll plugin-local stores to plugin-state SQLite. Legacy JSON stores import once without overwriting existing SQLite state; conversation and poll IDs are hashed for plugin-state keys; poll votes are sharded with bounded row-cap headroom and prune cleanup; MSTeams docs now describe SQLite storage. SSO and delegated token stores are unchanged. Verified with focused MSTeams tests, docs sanity, autoreview, Testbox check:changed, and green PR CI.
1 parent a9a86f7 commit a2b2c4a

19 files changed

Lines changed: 1257 additions & 300 deletions

docs/channels/msteams.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -915,9 +915,10 @@ Uploaded files are stored in a `/OpenClawShared/` folder in the configured Share
915915
OpenClaw sends Teams polls as Adaptive Cards (there is no native Teams poll API).
916916

917917
- CLI: `openclaw message poll --channel msteams --target conversation:<id> ...`
918-
- Votes are recorded by the gateway in `~/.openclaw/msteams-polls.json`.
918+
- Votes are recorded by the gateway in OpenClaw plugin-state SQLite under `state/openclaw.sqlite`.
919+
- Existing `msteams-polls.json` files are imported once when the MSTeams plugin starts.
919920
- The gateway must stay online to record votes.
920-
- Polls do not auto-post result summaries yet (inspect the store file if needed).
921+
- Polls do not auto-post result summaries yet, and there is no supported poll-results CLI yet.
921922

922923
## Presentation cards
923924

extensions/msteams/src/conversation-store-fs.test.ts

Lines changed: 0 additions & 81 deletions
This file was deleted.

extensions/msteams/src/conversation-store-fs.ts

Lines changed: 0 additions & 149 deletions
This file was deleted.

0 commit comments

Comments
 (0)