Skip to content

Tilecast 1.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Nov 16:55
Immutable release. Only release title and notes can be modified.
f7b6f40

Tilecast 1.0.0

A Stable release.

Every platform below is this version, built from one commit.

Built from commit f7b6f401aea3a71b8f7dee5da7dd1b5cedac2164. Update version code: 100000099.

Server

  • ghcr.io/gbyo/tilecast-server:1.0.0
  • Moving tag: stable and latest (ghcr.io/gbyo/tilecast-server:stable)
  • digest: sha256:9580ce33e06270919c2111af83e54fc37d4c7370aa65e3bde75bf2a143774d82

The Browser Player is bundled with the server image and is the same version.

Tilecast Edge (Linux)

Each architecture ships a signed update envelope, its signature and a software bill of materials.

Windows

Studio imports the signed update envelope from the release that holds it, for screens it manages.

Android and Fire TV

  • Android TV, Google TV and Fire TV: tilecast-player.apk (27.2 MiB, SHA-256 3fe70b3a128e6d3629c3b05e10c4a7889c140da0f049b33b63d4d672c8962c0c)

Studio imports the signed update envelope from the release that holds it, for screens it manages.

iOS and iPadOS

Distributed through Apple's App Store, not as a GitHub release asset. Its availability follows Apple review and never gates a Tilecast release. See the guide.

Verify your download

SHA256SUMS lists every file. tilecast-release.json is the machine-readable inventory of this release. Update envelopes are signed with the Tilecast update key and verified by Studio and by each player.

gh release download v1.0.0 --repo gbyo/tilecast --pattern 'SHA256SUMS'
sha256sum -c SHA256SUMS --ignore-missing

What's changed

1.0.0 is the first Stable release. This list covers everything merged since 0.27.0-beta.3, the last published beta, in 170 pull requests.

