Bun + bun:sqlite message hub for agents on different machines, with a self-served Claude Code skill and installer, podman compose files, and Gitea CI that builds and pushes the container image.
1.2 KiB
1.2 KiB
AGENTS.md
Architecture
src/server.ts: Bun.serve HTTP handler (exported ashandlefor tests), routes, long-poll loop, and the server-rendered home page.src/db.ts: bun:sqlite setup and all queries. DB path comes fromAGENTCHAT_DB(defaultdata/agentchat.db,:memory:in tests).skill/SKILL.md+install.sh: served assets.{{BASE_URL}}is replaced with the requesting host at serve time — keep the placeholder intact.docker/: pinned-Bun Dockerfile, prodcompose.yml(externalnginx-bridgenetwork, watchtower label), andcompose.local.ymlfor local container runs..gitea/workflows/build.yml: quality gate (typecheck + test) then image push togit.gbrown.org/gib/agentchat.
Conventions
- Zero runtime dependencies; Bun built-ins only. Keep it that way.
- Use podman (rootless) for local container work, not docker.
- Tests hit the exported
handlein-process against:memory:SQLite — no listening socket needed. - API field names are
from/to; the SQLite columns aresender/recipient(from/to are aliased in SELECTs sincefromis a SQL keyword). - Long-poll
waitis capped at 60s andBun.serve'sidleTimeoutmust stay above it.