Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
74308e4
build(android): enforce verified dependency state
RXWatcher Jul 27, 2026
3937926
build(android): pin native playback provenance
RXWatcher Jul 27, 2026
c8a08e1
docs(android): map PR 108 supply-chain split
RXWatcher Jul 27, 2026
e4ec588
build(android): verify release tool dependencies
RXWatcher Jul 27, 2026
19bf0dd
docs(android): correct slice A traceability
RXWatcher Jul 27, 2026
f90abc8
build(android): verify CI-injected dependencies
RXWatcher Jul 27, 2026
801dcba
build(android): verify Android Guava CI metadata
RXWatcher Jul 27, 2026
00affac
build(android): verify shared-test CI metadata
RXWatcher Jul 27, 2026
0dea616
build(android): verify coroutines BOM metadata
RXWatcher Jul 27, 2026
5a34a95
build(android): verify KSP Guava parent metadata
RXWatcher Jul 27, 2026
4248364
fix(network): centralize authenticated origin policy
RXWatcher Jul 27, 2026
e8c030f
fix(network): keep credentials on the silo origin
RXWatcher Jul 27, 2026
ccb8462
fix(auth): require consent before cleartext login
RXWatcher Jul 27, 2026
07eb795
fix(reader): sanitize epub with parsed allowlist
RXWatcher Jul 23, 2026
cb1d8a8
fix(reader): validate svg paint references
RXWatcher Jul 23, 2026
003a7c7
fix(reader): bound remote and archive content
RXWatcher Jul 23, 2026
7acfebb
fix(reader): isolate epub resources in webview
RXWatcher Jul 23, 2026
8887716
fix(reader): remount webview when source changes
RXWatcher Jul 23, 2026
aa7b837
fix(android): keep hardened epub paths compatible with API 24
RXWatcher Jul 23, 2026
4e1c6be
build(android): resolve slice B dependency state
RXWatcher Jul 27, 2026
25a0acb
docs(android): map PR 108 security split
RXWatcher Jul 27, 2026
aee8aa8
fix(android): close auth and EPUB review gaps
RXWatcher Jul 27, 2026
51d6276
docs(android): record security review corrections
RXWatcher Jul 27, 2026
e097ddd
fix(android): gate final cleartext credential destinations
RXWatcher Jul 27, 2026
90971b4
fix(android): gate cleartext media redirects
RXWatcher Jul 27, 2026
24b20aa
docs(android): restack slice B traceability
RXWatcher Jul 27, 2026
06a775a
docs(android): advance slice B base trace
RXWatcher Jul 27, 2026
ace3386
docs(android): plan PR 108 Room and sync slice
RXWatcher Jul 27, 2026
4fb21b8
feat(android): migrate Room downloads to schema v8
RXWatcher Jul 27, 2026
e5991a5
fix(android): scope and purge identity storage safely
RXWatcher Jul 27, 2026
51d90f9
fix(android): preserve scoped outbox ordering
RXWatcher Jul 27, 2026
0767ca8
docs(android): map PR 108 Room and sync slice
RXWatcher Jul 27, 2026
de32548
fix(android): close Room and identity cleanup races
RXWatcher Jul 27, 2026
c75c86d
fix(android): await worker and serialize identity purge
RXWatcher Jul 27, 2026
387f3ce
fix(android): keep JSON purge on lexical server entries
RXWatcher Jul 27, 2026
93c0de3
docs(android): plan PR 108 player foundation slice
RXWatcher Jul 27, 2026
072c61a
perf(tv): isolate playback clock recomposition
RXWatcher Jul 22, 2026
676c6b8
perf(tv): make playback exit non-blocking
RXWatcher Jul 22, 2026
d44a4f3
fix(tv): keep remote seeks on live clock
RXWatcher Jul 22, 2026
ec0f0dd
perf(android): isolate mobile playback clock
RXWatcher Jul 22, 2026
63c5db6
perf(android): make player teardown lifecycle safe
RXWatcher Jul 22, 2026
8ae2a4b
fix(android): preserve playback across recreation
RXWatcher Jul 22, 2026
5ca6a48
fix(android): keep playback mounted across recreation
RXWatcher Jul 22, 2026
cec1f7e
fix(android): bind final playback writes to identity
RXWatcher Jul 23, 2026
7d401ac
fix(tv): preserve duration outside presentation state
RXWatcher Jul 23, 2026
7b481d3
fix(tv): close player performance review gaps
RXWatcher Jul 27, 2026
a1d9e49
fix(player): stop a session whose start finished after the user left
RXWatcher Jul 25, 2026
c888efe
fix(player): count time spent inside failed loads against the retry w…
RXWatcher Jul 25, 2026
c2a63d5
fix(player): keep failed final-position writes, and stop Up Next at exit
RXWatcher Jul 25, 2026
78015de
fix(player): authenticate custom pip actions
RXWatcher Jul 23, 2026
e3e3b04
fix(player): keep lifecycle foundation independent of subtitle public…
RXWatcher Jul 27, 2026
530100c
docs(android): map slice D to PR 108 sources
RXWatcher Jul 27, 2026
5c4c861
fix(player): reject starts that finish after exit
RXWatcher Jul 27, 2026
2e9ad5f
fix(player): serialize external start ownership
RXWatcher Jul 27, 2026
55ba027
docs(android): record slice D review and verification
RXWatcher Jul 27, 2026
dfa9957
docs(android): plan PR 108 transactional subtitle slice
RXWatcher Jul 27, 2026
e1f7730
feat(subtitles): add typed transition identities
RXWatcher Jul 27, 2026
fbb001f
feat(player): stage subtitle replans transactionally
RXWatcher Jul 27, 2026
5096cb7
feat(subtitles): resolve mounted tracks by typed identity
RXWatcher Jul 27, 2026
74907f1
feat(player): integrate transactional subtitle adapters
RXWatcher Jul 27, 2026
23df27e
feat(subtitles): mount PGS and recycle libass state
RXWatcher Jul 27, 2026
f7f9964
feat(subtitles): scope sync and clamp safe areas
RXWatcher Jul 27, 2026
2cb70a4
fix(subtitles): bind durable selection writes
RXWatcher Jul 27, 2026
789e582
fix(subtitles): acknowledge durable selection writes
RXWatcher Jul 27, 2026
0fdfcc2
fix(subtitles): retain write state through abandonment
RXWatcher Jul 27, 2026
5bda350
docs(android): record slice E review and verification
RXWatcher Jul 27, 2026
6a5557d
test(android): stabilize subtitle publication CI
RXWatcher Jul 27, 2026
8b0131b
test(android): prove publication timeout idempotency
RXWatcher Jul 27, 2026
9ceb317
test(android): own publication cleanup in integration scopes
RXWatcher Jul 27, 2026
4b947bd
docs(android): design PR 108 Watch Together slice
RXWatcher Jul 27, 2026
877a3e4
docs(android): plan PR 108 Watch Together slice
RXWatcher Jul 27, 2026
651cd26
docs(android): harden Watch Together lifecycle plan
RXWatcher Jul 27, 2026
1134402
feat(watch-together): harden realtime transport boundary
RXWatcher Jul 27, 2026
e44650d
fix(watch-together): pin websocket auth scope
RXWatcher Jul 27, 2026
a78253c
fix(watch-together): abort websocket without scoped auth
RXWatcher Jul 27, 2026
e14ba8e
fix(watch-together): bind room state to immutable leases
RXWatcher Jul 27, 2026
0c90e4d
fix(watch-together): isolate connection owners and pinned scopes
RXWatcher Jul 27, 2026
9275f7f
fix(watch-together): close remaining reconnect owner races
RXWatcher Jul 27, 2026
e08e0c0
fix(watch-together): own room leases at application scope
RXWatcher Jul 27, 2026
e3e5fa0
fix(watch-together): make player delivery reconnect-safe
RXWatcher Jul 27, 2026
0c63407
feat(watch-together): complete reachable room surfaces
RXWatcher Jul 27, 2026
e62c694
fix(watch-together): validate real two-party playback
RXWatcher Jul 27, 2026
4458e9d
Merge pull request #112 from Silo-Server/split/108-a-supply-chain
RXWatcher Jul 27, 2026
8152189
Merge pull request #113 from Silo-Server/split/108-b-auth-epub
RXWatcher Jul 27, 2026
6b1d4f8
Merge pull request #114 from Silo-Server/split/108-c-room-sync
RXWatcher Jul 27, 2026
f41bda9
Merge pull request #115 from Silo-Server/split/108-d-player-foundation
RXWatcher Jul 27, 2026
14dab30
Merge pull request #116 from Silo-Server/split/108-e-subtitles
RXWatcher Jul 27, 2026
57d6126
Merge pull request #117 from Silo-Server/split/108-f-watch-together
RXWatcher Jul 27, 2026
cf41e62
Merge Silo-Server/silo-android main (88 commits)
cursoragent Jul 27, 2026
b3e3ece
fix(ci): pin GitHub Actions SHAs for supply-chain policy
cursoragent Jul 27, 2026
c4e8330
fix(ci): add Kover checksums to dependency verification
cursoragent Jul 27, 2026
b3da545
fix(test): rebrand leftover SILO host fixtures in origin policy tests
cursoragent Jul 27, 2026
ffad9f1
fix(ci): restore Kover gate after Watch Together sync
cursoragent Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions .github/workflows/android-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,23 @@ jobs:

