Skip to content

1.160.0 - #65

Open
tulir wants to merge 45 commits into
upstream-1.160.0from
beeper-1.160.0
Open

1.160.0#65
tulir wants to merge 45 commits into
upstream-1.160.0from
beeper-1.160.0

Conversation

@tulir

@tulir tulir commented Sep 4, 2026

Copy link
Copy Markdown
Member

No description provided.

Fizzadar and others added 30 commits September 4, 2026 19:01
Annoying! Will lave that to upstream and we'll get updates as we rebase.
Signed-off-by: Sumner Evans <sumner.evans@automattic.com>
@indent

indent Bot commented Sep 4, 2026

Copy link
Copy Markdown
PR Summary

Rebases Beeper's fork onto upstream Synapse v1.160.0 (beeper-1.160.0upstream-1.160.0). The bulk is long-standing Beeper customization carried forward, with the newer account-data compare-and-swap feature (PLAT-38547) on top.

  • Account data: compare-and-swap via com.beeper.expect_revision_id (409 COM.BEEPER.REVISION_ID_MISMATCH); strip bridge-bot users from ignored lists; new com.beeper.inbox inbox-state and batch-archive endpoints.
  • Push: Beeper base rules (suppress auto-accept invites/edits/send-status/power-levels; reactions-to-self underride in rooms <20), per-user unread counting, always-high-priority pushes with com.beeper.* payload fields, optional beeper_user_notification_counts table + aggregation loop.
  • Sync/events: beeper_previews room previews, unsigned["com.beeper.hs.order"] stream ordering, bundled aggregations disabled.
  • Auth: JWT UI-auth checker (org.matrix.login.jwt); allow username-availability checks when registration is disabled.
  • Ops/infra: room shutdown/delete/purge Prometheus histograms, 1h last-seen granularity, SYNAPSE_DISABLE_CLIENT_IP_STORAGE, task-scheduler throttle/limit, run delete-stale-devices on start, http-antispam module, Beeper CI/release scripts, README, email branding.

Issues

2 potential issues found:

  • In _add_account_data_for_user, content_json is JSON-encoded before bridge-bot entries are stripped from content["ignored_users"], so the stored and client-synced m.ignored_user_list still contains the bots even though the denormalized ignored_users table is filtered. Move the json_encoder.encode(content) call to after the filtering block so the stored blob matches the table.
  • The new test-sytest job sets env WOKRERS: 1 (typo) instead of WORKERS: 1, so sytest runs in monolith mode and the intended worker-mode coverage is silently skipped. Rename to WORKERS.

Select any checkbox above to have Indent auto-fix the issue

CI Checks

All CI checks passed on f3daa8b.

Bulk Actions
  • Autofix all issues

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

⚠️ Schema diff generation failed. See job logs for details.

content: JsonDict,
expected_revision_id: str | None = None,
) -> None:
content_json = json_encoder.encode(content)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Failing Functional · Ignored bridge-bot filtering never reaches the stored account data blob

content_json is encoded here, before the bridge-bot filtering below rewrites content["ignored_users"]. The upsert at L896-902 stores this pre-filter content_json, so the account_data blob synced to clients via /sync still lists the bridge bots as ignored. Only the denormalized ignored_users table (built from the mutated content at L904+) is filtered, which is why test_ignoring_bot_users (asserting via store.ignored_users()) still passes. Result: the client sees bots as ignored while the server does not actually ignore them, defeating the intent of commit 0e0421a for the client-visible blob. Fix: move this encode to just before the _upsert_account_data_txn call, after the filtering block.

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.

6 participants