-
Notifications
You must be signed in to change notification settings - Fork 1
release: v1.8.0 — R2 watchlist cache + E2E coverage #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
1a9aca0
chore: remove .mcp.json MCP server config
leo-mathurin a6f0313
chore(secrets): add SOPS-encrypted environment
leo-mathurin 92fcc73
feat(e2e): add Stremio end-to-end test harness
leo-mathurin 6489176
fix(e2e): address Greptile review findings
leo-mathurin 5064df8
fix(e2e): include all persisted test users in cleanup
leo-mathurin 0843152
test(e2e): run full suite by default
leo-mathurin c51b3e9
feat(cache): move watchlist cache to Cloudflare R2
leo-mathurin 548f452
chore: merge Stremio E2E CI harness
leo-mathurin ff1c0fb
test(e2e): exercise R2 cache with local MinIO
leo-mathurin 5fd0c0a
fix: address Greptile review feedback
leo-mathurin 12f05d8
fix(cache): make cache deletion race-safe
leo-mathurin 674537e
fix(cache): refresh stale R2 manifests
leo-mathurin a277aa6
Merge pull request #43 from leo-mathurin/t3code/stremio-e2e-ci-harness
leo-mathurin cda9c61
Merge pull request #44 from leo-mathurin/t3code/evaluate-free-tier-do…
leo-mathurin cb7af10
fix(backend): externalize S3 client from server bundle
leo-mathurin ce132e1
ci: allow manual pull request validation
leo-mathurin 01b478f
test(e2e): assert cache deletion tombstone
leo-mathurin 89326e6
ci: validate staging branch pushes
leo-mathurin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
This file was deleted.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| creation_rules: | ||
| - path_regex: '(^|/)\.env(\.[A-Za-z0-9_-]+)?\.enc$' | ||
| age: | ||
| - age1skqn0tvghvz8fvu6m5880w72z5p00822kcc3adlagl4fkyu2fu8sg3w83f # mac | ||
| - age1cau5u3xfc0eat67zm5eqnasmrndewy5gyxjy26xflnvmva2m7egsn3pucf # dev-tower |
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| { | ||
| "data": "ENC[AES256_GCM,data:WLea9WPQipmxDWU+N30X9R5cg7gXXwOr4YbqMQTa1ObhjPHzFo3z+MBXvQiJghw1x+qLgVfF8X/QQ7kQIIwooiRRdhTinQUEE2PFxoO9VRrjuOa3+meiC0GyamCOXojdandwK0QhAKuBIVnUC6ckLWnDxAsjMJUSAia4jyfZ3IAfRPZxocwQce38HS3R8odKU6+EU+69nrQeT5bF9WdvfAeEgiY9HzTBsx+W7vKLow9HS4Ae50eHnDlTwMgYvrSZ65/HbxmtS2tFR2Kbtjlp4Pv+OPkIb1WROCTPvI+kElrvBRzmLdutoYSh1TnmfWNoKUSrUArS/xjCLSc98EhZWLvLS7q0Nu4XQFdoCT/yv8gwdCmoExryxYwSg7q2B0wSumBIBVwOaekbI7SQPipE1LiXm4plIox+MdMN6/ZZzVvn7xCR/qtaCfn8Yqvtu7H+ROBx8dQyzW9pEjCCtd9oDFgPKEX+sGvmizviFsKn0PvNnOvw2ZPG/Nzb2niMd4jmJgvcfLZI3Y5Kx+zcRt2Mn1vtmsMseffk6Pq/1hMrUFVXuNd5DnKEnGyDfrHwPhrA2R/zN2LEwyTgeeNT95JPT1STkvLbBqC/Fg2OBX78ak/qK6SmAVxu15qW7OjoQ5J78mcILeHevck+yvfztQ4XOGgv5hU9BpXI7wT//ErD1+yx6oy5zPSi+LhdeKtWHmzuHpTf5hOoj52mHaYh5gP8pHkdPv5Snl1jsr/WuvRVq2mAJmBhkX3lORGHpvBrmo+7TmiskOu7dCJZpA3IcV6ncjkXr/qoXtxv+Mldt3GqQCsbbbdxWrYW/V4=,iv:Ujc90jNL6IVFa4rKVRPQWH3gVpXOfxKwkxbmpCy9F8Y=,tag:RvM8CCBR2ZVa9657yqsIFw==,type:str]", | ||
| "sops": { | ||
| "age": [ | ||
| { | ||
| "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvM2t3MHo1NmY0cDMrUTFw\nSDJFeE9YaGVWZUhkUDZtMVVjNUhIdVRkUkdRCmVSM3poR2xrQmw0Ky9ZVlY5dC9r\nREk4dG5DMUtVZUE0NlFTME80czMxTDQKLS0tIDRua3kwQW94K2JhU1JxRkRnUGN1\nSDJ0aGVqM2pvOGxIUDNHOHhzcFRIZmsKVwtUVOHka3wx5NW87CU3UktLCwsnTYqq\nOiJY+5/8tQVUJk6CoO3M/3MRhVmXEjGnfa7v8T0H4Xa3ySg1OGhzNg==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| "recipient": "age1skqn0tvghvz8fvu6m5880w72z5p00822kcc3adlagl4fkyu2fu8sg3w83f" | ||
| }, | ||
| { | ||
| "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwWmF5NS81TERzcUNVY2NJ\nb0o4RndZREIrMDBES3FtcmtzRk5QSVZDK0dzCnV1NDJlNGtPUFFOcTl5d0hzLzJi\nSVlOT2p6SUZQazJHZldPbTM3VHk0UWcKLS0tIFkvZmpKOHRIOWhMY1c2UWRPRkhC\nL3FtUkNFZkpsTXJnMzQzc2NGWVhBRWsKBZg4S0qVEVZfKvqt2aDttfxw7N7Y7rpy\nGOBA6D1F8qXl2YWrwdhCgnoKryuIqHixpeViR9YCPrqlUWINp12FAQ==\n-----END AGE ENCRYPTED FILE-----\n", | ||
| "recipient": "age1cau5u3xfc0eat67zm5eqnasmrndewy5gyxjy26xflnvmva2m7egsn3pucf" | ||
| } | ||
| ], | ||
| "lastmodified": "2026-08-26T11:21:17Z", | ||
| "mac": "ENC[AES256_GCM,data:r+ilB7Knq7ohVRGataZRsjJsPREUeO8L2SDG6pOI7Njy44wwvl+wS4eSicDxzGrEMi9IIVJJWr72nkib0QU0ea1RwWpK19ACPXp9mY61YJjisq/EX7AO1CB+w/xqEOwzmDrLSK4jMchFegK0PjGThfjevi4G5ptqG0BEkxrEUao=,iv:iKzqaagRrW6RXR7QiIlnNpHPSMbYfYBrca9cme/5x0c=,tag:dd5/Sun8gYdTvo5uxr5SNg==,type:str]", | ||
| "version": "3.13.3" | ||
| } | ||
| } |
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The E2E job replaces the previously pinned Supabase setup action with the mutable
v1tag, allowing an upstream tag change to silently execute different code with access to the checked-out repository and the job's read-only token. Pinning the action to its immutable commit keeps workflow changes reviewable.How this was verified: The pull-request E2E job directly executes
supabase/setup-cli@v1without exposing the separate push-only release credential.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We removed SHA pinning from the CI as it's overkill for what it is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That’s a reasonable tradeoff if SHA pinning isn’t part of this repository’s CI threat model. The concern is specifically that
@v1can change upstream without a reviewed PR, while the action runs with repository access; however, since this is intentional and the job only has the default read-only token, I won’t pursue it further for this release.