Skip to content

v1.2.0

Choose a tag to compare

@gaam24 gaam24 released this 06 Oct 17:29
· 108 commits to main since this release

Full Changelog: v1.1.1...v1.2.0

Highlights

  • Richer playback contracts — hydrated watchlist items, batch playback suggestions, and a full-row playback view.
  • One-call admin dashboard — getDashboardView() returns stats, libraries, worker operations, audit feed, error logs and update status together.
  • Explicit pagination contracts — one flat envelope everywhere (admin pages included) and a clear split between offset and cursor endpoints.
  • Codes, not text — remote-access checks now return stable machine codes with params; clients own all translated text.
  • Typed request/response schemas for playback progress, stream prefs, heartbeat, watchlist statuses and the worker status filter.

Breaking changes

  1. Admin page envelopes are flat
    • Before: { data, pagination: { total, page, limit, totalPages } }
    • After: { page, limit, total, totalPages, data }
    • Affects AdminUsersPage, AdminLogsPage, AdminAuditPage and the audit/logs fields inside AdminDashboardViewResponse.
    • Empty pages now report totalPages: 0.
  2. Cursor contracts split from offset contracts
    • PaginationQuery is offset-only (page, limit); cursor endpoints use the new CursorPaginationQuery (cursor).
    • PaginatedResponse<T> no longer carries nextCursor; cursor endpoints return the new CursorPaginatedResponse<T>.
    • me.getWatchedHistory now accepts CursorPaginationQuery; the dead perPage parameter is gone.
    • Cursor mode applies to GET /v1/metadata and GET /v1/me/watched-history only.
  3. Remote-access checks return codes
    • RemoteAccessCheck changed from { id, ok, title, detail } to { id, ok, code, params? }.
    • Translate remote_access.* codes on the client (website already does).

New in 1.2.0

  • BatchSmartPlayResponseSchema + me.getPlaybackSuggestionsBatch(metadataIds) (up to 50 ids) — suggestion + watchlist flag per card in one request.
  • HydratedWatchlistItemSchema + me.getWatchlist({ hydrate: true }) overload — each item carries its full metadata card.
  • PlaybackViewResponseSchema.mediaFile is now the complete row (no projection) so the player UI works on the strict shape.
  • worker:progress realtime event (throttled to at most one message per second per running job).
  • AdminDashboardViewResponseSchema + admin.getDashboardView() — replaces six parallel dashboard requests.
  • New typed schemas: UpdatePlaybackProgressSchema, StreamPrefsSchema, HeartbeatBodySchema, WatchlistStatusSchema, WatchlistStatusesResponseSchema, WorkerStatusFilterSchema.
  • PaginationMetaSchema is now the single source for every page envelope.

Upgrade notes

  • Bump @reelvault/sdk to ^1.2.0.
  • Update consumers that read .pagination on admin endpoints (see breaking change 1) and translate remote-access codes (breaking change 3).
  • Everything else is wire-compatible; the remaining changes are schema deduplication and type exports.