steps:
- name: Check out sources
uses: actions/checkout@v7
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false

- name: Check build supply chain
run: |
./scripts/test-check-build-supply-chain.sh
./scripts/check-build-supply-chain.sh

- name: Set up JDK 21
uses: actions/setup-java@v5
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: temurin
java-version: "21"

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6

- name: Run :shared unit tests and coverage gate
shell: bash
Expand All @@ -60,7 +65,7 @@ jobs:

- name: Upload test reports
if: failure()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: unit-test-reports
path: |
Expand All @@ -69,7 +74,7 @@ jobs:

- name: Upload coverage reports
if: always()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: kover-coverage-reports
path: |
Expand Down
31 changes: 18 additions & 13 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,18 +181,23 @@ jobs:

steps:
- name: Check out sources
uses: actions/checkout@v7
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false

- name: Check build supply chain
run: |
./scripts/test-check-build-supply-chain.sh
./scripts/check-build-supply-chain.sh

- name: Set up JDK 21
uses: actions/setup-java@v5
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: temurin
java-version: "21"

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6

- name: Run unit tests
shell: bash
Expand All @@ -206,7 +211,7 @@ jobs:

- name: Upload test reports
if: failure()
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: unit-test-reports
path: |
Expand All @@ -224,20 +229,20 @@ jobs:

steps:
- name: Check out sources
uses: actions/checkout@v7
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false

- name: Set up JDK 21
uses: actions/setup-java@v5
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: temurin
java-version: "21"

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6

- uses: ruby/setup-ruby@v1
- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1
with:
bundler-cache: true

Expand Down Expand Up @@ -286,18 +291,18 @@ jobs:

steps:
- name: Check out sources
uses: actions/checkout@v7
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
persist-credentials: false

- name: Set up JDK 21
uses: actions/setup-java@v5
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: temurin
java-version: "21"

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6

- name: Decode release keystore
shell: bash
Expand Down Expand Up @@ -378,7 +383,7 @@ jobs:
done

- name: Upload release APKs
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: ${{ matrix.artifact-name }}
path: release-artifacts/${{ matrix.artifact-name }}/*.apk
Expand All @@ -398,7 +403,7 @@ jobs:

steps:
- name: Download APK artifacts
uses: actions/download-artifact@v8
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
with:
pattern: android-*-release-apks
path: release-artifacts
Expand Down
Loading
Loading