Repository navigation
Deploy the staging catalog and submissions without announcing them to open tabs - #868
Conversation
The staging catalog sync and the submissions push pass --no-realm-events to realm push and file write when the installed boxel-cli lists it, so a deploy indexes the new catalog without resetting open tabs. An older CLI keeps announcing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Staging Submissions PreviewThis PR's content is pushed to the staging submissions realm: https://realms-staging.stack.cards/submissions/ Changed folders:
Updated at 2026-10-22 15:04:58 UTC for commit |
habdelra
left a comment
There was a problem hiding this comment.
[Claude Code 🤖] This review covered four things: how the flag detection behaves under Actions' bash -e -o pipefail (empty arrays, and the herestring over the captured --help output), whether the help grep can match falsely, whether every boxel call in these workflows that writes to a realm passes the flag, and whether the description could trip Merges after: parsing. It did not review the CLI or realm-server halves of the flag.
No blocking issues. There is one stale justification comment, explained in the inline thread.
- The comment on the staging push step still says every write notifies every open session and floods Matrix. See the thread on
sync-to-workspace.yml. - Description nit: in "A CLI without the flag keeps announcing, as it does today.", "today" is temporal. "A CLI without the flag announces every write." says the same thing in evergreen form.
| # Indexed without announcing it to the realm's open tabs (see the | ||
| # .boxelignore step). |
There was a problem hiding this comment.
[Claude Code 🤖] Once this flag is in effect, the comment on this step ("Each file the realm writes reindexes and notifies every open session, so re-sending the whole catalog floods the realm and Matrix.") overstates. The realm holds back only the Matrix broadcast, so a silent push still reindexes every file it sends but notifies no one. Please qualify it, for example:
# Each file the realm writes reindexes, and a push without
# --no-realm-events also notifies every open session, so re-sending the
# whole catalog floods the realm (and Matrix).
Regression (this change makes the comment overstate). Non-blocking.
There was a problem hiding this comment.
[Claude Code 🤖] Fixed in 7de754d. The comment now says each file reindexes, and only a push without --no-realm-events notifies open sessions. The description's 'as it does today' is reworded too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
[Claude Code 🤖] Reopening. This PR doesn't depend on the shared realm event room that cardstack/boxel#6906 proposed, which was closed under ADR 011 (cardstack/boxel#6921). It only makes system-initiated indexing (public-realm deploys and syncs, the post-deploy boxel-ui reindex, Grafana reindexes, the OpenRouter sync) run without realm events, so open tabs aren't reset by indexing their users didn't ask for. That holds whichever way public-realm events are delivered, and it cuts the load on Synapse under any of the alternatives. Hassan wants it to land, and it was already approved. Reducing fan-out for public realms is being redesigned separately. |
Important
Merge order: #867 has merged; this PR targets
main.realm push --no-realm-events) and feat: index public-realm deploys and system reindexes without realm events boxel#6914 (file write --no-realm-events). Each step checks the CLI's--helpfirst, so this is safe to merge in any order relative to them. It takes effect once alatestboxel-cli with the flags is published (boxel-cli publishes on every boxelmainmerge) and the environment's realm server honorsX-Boxel-Realm-Events: none; an older realm server ignores the header and the push still announces. NoMerges after:line is needed, because nothing here breaks on an older boxel.What this changes
A catalog deploy is system-initiated: no one with the catalog open asked for it. So the realm should index the new content without announcing it, and open tabs pick it up on their next load instead of resetting their loader mid-session.
sync-to-workspace.yml): the.boxelignorewrite and therealm pushpass--no-realm-eventswhen the installed boxel-cli lists it.push-to-submissions.yml): the same for the per-PR push to/submissions/.A CLI without the flag announces every write.
Test plan
main(staging runs boxelmain): the push log shows the flag in effect, the catalog indexes the new files, and the catalog's realm event room gets no events from the push.🤖 Generated with Claude Code