openvibers/openvibe.studio STATUS.json

STATUS.json

main 4.6 KB · 96 lines · json

1{
2 "repository": "OpenVibers/OpenVibe.Studio",
3 "stage": "beta",
4 "code": true,
5 "product": "Photo and Light, the creative apps on the OpenVibe network",
6 "runtime": "node 22, Express, the OpenVibe Shared shell and the openvibe-sdk SSO client; the apps themselves are Rust compiled to WebAssembly (Trunk for PhotoCraft, cargo xtask web for LightCraft) and served as static bundles",
7 "port": 5155,
8 "drill_port": 15155,
9 "domain": "openvibe.studio",
10 "contracts": "openvibe-contracts v0.419.0, openvibe-sdk v0.161.0, openvibe-shared v4.238.0",
11 "capabilities": [
12 "studio.apps.list",
13 "studio.files.list",
14 "studio.file.open",
15 "studio.file.save"
16 ],
17 "deployed": false,
18 "deployment": "Not deployed in this pull request. openvibe.studio stays parked until the owner launches it; the service listens on 127.0.0.1:5155 and the drill port is 15155. The bundles are built by the bundles workflow on every push to main and published as the release bundles-<photo tag>-<light tag> with a SHA256SUMS file; scripts/fetch-bundles.sh fetches that release on the host with curl (no GitHub account), checks the sums and swaps the tree in one step. No bundle is kept in git.",
19 "bases": [
20 {
21 "id": "photo",
22 "name": "PhotoCraft",
23 "repository": "https://github.com/storytold/photocraft",
24 "tag": "v0.21.0",
25 "licence": "MIT OR Apache-2.0",
26 "licence_files": [
27 "LICENSE-MIT",
28 "LICENSE-APACHE",
29 "NOTICE",
30 "ATTRIBUTION.md"
31 ],
32 "built_by": "our CI (Rust stable, wasm32-unknown-unknown, Trunk 0.21.14)",
33 "why": "the published web release archive does not start, so the build is made from the pinned tag and checked by a first-frame smoke test",
34 "adapter": "server/adapters/photo.js",
35 "capabilities": {
36 "open": true,
37 "save": false,
38 "commands": false
39 }
40 },
41 {
42 "id": "light",
43 "name": "LightCraft",
44 "repository": "https://github.com/storytold/lightcraft",
45 "tag": "v0.19.0",
46 "licence": "MIT OR Apache-2.0",
47 "licence_files": [
48 "LICENSE-MIT",
49 "LICENSE-APACHE",
50 "NOTICE",
51 "ATTRIBUTION.md",
52 "OFL-biz-ud-pgothic.txt",
53 "OFL-noto-sans-thai.txt"
54 ],
55 "built_by": "our CI (Rust stable, wasm32-unknown-unknown, cargo xtask web, wasm-bindgen 0.2.129)",
56 "why": "its web build works and speaks the documented host bridge, so files can be opened and exports handed over",
57 "adapter": "server/adapters/light.js",
58 "capabilities": {
59 "open": true,
60 "save": true,
61 "commands": true
62 }
63 }
64 ],
65 "excluded": [
66 {
67 "name": "Cut (FilmCraft)",
68 "reason": "desktop and agent only; not part of Studio v0"
69 }
70 ],
71 "features": [
72 "one service for both apps, modelled on OpenVibe.Computer: the Shared navbar, the sign-in, STATUS.json and a pinned security workflow",
73 "the apps are served at /photo and /light inside our own layer: the navbar sits outside the app frame",
74 "one adapter per app with the same contract (open(file), save(), commands()), so a base can be swapped",
75 "Open from OpenVibe: the files a person owns in OpenVibe.Download and the pictures in OpenVibe.Pics",
76 "Save to OpenVibe: an export goes to the person's OpenVibe.Download drive (start, parts, complete)",
77 "the headers the WebAssembly builds need: application/wasm, no-cache on the loader, immutable on the hashed parts, no COOP/COEP (the builds are not cross-origin isolated and do not need it)",
78 "a build smoke test that fails the build unless the app reaches its first frame in headless Chrome",
79 "the home states the measured limits, credits each upstream project and links its licence"
80 ],
81 "limits_measured": [
82 "LightCraft reaches its first frame in about 2.5 s at 1280 px and 0.6 s at 390 px; PhotoCraft in about 1.3 s once its loader path is right",
83 "a 4 GB Photoshop file passes PhotoCraft's cap but uses 2.7-3.0 GB of memory: a phone with 4 GB can run out of memory on big files",
84 "neither app works offline: there is no service worker",
85 "OpenVibe.Download has no route that hands a file's bytes to a person's token yet, so a file opens here only through a public share link"
86 ],
87 "tests": [
88 "the build smoke test (scripts/smoke.js, run by the bundles workflow)",
89 "the headers of the bundles (server/bundles.js)",
90 "the adapter contract with a fake app (test/adapters.test.js)",
91 "the sign-in gating of Save, the files listing and the page rendering (test/studio.test.js)",
92 "the OpenVibe.Download client (test/media.test.js)"
93 ],
94 "updated": "2026-11-13"
95}
96