Commit Graph

882 Commits (a6c0af59ff49dd80652499c52abf82162796581c)
 

Author SHA1 Message Date
zijiren a6c0af59ff
fix(settings): recover stale version fences (#399)
## Changes
- roll back local and Redis reservations when a settings transaction
aborts
- atomically reconcile stale committed fences against the database
version
- repair runtime-setting fences during startup and before writes
- retry paths now refresh fence state after SQL optimistic-lock
conflicts

## Verification
- cargo test -p synctv-core --lib
- cargo check --workspace
- cargo clippy -p synctv-core -p synctv-api-common --all-targets -- -D
warnings
- real HTTP regression with Redis fence seeded above the database
version
1 month ago
zijiren 0043ec8b2e
feat(providers): unify discovery and playback routing (#397)
## Summary

- expose server-side provider discovery and listing for media and
dynamic playlist variants
- keep provider-specific playback proxy policy inside each provider and
add meaningful prefer/only controls
- harden Emby item classification, cloud/NAS playback routing,
account-bound credentials, and unknown source-config fields
- add real Docker fixtures and end-to-end smoke coverage for Nextcloud,
Seafile, Emby, Jellyfin, OpenList, and provider playback

Related App PR: https://github.com/synctv-org/synctv-app/pull/18

## Testing

- cargo +nightly check --workspace --locked
- cargo +nightly test -p synctv-media-providers seafile::client::tests
--locked
- bash -n scripts/dev-e2e-smoke.sh
- scripts/dev-e2e-smoke.sh with real Docker services and playback URL
downloads
- git diff --check
1 month ago
zijiren 9bc010c568
fix: classify forced realtime disconnects (#395)
## Summary

- send a typed realtime termination message before server-initiated
WebSocket disconnects
- restore the view_playback_history permission bit across effective
permissions and runtime settings round trips
- remove the unused common ErrorCode enum and document the dedicated
termination codes

## Validation

- make nextest: 6715 passed
- make clippy
- git diff --check
1 month ago
zijiren da1abd1a68
feat: add recoverable resource deletion lifecycle (#394)
## Summary

- Add recoverable soft deletion for users, rooms, playlists, media, and
chat messages, with retention-based physical cleanup.
- Hide deleted users and owned resources from active API, room,
playback, messaging, and realtime paths while preserving restoration
metadata.
- Add user lifecycle administration across HTTP, gRPC, management
runtime, and SyncTV CLI, including deleted-user listing and restore
operations.
- Add lifecycle migration, cleanup orchestration, audit fields,
resource-change events, and refreshed SQLx offline metadata.

## Design

- Model account, administrator, system, room, and user deletion sources
explicitly so cascade ownership and audit history remain deterministic.
- Release email and OAuth identity occupancy during deletion;
restoration reclaims available identities and reports conflicts
according to restore options.
- Preserve recoverable aggregate rows during the retention window,
remove ephemeral membership and playback state immediately, and purge
expired data in dependency order.
- Wait for realtime observation acknowledgements before publishing
lifecycle changes to avoid subscription registration races.

## Verification

- `make nextest`: 6707 passed, 0 skipped
- `make clippy`: passed for the workspace and all targets
- `make clippy-check`: passed
- `cargo fmt --all -- --check`: passed
- `git diff --check`: passed
2 months ago
zijiren c0e3c2dae5
fix(docs): preserve TAR end-of-archive blocks (#389)
## Summary
- Allocate an explicit TAR output buffer sized to the written bytes plus
two 512-byte end blocks.
- Copy the archive payload into the buffer so TAR downloads always
include the required zero blocks.

## Testing
- `npm run validate` from `docs/`
- TAR end-block assertion with `tar-js`
2 months ago
zijiren e42aed8b9f
fix(docs): package Compose environment files as TAR (#388)
## Summary
- Fix Compose environment archive filenames for issue #385.
- Provide a lazy-loaded TAR download containing all three environment
files.
- Use Starlight code blocks for environment previews and built-in copy
controls.
- Document Linux hidden files and the `ls -a` command after extraction.

## Testing
- `npm run validate` (from `docs/)
2 months ago
zijiren 8208b5a27f
fix(account): skip standalone room outbox events (#387)
## Summary
- persist deleted-room events only when the prepared event requires the
realtime outbox
- keep local post-commit fanout for standalone deployments
- prevent account closure from failing when cluster mode is disabled

## Verification
- cargo fmt --all -- --check
- cargo check -p synctv-api-common -p synctv-api-grpc -p synctv-api-http
- cargo test -p synctv-core deleted_room_outbox_config --lib
2 months ago
zijiren f4665ebea4
Merge pull request #382 from synctv-org/codex/apple-review-docs
docs(apple): explain Developer ID browser authentication
2 months ago
zijiren233 6eeb974c9b
docs(apple): explain Developer ID browser authentication 2 months ago
zijiren 4b1e677d21
Merge pull request #381 from zijiren233/codex/fix-compose-validation-fallback
fix(helm): validate configurable compose image
2 months ago
zijiren233 daeb66b1b5
fix(helm): validate configurable compose image 2 months ago
zijiren eb8968384e
Merge pull request #380 from zijiren233/codex/fix-compose-image-fallback
fix(compose): make image tag configurable
2 months ago
zijiren233 917ea99946
fix(compose): make image tag configurable 2 months ago
dependabot[bot] 8160c113a5
chore(deps): bump the npm_and_yarn group across 1 directory with 14 updates (#379)
Bumps the npm_and_yarn group with 8 updates in the /docs directory:

| Package | From | To |
| --- | --- | --- |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `6.2.1` | `7.2.0` |
| [sharp](https://github.com/lovell/sharp) | `0.34.5` | `0.35.3` |
| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.2` | `3.4.13` |
| [fast-uri](https://github.com/fastify/fast-uri) | `3.1.0` | `3.1.5` |
| [ip-address](https://github.com/beaugunderson/ip-address) | `10.2.0` | `10.4.0` |
| [mermaid](https://github.com/mermaid-js/mermaid) | `11.14.0` | `11.16.1` |
| [svgo](https://github.com/svg/svgo) | `4.0.1` | `4.0.2` |
| [ws](https://github.com/websockets/ws) | `8.20.0` | `8.21.3` |



Updates `astro` from 6.2.1 to 7.2.0
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@7.2.0/packages/astro)

Updates `sharp` from 0.34.5 to 0.35.3
- [Release notes](https://github.com/lovell/sharp/releases)
- [Commits](https://github.com/lovell/sharp/compare/v0.34.5...v0.35.3)

Updates `devalue` from 5.8.0 to 5.9.0
- [Release notes](https://github.com/sveltejs/devalue/releases)
- [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/devalue/compare/v5.8.0...v5.9.0)

Updates `dompurify` from 3.4.2 to 3.4.13
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.2...3.4.13)

Updates `esbuild` from 0.27.7 to 0.28.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.7...v0.28.1)

Updates `fast-uri` from 3.1.0 to 3.1.5
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.5)

Updates `ip-address` from 10.2.0 to 10.4.0
- [Release notes](https://github.com/beaugunderson/ip-address/releases)
- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.4.0)

Updates `js-yaml` from 4.1.1 to 4.3.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.3.1)

Updates `mermaid` from 11.14.0 to 11.16.1
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.14.0...mermaid@11.16.1)

Updates `nanoid` from 3.3.12 to 3.3.18
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/3.3.18/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.12...3.3.18)

Updates `postcss` from 8.5.13 to 8.5.26
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.13...8.5.26)

Updates `svgo` from 4.0.1 to 4.0.2
- [Release notes](https://github.com/svg/svgo/releases)
- [Commits](https://github.com/svg/svgo/compare/v4.0.1...v4.0.2)

Updates `vite` from 7.3.2 to 8.2.1
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.2.1/packages/vite)

Updates `ws` from 8.20.0 to 8.21.3
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.20.0...8.21.3)

---
updated-dependencies:
- dependency-name: astro
  dependency-version: 7.2.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: sharp
  dependency-version: 0.35.3
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: devalue
  dependency-version: 5.9.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: dompurify
  dependency-version: 3.4.13
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: esbuild
  dependency-version: 0.28.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ip-address
  dependency-version: 10.4.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: js-yaml
  dependency-version: 4.3.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: mermaid
  dependency-version: 11.16.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: nanoid
  dependency-version: 3.3.18
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-version: 8.5.26
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: svgo
  dependency-version: 4.0.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: vite
  dependency-version: 8.2.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ws
  dependency-version: 8.21.3
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 months ago
zijiren 11f1e8effc
release: prepare v1.0.1
Merge the backend release version synchronization.
2 months ago
zijiren 1716af8321
feat(oauth2): add provider modes and native Apple flow
Merge reviewed OAuth provider mode and native Apple flow changes.
2 months ago
zijiren233 794b4d158f
ci: align checks with repository policies 2 months ago
zijiren233 d81e731203
docs: add Compose environment generator 2 months ago
zijiren233 343bd027cb
test: use portable ffmpeg build 2 months ago
zijiren233 0dcc27feee
docs: fix client download links 2 months ago
zijiren233 5425eaf436 chore: replace synctv-org backend with SyncTV v1.0.0 2 months ago
zijiren233 c04106b55a fix: docker build --version 11 months ago
zijiren233 394e065083 chore: bump go mod 11 months ago
zijiren233 d0c433c030 fix: docker build use go cross 11 months ago
zijiren233 c6be2bc40f feat: enable freebsd cgo 11 months ago
zijiren233 13c93e17c9 feat: echo commit 11 months ago
zijiren233 254a621b3b fix: build config 11 months ago
zijiren233 b08b584e66 fix: build script 11 months ago
zijiren233 ff29d6ef8b fix: build target remove frebsd amd/arm and netbsd 1 year ago
zijiren233 a2ca2fd27f chore: bump go mod 1 year ago
zijiren233 aa27d0051e fix: ci lint 1 year ago
TomyJan 5e4ad945b6
fix: qq oauth callback error (#330) 1 year ago
zijiren233 3bfd995b17 fix: change release web to dockerfile 1 year ago
zijiren233 2ce169e50d chore: bump go version to 1.25.0 1 year ago
mei 9b3ddee4a1
fix(server/handlers): HTML escape chat messages to prevent XSS attacks (#322) 1 year ago
zijiren233 67f57e1d5b chore: bump go mod 1 year ago
zijiren233 89f4b4ccb8 chore: bump go mod 1 year ago
zijiren233 0cbbc23eae fix: ci 1 year ago
zijiren233 2142fa65b8 fix: dockerfile use local cc 1 year ago
zijiren233 cd6a57cbd5 chore: bump go mod and enable cgo build for linux、darwin、windows/x86 1 year ago
zijiren233 0ba940deb3 chore: add -v build flag 1 year ago
zijiren233 91d6fca191 chore: add -v build flag 1 year ago
zijiren233 1788bbdfc6 chore: bump helm 1 year ago
zijiren233 246b3298c8 chore: bump web 1 year ago
zijiren233 609275f1ee fix: livelib timestamp 1 year ago
zijiren233 da4d3e9f9a chore: bump go mod 1 year ago
zijiren233 39c28e6458 fix: ci lint 1 year ago
zijiren233 6628b97d0f fix: ci lint 1 year ago
zijiren233 7d38154492 fix: ci lint 1 year ago
zijiren233 43ba071e35 feat: ci 1 year ago