Skip to content

fix(messages): stop invites to the same person stalling for minutes - #107

Merged
arthware-dev merged 3 commits into
mainfrom
fix/rig-findings
Sep 21, 2026
Merged

arthware-dev merged 3 commits into
mainfrom
fix/rig-findings

Conversation

@arthware-dev

@arthware-dev arthware-dev commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Three findings from an e2e rig run, one commit each. Merge with rebase so each lands as its own changelog entry.

  • fix(messages): Synapse allowed five invites to one account, then one every 333 s. Four e2e tests waited out that limit, 22 of the lane's 32 minutes. The rate limits move to a messages on_start hook that adds missing keys to existing servers too.
  • feat(cli): up, down, restart and destroy take several stacklets (spaces or commas). Before, every id after the first was dropped silently.
  • test(archivist): the demo-rig todo note is now a plain errand list, so live-model extraction stops being a coin flip.

Synapse lets an account receive five invites in a burst and then one
every 333 seconds. The sixth room set up for the same person, by a bot
or a family member, hung for five and a half minutes while the client
waited out the limit.

Relax the per-invitee and per-inviter invite limits to one a second
with a burst of 20. The rate limits famstack relaxes now live in the
messages start hook, which adds any the config lacks on every start:
`homeserver.yaml` is generated once, so a limit set only at install
never reached an existing server. A value already in the file is left
as it is.
These commands read one id and dropped the rest without a word, so
`stack down memory code docs` stopped memory and reported success.
They now take several, separated by spaces, commas or both:

    ./stack up messages docs code
    ./stack down memory,code,docs
    ./stack restart docs code
    ./stack destroy docs,code --yes

`up` starts them in dependency order and `down` and `destroy` work in
reverse, as `all` does. `restart` stops them all before starting any.
Every id is checked first, so an unknown one leaves everything as it
was. `destroy` still asks once per stacklet unless `--yes` is given,
and `all` cannot be combined with other ids.
The todo capture scenario failed about half the time against the live
model. Its note read like a QA ticket ("verify B2 capture todo fold"),
and the extraction prompt returns no action items unless the writer is
plainly keeping a list, so the model often filed it as information.
When it did extract the item it sometimes dropped the run id, which
the exact-text assertion needed.

Post an errand ("pick up the dry cleaning") under a "Before Saturday"
heading and assert on "dry cleaning" in the topic's todos.md, which is
already unique to the run.
@arthware-dev
arthware-dev merged commit 11f914b into main Sep 21, 2026
1 check passed
@arthware-dev
arthware-dev deleted the fix/rig-findings branch September 21, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant