Skip to content

Complete groupme bridge - #4

Open
Fizzadar wants to merge 14 commits into
mainfrom
nick/complete-groupme-bridge
Open

Fizzadar wants to merge 14 commits into
mainfrom
nick/complete-groupme-bridge

Conversation

@Fizzadar

@Fizzadar Fizzadar commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@indent

indent Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Issues

All clear! No issues remaining. 🎉

5 issues already resolved
  • The poll-vote row ("poll-vote:$eventid") is now dated just before the poll, but if the poll is the portal's oldest bridged message, backward backfill anchors on it and sends before_id="poll-vote:$event" to GroupMe. That request fails, so older history can't be fetched. (fixed by commit 6f80dbb)
    Found by Indent Review Agent at c9798d9
  • Catch-up now runs only through ChatResync.CheckNeedsBackfillFunc, which bridgev2 runs only when Backfill.Enabled is true (default false). Upgraded deployments silently lose messages sent while the bridge was down or the websocket reconnecting; the new commit only adds a startup warning.
    Found by Indent Review Agent at c9798d9
  • catchUp runs inside the user channel's onSubscribed callback, so live pushes stay held while it pages groups and DMs and fetches up to 100 messages per chat, sequentially, on every startup and reconnect. It also queues a ChatResync with GetChatInfo per chat; each DM re-pages the full IndexAllChats list, with no backoff. (fixed by commit fa02698)
    Found by Indent Review Agent at c9798d9
  • Connected state is reported before the push socket connects: runSession sends StateConnected right after the non-blocking SubscribeToUser, and Listen retries forever. With the REST poller gone, a persistent Faye failure leaves the login showing CONNECTED with no messages bridged and no error, and catchUp never runs. (fixed by commit fa02698)
    Found by Indent Review Agent
  • CheckNeedsBackfillFunc still compares the latest bridged ID against a raw "poll-vote:$..." row. If the poll's row is gone and nothing newer was bridged, compareMessageIDs returns -1 (longer ID counts as larger), so catch-up is skipped on every reconnect until a native push arrives. (fixed by commit 5ecd0a5)
    Found by Indent Review Agent

CI Checks

All CI checks passed on 5ecd0a5.

Review agents

Select any unchecked box below to run or rerun that agent.

Passed (1)
  • Indent Review Agent · The poll-vote ID fix is complete; no remaining issues found in the PR.
Full results

Indent Review Agent

  • Summary: The poll-vote ID fix is complete; no remaining issues found in the PR.
  • Last ran on commit: 5ecd0a51
  • Latest result
    {
      "summary": "The poll-vote ID fix is complete; no remaining issues found in the PR.",
      "findings": []
    }

Switch to file-based goimports/vet hooks so thirdparty/ can be excluded;
the repo-wide variants vet each nested go.mod standalone and reformat
patched upstream code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread pkg/connector/handlepoll.go Outdated
Comment thread pkg/connector/sync.go Outdated
Comment thread pkg/connector/poll.go Outdated
Fizzadar and others added 3 commits October 9, 2026 17:00
Catch-up is queued on every push user-channel (re)subscription, with live
pushes held until it is queued. Removes the poller and network.poll config,
decodes like.create/like.delete and favorite snapshots, and subscribes to all
discovered group and DM channels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Connected is now sent once the user channel subscribes and catch-up is queued,
with a transient disconnect on every push connection failure. Reaction refresh
runs after held pushes are released, and DM resyncs reuse the catch-up listing
instead of paging the DM list again per chat.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vote rows are dated just before their poll, so one can be the oldest portal
message and become the backward backfill anchor. Resolve it to the following
native message instead of sending its Matrix-derived ID to GroupMe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread pkg/connector/sync.go
Generalise the backfill anchor lookup to step over vote rows in either
direction, and use it for the catch-up check so a vote left as the newest
row (if its poll is gone) can't suppress catch-up. Replies and reactions
targeting a vote are rejected rather than sent to GroupMe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant