Commit Graph

40 Commits (63c370876dbdbee07ed2707de733aaeb27308643)

Author SHA1 Message Date
zijiren 63c370876d
feat(web): add client-aware playback and reproducible UI (#433)
## Summary

- add a versioned playback client profile for browser/runtime protocol,
container, codec, header, proxy, insecure-media, and P2P-loader
capabilities
- generate compatible direct and proxy resources inside each provider
and return a structured incompatibility error when route policy leaves
no viable result
- force provider proxy delivery for browser-forbidden headers, including
affected Bilibili variants, while preserving explicit direct-only
failures
- keep legacy clients compatible and isolate capability-aware playback
cache entries
- serve `/oauth2/callback` through the same Flutter SPA entry point and
keep public discovery anonymous

## Reproducible Web UI

- move Flutter acquisition/build, source configuration, asset manifests,
Brotli/gzip compression, and compile-time embedding into the independent
`synctv-web-ui` crate
- support prebuilt distributions, local projects, and Git sources pinned
to an immutable full commit, with an ignored local override
- fingerprint source, Flutter version, build arguments, dart-defines,
builder generation, output, and compression settings
- validate cached Git repository/revision/commit identity, support
offline cache reuse, and rebuild only when relevant inputs change
- pin and checksum the Flutter SDK in the Docker Web asset stage;
backend-only builds require no Flutter, Git fetch, or network
- serve embedded assets with ETags, compression negotiation, CSP, cache
policy, Origin/CORS handling, and SPA fallback outside API/media routes

## Verification

- `cargo fmt --all -- --check`
- workspace `cargo check`, test/doc-test, and all-targets Clippy with
warnings denied
- provider tests: 200 passed, 1 ignored
- OAuth core/API tests: 72 + 16 passed
- `synctv-web-ui`: 10 passed
- `synctv-api-http --features web-ui`: 12 passed
- default Git source cold build from the pinned App commit, followed by
offline hot-cache reuse in about 1.1 seconds
- `cargo check -p synctv --features web-ui` and `docker buildx build
--check .`
- real Chrome playback, P2P, OAuth/Casdoor, multi-user sync, chat,
media, playlist, upload, settings, and playback-history flows

Companion frontend PR: https://github.com/synctv-org/synctv-app/pull/52

Release pin validation:
https://github.com/synctv-org/synctv-release/pull/9
1 month ago
zijiren 9e0e0c280e
chore(dev): remove background server targets (#407)
## Summary

- remove the `dev-start` and `dev-stop` Makefile targets and related
documentation
- keep `dev-serve` as the foreground development server entry point
- make the provider smoke test own and clean up its server process
- keep `dev-down` and `dev-clean` scoped to Compose services

## Verification

- `bash -n scripts/dev-e2e-smoke.sh`
- Makefile dry runs for `dev-serve`, `dev-down`, and `dev-clean`
- `make help` target inspection
- `git diff --check`
- existing development backend health check
2 months ago
zijiren233 5425eaf436 chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
zijiren233 07c1d414e4 chore: helm docs 1 year ago
zijiren233 b1e3bc1f09 fix: github mirror 2 years ago
zijiren233 0ed60c8209 feat: p2p docs 2 years ago
zijiren233 7c69ae5c3d feat: helm docs 2 years ago
zijiren233 0040c9ccb8 feat: helm docs 2 years ago
zijiren233 5598a1d4fa fix: readme release status 2 years ago
zijiren233 eeffe049cf feat: webrtc readme 2 years ago
zijiren233 55c1bdcadb docs: readme 2 years ago
zijiren b30f694cf2 chore: update readme and config comment 2 years ago
zijiren233 4fc2c054a0 docs: spon 2 years ago
zijiren233 ce7cb1735b chore: docs 2 years ago
zijiren233 a2aa90c1a3 chore: update readme 2 years ago
zijiren233 fe130161a8 chore: update readme 2 years ago
zijiren233 07e7149e86 Chore: docs url 2 years ago
zijiren233 5afb7e28ba Spon: add https://github.com/LucasYuYu 3 years ago
zijiren233 a640e5bb40 Docs: update Parse video list 3 years ago
zijiren233 6ce728381b Docs: update sponsors 3 years ago
zijiren233 a2d71e59db Opt: install script url 3 years ago
zijiren233 c258f22e45 Feat: install script support gh proxy 3 years ago
zijiren233 94e6368b00 Docs: update 3 years ago
zijiren233 549aebc0e5 Docs: update 3 years ago
zijiren233 a270328a01 Feat: install linux service 3 years ago
zijiren233 34ae7208c6 Docs: init root user 3 years ago
zijiren233 9f5ace0d3c Docs: add tg group 3 years ago
zijiren233 931df8d848 Docs: update readme 3 years ago
zijiren233 f66fc5942e Docs: update self-update docs 3 years ago
zijiren233 390fe2cdb7 Feat: update sys notify 3 years ago
zijiren233 ab7dfa5bc8 Fix: docs config path error: home env 3 years ago
zijiren233 0f34b80066 Docs: add demo 3 years ago
zijiren233 e2aad6121b Docs: update installation 3 years ago
zijiren233 98dda736e8 Docs: update readme what is synctv 3 years ago
zijiren233 29e06d7a23 Docs: update downloads and docker pulls 3 years ago
zijiren233 1b1856f361 Docs: usage 3 years ago
zijiren233 328f5e957c Docs: build img 3 years ago
zijiren233 eeea0f2d5d Docs: update docs 3 years ago
zijiren233 acf7718c0a Feat: synctv init 3 years ago
zijiren 586f37bbab
Initial commit 3 years ago