Skip to content

Releases: mtclab/agent-room

agent-room 1.0.0-rc.6

agent-room 1.0.0-rc.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Sep 02:32
36bc011

Added

  • Edits are understood. When somebody fixes a message (m.replace), your agent
    corrects that line in its transcript in place and does nothing else: a
    corrected question is not a new one, so it is not answered again, it does not
    count as somebody speaking, and the * corrected text fallback never becomes
    history. Only the person who wrote a line can edit it, and an edit of a line
    that has already rolled out of the live transcript is dropped.

  • This changelog. The GitHub Release body is now the version's section from
    here instead of a list of pull-request titles.

  • docs/ROADMAP.md: what 1.0.0 means, what each remaining release candidate has
    to prove, and what waits until after it.

  • doctor rows: state_dir (there, 0700, and writable - proven by writing a
    probe file and removing it), persona (readable and not empty), and
    judge (the /models question asked of judge_base_url / judge_model
    when you configure one, with the judge's own key). A judge that is down is a
    silence of its own: the agent still answers when addressed and never speaks
    unprompted.

  • doctor WARN rows, which do not change the exit code: tls when
    tls.verify: false leaves the homeserver unauthenticated, and perms when
    AGENT_ROOM_ALLOW_LOOSE_PERMS is in force.

  • run and mcp log one WARN at start-up when
    AGENT_ROOM_ALLOW_LOOSE_PERMS=1 actually waived the 0600 rule, naming the
    files it let through. Silent when the variable is set but every secret is
    0600 anyway.

  • An invitation that arrives while the agent is running is joined. Until
    now the only way into a new room was to add it to rooms: and restart, which
    made an agent something only its operator could put anywhere. Now an
    invitation is taken up when it comes from somebody the agent already shares a
    room with - they can talk to it where it is, so they can ask it somewhere
    else - or from a user id in the new policy.accept_invites_from (default
    [], and the way the FIRST invitation works, before there is a shared room).
    Anybody else's invitation is written to the log and left exactly where it is:
    not joined, and not rejected either, because that is a question for you. A
    room joined this way gets its own transcript, ledger and unprompted loop like
    a configured one, and lasts until the process stops - put it in rooms: to
    keep it.

Changed

  • Design and plan documents no longer carry questions that were answered in
    September: the repository is public with CI, the room is encrypted, seven MCP
    tools, a typed name reaches other agents (rc.3), and the judge timeout exists
    (rc.3).
  • A failed /sync now backs off exponentially with jitter - about 2 s, doubling
    to a 5 minute ceiling - and says so ONCE: one warning when the homeserver
    becomes unreachable and one line when it answers again, instead of a warning
    every five seconds for as long as it was down. The back-off is interruptible,
    so a stop signal during one is still honoured at once.
  • The ledger is written once per turn or every couple of seconds, not fsynced
    on every event the room contains. Anything that spends a budget or makes a
    promise still writes immediately; a crash between flushes costs at most a
    couple of seconds of "I have seen this", which the next start rediscovers as
    backlog and never answers (docs/DESIGN.md, "Restart semantics").

Fixed

  • Your agent no longer treats the next thing anybody says after one of its
    uninvited lines as a reply to it. The follow-up window (rc.3) now only opens
    after an ANSWER of the agent's, never after an impulse, an open loop's
    follow-up or an inner thought. On rc.5 an agent that had just said "the render
    finished" answered "back at my desk" as if it were being asked, and a second
    waiting impulse was never spoken.

  • Only what somebody SAID reaches your agent. An image, a file, an audio clip, a
    video or a location is no longer a line of conversation: until now its
    filename or caption arrived as if it had been typed, and one addressed to the
    agent was answered as a question. Each skipped event says why at DEBUG
    (RUST_LOG=agent_room=debug).

  • A deleted message is forgotten. On a redaction, every record of that event
    leaves the live transcript and any follow-up your agent was holding about it
    is dropped, so it is no longer fed back to the brain as history until the file
    happens to roll. Transcripts that have already rolled into <room>.jsonl.N
    are not rewritten - your agent never reads them, and deleting them costs it
    nothing.

  • A room alias (#room:server) now works in run and mcp. init and
    doctor had accepted one since the start and the connector then refused the
    config they wrote; agent-room mcp joined by alias and answered every later
    call with a 404, because no Matrix endpoint but the join takes an alias. An
    alias is now resolved to its room id once, at start-up, and the id is used
    everywhere after that; an alias that names no room stops the process with one
    line and exit 2. The per-room files under state_dir are still named after
    what you wrote in rooms:, so a room configured by id keeps the transcript
    and ledger it already has - and agent-room impulse --room keeps taking the
    same string the config does.

  • agent-room mcp no longer posts plaintext into an encrypted room. The
    live-session server is a plain Client-Server client with no crypto store, so
    a message it posted into an encrypted room was not refused by anything: it
    arrived readable in a room whose whole point is that it is not. It now checks
    each room when it starts and refuses to serve at all if one is encrypted,
    naming the room and saying to use agent-room run for it (exit 2);
    agent-room doctor fails that room's row on a session config with the same
    reason, and still passes it for a connector, which encrypts.

  • examples/docker/compose.yaml: the commented-out pull line named rc.3; it now
    names the current release.

  • examples/agent-room.service carries RestartPreventExitStatus=3: a wedged
    device is not cured by restarting, and the unit used to retry it every ten
    seconds for ever. examples/docker/README.md says what to do under compose,
    which has no per-exit-code policy.

agent-room 1.0.0-rc.5

agent-room 1.0.0-rc.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Sep 23:56
5f761c7

What's Changed

  • A question to the room is an invitation: answer without the judge (1.0.0-rc.5) by @ollikurki in #9

Full Changelog: v1.0.0-rc.4...v1.0.0-rc.5

agent-room 1.0.0-rc.4

agent-room 1.0.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Sep 22:18
b4eb8fe

What's Changed

  • Gates: knob coverage (every config field turned by a test) and client-realism harness; tls.verify/ca_file fix by @ollikurki in #7
  • Conversation: scored judge, bot_to_bot conversational, typed names between agents, small-room back-off (1.0.0-rc.4) by @ollikurki in #8

Full Changelog: v1.0.0-rc.3...v1.0.0-rc.4

agent-room 1.0.0-rc.3

agent-room 1.0.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Sep 18:47
15842aa

What's Changed

  • doctor: send the configured API key when checking the brain by @Cyrus7 in #4
  • Addressing: a typed name is an address; somebody else's name is not my line by @ollikurki in #5
  • Addressing part 2: follow-up window, warm on the human line, pre-score, judge timeout (1.0.0-rc.3) by @ollikurki in #6

New Contributors

  • @Cyrus7 made their first contribution in #4

Full Changelog: v1.0.0-rc.2...v1.0.0-rc.3

agent-room 1.0.0-rc.2

agent-room 1.0.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Sep 21:22
eabe4b1

What's Changed

  • image: CA bundle in the scratch image (1.0.0-rc.2) by @ollikurki in #3

Full Changelog: v1.0.0-rc.1...v1.0.0-rc.2

agent-room 1.0.0-rc.1

agent-room 1.0.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Sep 19:59
40a5de5

What's Changed

  • examples/docker: scratch image and compose service by @ollikurki in #1
  • CI: gate on PR/push, release on tag (tarballs, attestations, ghcr multi-arch image) by @ollikurki in #2

New Contributors

Full Changelog: https://github.com/mtclab/agent-room/commits/v1.0.0-rc.1