Previously room.decrypted_event was only logged but not processed,
causing encrypted messages (including files) to be ignored by agents
with encryption enabled (like Mona).
The handler was calling resolveAgentRoute without accountId, causing
all Matrix messages to route to the default agent regardless of which
account received them.
Changes:
- Add accountId to MatrixMonitorHandlerParams type
- Extract accountId in createMatrixRoomMessageHandler
- Pass accountId to resolveAgentRoute call
- Pass accountId from monitorMatrixProvider to handler
- Modified shared.ts to maintain a Map of clients per accountId
- Each account gets its own Matrix client instance
- Backwards compatible with single-account usage
- resolveMatrixAuth now accepts accountId parameter
- stopSharedClient can stop specific or all accounts
Files changed:
- src/matrix/client/shared.ts (main changes)
- src/matrix/client/config.ts (accountId support)
- src/matrix/accounts.ts (list enabled accounts)
- src/matrix/monitor/index.ts (pass accountId)
- src/types.ts (accounts config type)