- sync(): std.json walk of rooms.join.*.timeline (old string-window scraper
misattributed senders across events); Event gains ts
- startup backlog: peer messages from last 30min forwarded to agent as
context (reply suppressed); failures logged, never fatal (systemd
Restart=on-failure would otherwise re-forward every 3s)
- messages to agent prefixed [matrix HH:MMZ] with UTC event timestamp
- sendText: jsonEscape covers control chars (\u00XX), markdown -> HTML
formatted_body (bold/italic/code/fences) for Element rendering
- no startup banner in room; harness now runs as systemd user service
matrix-harness (unit + .matrix-env, untracked)
- src/matrix.zig: minimal Matrix client (conduwuit @ matrix.chaosmith.systems)
via curl subprocess transport (native TLS swap later): login, createRoom
(trusted_private_chat, unencrypted — no olm), sendText, sync polling with
window-scan event extraction reusing letta.jsonStr
- src/matrix_harness.zig: standalone entrypoint (independent of tray daemon):
login -> DM with peer -> sync loop -> peer messages routed through letta
CLI (chaos-prime) -> replies sent back to the room
- build.zig: second exe matrix_harness; use_llvm fix promoted into build.zig
for both executables (native lld vs GCC16 .sframe relocations)
- calling/Element Call (livekit SFU already deployed on ass-host) layers on
top of this harness next
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>