Background
JavaClaw currently has no explicit session/conversation abstraction. The agent
handles messages per channel (WebSocket chat, Telegram, Discord), identity and
context come from workspace/AGENT.md + workspace/INFO.md + workspace/context/,
and scheduled work runs as JobRunr tasks. There is no per-conversation transcript
object and no isolation between channels, or between scheduled work and live chat.
Current state (from repo)
- No
Session/transcript type; conversation handling is per-channel.
- Context is workspace-file based (
AGENT.md, INFO.md, context/) — global, not per-session.
- Scheduling via JobRunr;
jobrunr.background-job-server.worker-count defaults to 1.
Goal
A Session object with its own id, channel binding, and transcript; N sessions
running in parallel; serialized turns within a session; correct routing and
context scoping.
Acceptance criteria
Background
JavaClaw currently has no explicit session/conversation abstraction. The agent
handles messages per channel (WebSocket chat, Telegram, Discord), identity and
context come from
workspace/AGENT.md+workspace/INFO.md+workspace/context/,and scheduled work runs as JobRunr tasks. There is no per-conversation transcript
object and no isolation between channels, or between scheduled work and live chat.
Current state (from repo)
Session/transcript type; conversation handling is per-channel.AGENT.md,INFO.md,context/) — global, not per-session.jobrunr.background-job-server.worker-countdefaults to1.Goal
A
Sessionobject with its own id, channel binding, and transcript; N sessionsrunning in parallel; serialized turns within a session; correct routing and
context scoping.
Acceptance criteria
Sessiontype + persistence (reuse H2, or transcript-as-Markdown underworkspace/consistent with the existing file-based model). Fields: id, channelKey, transcript, state, timestamps.channelKey(e.g.telegram:<chatId>,discord:<userId>,chat:<wsSession>).worker-countimplications.AGENT.md/INFO.md/context/load per session, and which context is private vs. shared if a shared/group channel is ever added.