ChatEvent¶
ChatEvent is ChatArch's collaboration-event observability layer. It captures official events from Zulip, Discourse, Gitea, and GitHub, normalizes them into a Pydantic ChatEvent, stores them in SQLite, and exposes a Web Observatory for inspection and debugging.
official platform event / webhook / API cursor
→ ChatEvent normalizer
→ SQLite event store
→ Observatory / API
- Run the Observatory
Start chatevent serve, open the browser UI, and inspect stats, subscriptions, event rows, and raw payloads.
- Register monitors
Create subscriptions for Discourse category/topic, Zulip stream/topic, and Gitea/GitHub repositories; connect platform webhooks or event queues to ChatEvent.
- Review action catalog
ChatEvent treats supported platform actions as first-class entries instead of overloading arbitrary tag values.
- Use API / CLI
Write and query events through HTTP; use chatevent api ... as the CLI counterpart to the REST API.
- Confirm default paths
Runtime state is managed under ChatEnv/ChatArch home as <chatarch-home>/chatevent/; verify with chatevent paths --json.
Current boundary¶
- ChatEvent only captures, normalizes, deduplicates, stores, and observes events.
- It does not execute agents, create tasks, or make routing decisions in the current scope.
- Platform REST APIs are used only for object completion after official events, bounded cursor reconciliation, and acceptance readback; ChatEvent itself exposes a standard REST API for downstream event write, query, and checkpoint consumption.
- Default install/runtime state, the SQLite ledger, and the optional admin-token file live under the
chatevent/directory inside ChatEnv/ChatArch home. - It does not scan whole sites, all messages, complete forum history, or full repository history.
Event semantics¶
source: platform id such aszulip,discourse,gitea, orgithub.target: display/compatibility subscription scope such as stream/topic, category/topic, or repo/org.scope: structured carrier target chain such as repo → pull request or stream → topic.kind/action: business action such asmessage.created,reply.created, orissue.opened.capture_mode: acquisition mechanism such aswebhook,event_queue, orapi_cursor.tags: optional filtering/routing labels; they do not define the event action.
Current demo endpoint¶
The current server demo is exposed at:
- https://event.public.wzhecnu.cn/
- https://event.local.wzhecnu.cn/
Add authentication, signature verification, and supervised service management before treating the demo as production. The service itself binds to loopback and is exposed through nginx.