Highlights

  • Resource-scoped access control. Capabilities, custom roles, and Media content access (#1675), with screen authorization centralized in one explicit policy (#1713).
  • Plugin Model V2. Contribution-based plugins with versioned Player services (#1685). External plugin surfaces now run on Edge, Windows, and Android (#1663, #1664, #1665, #1667, #1674, #1676, #1677, #1679, #1680, #1682). Countdown Bar moved to Plugin API v2 (#1686) and has a refreshed design (#1855).
  • Studio on official Base Nova. Studio migrated to Base Nova (#1695) with standard resource context menus (#1699, #1698). New weekly playback agenda (#1856), the login background on the sign-in and setup pages (#1785), and no white flash on refresh in dark mode (#1799).
  • Organization font library for Layout text and Countdown Bar (#1857).
  • Phone setup. A phone can give a new screen its server address (#1728), and Edge, Windows, and Android show the setup QR code (#1731).
  • Android Player. Fixed the permanent black screen, live content updates, and zone validation (#1653). Rebuilt setup for unattended signage (#1711, #1715) and fixed queued activations (#1712, #1741).
  • Mixed Widget playlists in Layout zones, across the Runtime (#1655), the Server (#1656), and the Studio preview (#1657, #1662).
  • Widgets. Canva slideshow autoplay mode (#1666, #1669). Weather temperature and forecast display options (#1705). Typed percent values render as ratios (#1768). Agenda and Weather keep date-only values on their calendar day (#1744). Sandboxed Widgets get the full WidgetResources contract (#1754).
  • Prelaunch audit of playback, content deletion, proof of play, media jobs, Span, Campaign windows, and Studio feedback (#1870).
  • Security. The Player client confirms the installation identity before each credentialed request (#1722). A package update is refused when the observed installation changed (#1850).

Players

  • Android kiosk and power. Honors admin_session_minutes for maintenance sessions (#1769), the foreground watchdog setting (#1765), launch after boot (#1746), the block overlays setting (#1833), and the Settings access maintenance policy (#1821). Exits lock task when Managed Kiosk is disabled (#1766) and restores system bars when immersive mode is off (#1763). Off-hours power effects apply once configuration loads (#1756, #1753, #1840), and unperformed Power Assist actions report as failed (#1854). Website clearOnRestart applies at startup (#1819).
  • Android capture, updates, and credentials. Captures that miss a visible video surface are refused (#1762) and capture binds to the eligible window (#1796, #1797). Credential clear is durable across the legacy slot (#1747). Scheduled installs recheck deployment cancellation (#1805) and Takeover is rechecked when a pending update is approved (#1813). Plugin surfaces clear on gate and waiting states (#1808).
  • Edge, Windows, and Linux. Edge and Windows keep the presentation when recovery reactivation fails (#1779). Edge releases the preview slot when a WebKit snapshot times out (#1761), retries the startup website-data clear (#1811) and transient Presentation Network provisioning failures (#1824), rechecks protected state before upload (#1823), refreshes the resume binding after pairing (#1814), and honors deployment cancellation before activating staged updates (#1835). Windows posts activation presentation and plugins atomically (#1847). Linux Player fixes: recovery history (#1784), cache space checks (#1773), H.264 decoder fallback (#1783), maintenance windows over 24 hours (#1803), command intent (#1804), and staged updates after restart (#1807).
  • Player Core and storage. Retry recovery acts in safe mode (#1775). The configured Automatic delivery threshold is honored (#1771). Reset cancels in-flight pairing work (#1759). Proven items clear when a renderer reconnects (#1742). Activation trial outcomes are durable and follow restored servers (#1730). Plugin-only manifest refresh no longer restarts playback (#1651). Cache fixes: space reserved across concurrent writers (#1778), every eligible object cleared (#1770), and an indivisible eviction pin check (#1733).
  • Browser Player. Tracks the current item while offline (#1780), keeps one lock per identity record (#1734), recovers the binding when enrollment commits but its response is lost (#1852), and reloads after back-forward cache restore (#1843) and shared service worker activation (#1841).

Server, content, and data

  • Media. Reconciles upload offsets after an ambiguous chunk commit (#1781), keeps a private asset's blob after an ambiguous commit (#1757), and stops processing jobs from reviving deleted assets' files (#1760).
  • Playlists. More reliable item reordering (#1649). Tag-driven playlists are no longer rejected as empty on assignment (#1681). Inspector item edits are serialized and merge stale snapshots (#1755).
  • Data Sources and plugins. Refresh results are discarded after a configuration change (#1845). Output schemas above the Player dataset field limit are rejected (#1836). Declarative adapters must declare their output kind (#1829) and scaffold requiresManifestV13 (#1827). Plugin job intervals survive active runs (#1832), and the package catalog rebuild retries after lifecycle failures (#1828).
  • Screens and scheduling. Display Control schedules serialize with group admission (#1795). Hardware replacement under Display Control schedules is refused on non-Linux screens (#1743). Player configuration advances when a screen's location changes (#1748). Takeover activations serialize for overlapping screens (#1842). Span geometry recalculates when revocation detaches a member (#1745), and each panel shows its newest preparation (#1740). Fleet shows the right now-playing during takeovers (#1673). Studio session isolation, Player reporting, and schedule transitions were fixed (#1720).
  • Activity, notifications, and forms. Content Health incident types are accepted by the incidents filter (#1758), and incident detail evidence read failures are shown (#1777). Duplicate notification sends are prevented after a batch lease expires (#1846). Forms read transition target eligibility under the transaction (#1837) and revoke abandoned image preview URLs (#1848).

Studio and iOS

  • Studio. Partial failures are reported when moving selected screens (#1849). Retrying a failed screen reopens its Player Updates deployment (#1735), and failed screen restores stay retryable after Undo (#1767). Plugin Store shows a failed marketplace refresh (#1776), and adding a custom repository retires the review when the URL changes (#1749). Creation galleries disable plugin providers until install state is known (#1736), and Connect Data offers only bindable Data Sources (#1750). The startup animation plays when active hours begin (#1787), selected weekdays are distinct from hover in Settings (#1788), and Data Source save toasts are localized (#1732). Studio is served correctly at /assets (#1871).
  • iOS. A replacement deep link is delivered after the active one exits (#1739). Credentials and data stores are kept when the server directory is unreadable or fails to save (#1774, #1772), and a pending sign-in no longer restores a removed server credential (#1853).

Maintenance

Dependency updates, CI and formatting fixes, test updates, and documentation, including the iOS app and its App Store link (#1726) and operator guidance for edge cases (#1672).

Full Changelog: v0.27.0-beta.3...v1.0.0