Skip to content

Conversation

@IanCal
Copy link
Contributor

@IanCal IanCal commented Jan 27, 2026

Currently we require that every realm has its own user added to matrix, and every realm-user pair has a unique room.

Instead, we can have a single server user, and a single dm room for events between the server and user.

This means that creating a new realm requires just creating a new realm, not a realm and user and room.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7cd147b2c3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +76 to +80
'JOIN realm_user_permissions rup',
'ON rup.username = sr.matrix_user_id',
'WHERE rup.realm_url =',
param(realmURL),
'AND (rup.read = true OR rup.write = true)',

Choose a reason for hiding this comment

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

P2 Badge Include public permissions when selecting session rooms

This query now only returns session rooms for users that have explicit realm_user_permissions rows (it joins on rup.username = sr.matrix_user_id). For realms that are world‑readable via the '*' permission row, users who only have public access will not match this join, so fetchAllSessionRooms returns no rooms for them. Because NodeAdapter.broadcastRealmEvent relies on this mapping, those public users will stop receiving realm events (e.g. incremental index invalidations) even though they can read the realm. This regression happens specifically for realms that are readable via '*' but have no per‑user permission rows.

Useful? React with 👍 / 👎.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes. Only specifically mentioned users with read or write access are now going to be notified of updates. This is an expected and OK change. Pinging all users if we change catalog could be a huge issue, and should be solved in a different way so this drop of functionality is expected.

@github-actions
Copy link

Preview deployments

@IanCal IanCal marked this pull request as draft January 27, 2026 15:08
@github-actions
Copy link

github-actions bot commented Jan 27, 2026

Host Test Results

    1 files  ±  0    1 suites  ±0   1h 11m 18s ⏱️ - 35m 6s
1 461 tests  - 488  825 ✅  - 1 107  12 💤  - 5    3 ❌ +  3  621 🔥 +621 
1 473 runs   - 491  216 ✅  - 1 731  12 💤  - 5  624 ❌ +624  621 🔥 +621 

For more details on these failures and errors, see this check.

Results for commit e811ac5. ± Comparison against base commit a377c00.

This pull request removes 499 and adds 11 tests. Note that renamed tests count towards both.
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "Details" button, the listing details card opens up onto the stack
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "Preview" button, the first example card opens up onto the stack
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "Remix" button, current realm (particularly catalog realm) is never displayed in realm options
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "Remix" button, the ai room is initiated, and prompt is given correctly
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "Use Skills" button, the skills is attached to the skill menu
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "carousel" area, the first example card opens up onto the stack
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: after clicking "info-section" area, the listing details card opens up onto the stack
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: carousel arrows only when multiple images exist and works when triggered
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: carousel dots appear only when multiple images exist and works when triggered
Chrome ‑ Acceptance | Catalog | catalog app tests > catalog index > listing fitted: no arrows and dots appear when one or less image exist
…
Chrome ‑ Acceptance | host mode tests: clicking on a stack card does not close it
Chrome ‑ Acceptance | host mode tests: clicking the stack backdrop closes the top card
Chrome ‑ Acceptance | host mode tests: stack does not exist when there are no stacked cards
Chrome ‑ Global error: Uncaught Error: status: 404 -           Not Found. {"errors":[{"message":"Could not find http://test-realm/test/FriendWithCSS/friend-a","status":404,"title":"Not Found","id":"http://test-realm/test/FriendWithCSS/friend-a","isCardError":true,"additionalErrors":null,"stack":"Error: Could not find http://test-realm/test/FriendWithCSS/friend-a\n    at notFound (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29489:28)\n    at Realm.removeCard (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:40828:62)\n    at async Router.handle (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:42827:14)\n    at async maybeHandle (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:39538:12)\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:45277:24\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29857:22\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29857:22\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29857:22\n    at async instance (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29868:34)\n    at async withRetries (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:45439:14)\n    at async fetch (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:45266:20)\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29860:22\n    at async http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js:620128:20\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29857:22\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:26772:20\n    at async http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29857:22\n    at async NetworkService.instance (http://localhost:7357/assets/chunk.1b476f2ed776cbaec735.js:29868:34)\n    at async CardService.fetchJSON (http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js:609232:20)\n    at async StoreService.delete (http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js:617805:5)\n    at async OperatorModeStateService.deleteCard (http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js:613798:5)\n    at async http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js:587203:9\n    at async InteractSubmode.withTestWaiters (http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js:587212:20)","realm":"http://test-realm/test/"}]} at http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js, line 156670  While executing test: Integration | operator-mode | basics > card with an error that has a last known good state: it has the ability to delete the card that has an error 
Chrome ‑ Global error: Uncaught [object Object] at http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js, line 156670  While executing test: Acceptance | Code patches tests: loader reset happens when restoring patched executable files 
Chrome ‑ Global error: Uncaught [object Object] at http://localhost:7357/assets/chunk.74c7bb8173402ded2c3a.js, line 156670  While executing test: Acceptance | code submode | editor tests: unsaved changes made in monaco editor are saved when opening a different file 
Chrome ‑ Integration | search data resource: live search updates when realm changes
Chrome ‑ Integration | search data resource: returns correct meta with pagination
Chrome ‑ Integration | search data resource: returns raw card resources with asData
Chrome ‑ Integration | search data resource: returns raw file-meta resources with asData
…

♻️ This comment has been updated with latest results.

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