Repository navigation
test(interop): a real Loops, both ways, on every PR — and three federation fixes - #2502
Merged
Merged
Conversation
Contributor
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing (14)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
karlitschek
marked this pull request as ready for review
October 7, 2026 07:56
A separate job (.github/workflows/interop-loops.yml) builds Loops v1.0.0-beta.14 with its queue workers and federation switch, behind the same Caddy and job-made CA as the Mastodon and Pixelfed jobs, and makes its test video with ffmpeg. LoopsDeliveryTest (11) and LoopsInboundTest (13) cover follows, videos with caption and poster, likes and unlikes, threaded comments, hashtags, edits, deletes and unfollows; two are skipped where Loops itself does not do the thing (a remote answer to a comment, a profile Update). A failed run prints both sides' logs, queues and the proxy's requests. Runs on every pull request, push to master, weekly and by hand. Assisted-by: ClaudeCode:claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
An Update of a Person copied the actor's own audience, which is none, so it went out naming no recipient. Loops routes its shared inbox by to and cc and dropped every profile change; Mastodon addresses its own actor updates to the public. Assisted-by: ClaudeCode:claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
A reply was delivered to the parent's author but addressed only to the public and our followers. Loops hands what its shared inbox receives to the accounts an activity addresses, so every reply to a Loops video was dropped there. The author now rides in cc, or in to for a direct reply, as Mastodon addresses them. Assisted-by: ClaudeCode:claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
The document select named neither transcoded nor laddered, so every document read back as never looked at. A local video post therefore held its deliveries for the full ten minutes VideoDeliveryHold allows, even for an H.264 MP4 the upload had already marked as needing nothing; Loops saw every video of ours ten minutes late. Assisted-by: ClaudeCode:claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
Assisted-by: ClaudeCode:claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
karlitschek
force-pushed
the
test/interop-loops
branch
from
October 7, 2026 07:59
c299b37 to
e856703
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A real Loops (v1.0.0-beta.14) joins the interop suite as its own job (
.github/workflows/interop-loops.yml), running on every pull request, every push to master, weekly and by hand.Green against the real Loops: run 37587612514.
LoopsDeliveryTestLoopsInboundTestUpdatefor a profile)Covered both ways: follows, videos with caption and poster, likes and unlikes, comments threaded under the video, hashtags, edits, deletes and unfollows. A failed run prints both sides' logs and queues, every request through the proxy, and what Loops' own validators make of our last activities.
App defects found and fixed here
Updatewas not addressed to the public and the followers, so Loops dropped profile changes.The fourth defect the suite found — posts going out with no
url, which broke likes and comments on our videos on Loops — was merged separately as #2503.Full PHPUnit, psalm, php-cs-fixer, eslint, stylelint, vue-tsc and vitest green locally.
Written with the help of Claude Code (Claude Opus 5.5); every commit carries an
Assisted-bytrailer.🤖 Generated with Claude Code
Summary by CodeRabbit
Bug Fixes
Tests