2 Commits
Author SHA1 Message Date
The_River 86d49846ff Merge pull request 'chore: release signage 0.1.4' (#17) from release/0.1.4 into main
CI / lint (push) Successful in 12s
CI / typecheck (push) Successful in 9s
CI / test (push) Successful in 16s
CI / build (push) Successful in 11s
CI / package (push) Successful in 13s
CI / integration (push) Successful in 7m14s
Reviewed-on: https://git.riverofglorymn.org/River_of_Glory_Church/Ekklesia_Signage/pulls/17
Reviewed-by: The_River <[email protected]>
2026-10-11 04:18:30 +00:00
ekklesia a8c35db201 chore: release signage 0.1.4
CI / lint (pull_request) Successful in 13s
CI / typecheck (pull_request) Successful in 10s
CI / test (pull_request) Successful in 16s
CI / build (pull_request) Successful in 11s
CI / package (pull_request) Successful in 14s
CI / integration (pull_request) Successful in 7m19s
2026-10-10 23:02:55 -05:00
8 changed files with 11 additions and 11 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ Ekklesia and vendors none of its SDKs.
## Status
Version 0.1.3 is feature-complete for its declared scope, and Signage has run in production since
Version 0.1.4 is feature-complete for its declared scope, and Signage has run in production since
0.1.1. What exists today:
- The module package, manifest (v8), four capabilities, six permissions, ten operator settings, and
+1 -1
View File
@@ -3,7 +3,7 @@
"id": "signage",
"name": "Signage",
"description": "Visual programming, timelines, synchronized channels, and display delivery for church screens.",
"version": "0.1.3",
"version": "0.1.4",
"compatibility": {
"platform": "^0.2.0",
"moduleSdk": "^0.2.0"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ekklesia/signage",
"version": "0.1.3",
"version": "0.1.4",
"private": true,
"license": "AGPL-3.0-or-later",
"type": "module",
+1 -1
View File
@@ -59,7 +59,7 @@ function SignageDisplay({ context }: { readonly context: ModuleUiHostContext }):
*/
export default defineModuleUi({
id: "signage",
version: "0.1.3",
version: "0.1.4",
styles: displayStyles,
mount(container, context) {
const root = createRoot(container);
+2 -2
View File
@@ -130,7 +130,7 @@ export function createSignageModuleRuntime(
// Database ABI v1 executor, which `createSignageStore` binds Signage's own Drizzle adapter to.
database: { abi: 1 },
id: "signage",
version: "0.1.3",
version: "0.1.4",
register({ capabilities, config, http, realtime }) {
const settings = readSignageSettings(config);
@@ -192,7 +192,7 @@ export function createSignageModuleRuntime(
// server enforces — a UI believing a stale limit would offer an upload the server refuses.
return Response.json({
crossfadeMs: current.crossfadeMs,
moduleVersion: "0.1.3",
moduleVersion: "0.1.4",
nativeImageDurationMs: current.nativeImageDurationMs,
nativePresentation: current.nativePresentation,
rendererInputVersion: SIGNAGE_SLIDE_RENDERER_INPUT_VERSION,
+1 -1
View File
@@ -15,7 +15,7 @@ import ownStyles from "./styles.css";
*/
export default defineModuleUi({
id: "signage",
version: "0.1.3",
version: "0.1.4",
styles: `${EKKLESIA_UI_STYLESHEET}\n${ownStyles}`,
mount(container, context) {
const root = createRoot(container);
+1 -1
View File
@@ -127,7 +127,7 @@ export function createFakeHost(options: FakeHostOptions): FakeHost {
/** The settings payload every screen loads first. */
export const FAKE_SETTINGS = Object.freeze({
crossfadeMs: 1000,
moduleVersion: "0.1.3",
moduleVersion: "0.1.4",
nativeImageDurationMs: 7000,
nativePresentation: {
backgroundColor: "#000000",
+3 -3
View File
@@ -66,7 +66,7 @@ describe("Signage module manifest", () => {
expect(manifest.manifestVersion).toBe(8);
expect(manifest.id).toBe("signage");
expect(manifest.name).toBe("Signage");
expect(manifest.version).toBe("0.1.3");
expect(manifest.version).toBe("0.1.4");
expect(manifest.compatibility).toEqual({ moduleSdk: "^0.2.0", platform: "^0.2.0" });
});
@@ -151,7 +151,7 @@ describe("Signage module manifest", () => {
describe("Signage server runtime", () => {
it("exports the typed runtime definition the compiled server entrypoint publishes", async () => {
// The runtime's database declaration must match the manifest's, or Core refuses to start it.
expect(moduleRuntime).toMatchObject({ database: { abi: 1 }, id: "signage", version: "0.1.3" });
expect(moduleRuntime).toMatchObject({ database: { abi: 1 }, id: "signage", version: "0.1.4" });
});
it("registers its routes declaratively, with no database, storage, or realtime work", async () => {
@@ -250,7 +250,7 @@ describe("Signage server runtime", () => {
expect(response.status).toBe(200);
expect(await response.json()).toEqual({
crossfadeMs: 400,
moduleVersion: "0.1.3",
moduleVersion: "0.1.4",
nativeImageDurationMs: 12_000,
nativePresentation: SIGNAGE_DEFAULT_SETTINGS.nativePresentation,
rendererInputVersion: "1.0.0",