@crowdedkingdoms/crowdy-dsh 0.5.0-dev.1 → 0.5.1-test.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -73,9 +73,19 @@ cached files. Both sides drop frames without the boot nonce: a
|
|
|
73
73
|
implements the page side in `src/crowdy-dsh/`; it also confirms a live deploy
|
|
74
74
|
with the player on the page before running it.
|
|
75
75
|
|
|
76
|
+
The game's own host serves the page and `/dsh/`. Crowded Kingdoms does not
|
|
77
|
+
host games: the developer deploys both to the game's origin, on any static
|
|
78
|
+
host that can set response headers.
|
|
79
|
+
[Host your game](https://docs.crowdedkingdoms.com/build-a-game/host-your-game)
|
|
80
|
+
and the Construct's
|
|
81
|
+
[hosting guide](https://github.com/CrowdedKingdoms/the-construct/blob/prod/docs/HOSTING.md)
|
|
82
|
+
have the full header set and recipes for common hosts.
|
|
83
|
+
|
|
76
84
|
Headers the host must send (verified with `crossOriginIsolated === true`):
|
|
77
|
-
|
|
78
|
-
|
|
85
|
+
the cross-origin isolation headers (COOP `same-origin` and a COEP) on every
|
|
86
|
+
response, `/dsh/*` included; game page CSP unchanged except `frame-src 'self'`;
|
|
87
|
+
every `/dsh/*` response carries
|
|
88
|
+
`script-src 'self' 'unsafe-eval' 'unsafe-inline' blob:`,
|
|
79
89
|
`connect-src 'self' blob:`, `worker-src 'self' blob:`, `frame-ancestors 'self'`
|
|
80
90
|
(the worker compiles pre-lowered module bodies with `new Function`; the harness
|
|
81
91
|
document runs its own client module system). The API and model endpoints must
|
|
@@ -92,11 +102,12 @@ a `persistScope` of its own (sessions of the two editors never mix) and
|
|
|
92
102
|
older worker says so instead of running the mod editor on a game.
|
|
93
103
|
|
|
94
104
|
- **The draft is the page's.** CrowdyJS keeps it (a `DraftStore`: an overlay
|
|
95
|
-
over the repository at a base commit, in the browser
|
|
96
|
-
the dev server's checkout locally). The worker's
|
|
97
|
-
`draft.tree` once, then every change through
|
|
98
|
-
`draft.read` in batches, cached by blob id.
|
|
99
|
-
listing, `stat` and `read_file` agree with
|
|
105
|
+
over the repository at a base commit, in the browser when the game runs from
|
|
106
|
+
its own deployed origin, on the dev server's checkout locally). The worker's
|
|
107
|
+
filesystem is a view of it: `draft.tree` once, then every change through
|
|
108
|
+
`page.draftChanged`; text by `draft.read` in batches, cached by blob id.
|
|
109
|
+
Versions are git blob SHA-1s, so listing, `stat` and `read_file` agree with
|
|
110
|
+
what the page shows.
|
|
100
111
|
- **Writes are guarded the harness's way.** A write carries the tool's intent
|
|
101
112
|
(`createIfAbsent`, or `replaceIfVersion` as `ifHash`); a file the player
|
|
102
113
|
changed since the model read it is a stale write (`FS_STALE_VERSION`), never
|
|
@@ -141,7 +152,10 @@ Once the pin publishes, the hint is inert; drop it with the next SDK bump.
|
|
|
141
152
|
`vfs-image.tar.gz`, ~7 MB), `BUILD.json` (package version, this repo's commit,
|
|
142
153
|
upstream tag and commit, the CrowdyJS the worker bundles, sha256 of every file),
|
|
143
154
|
`LICENSE.deepseek-harness` and `THIRD_PARTY_NOTICES.md`. Serve it under
|
|
144
|
-
`/dsh/` of the game origin.
|
|
155
|
+
`/dsh/` of the game's own origin, with the headers above.
|
|
156
|
+
`preview/vfs-image.tar.gz` must reach the browser with no `Content-Encoding`
|
|
157
|
+
header, because the worker decompresses it itself; a host that adds
|
|
158
|
+
`Content-Encoding: gzip` to `.gz` files needs an exception for that file.
|
|
145
159
|
|
|
146
160
|
The build refuses an artifact that names the builder's home directory or the
|
|
147
161
|
upstream checkout path (`//#region` markers and `patched by` comments are
|
package/dist/dsh-web/BUILD.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "@crowdedkingdoms/crowdy-dsh",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"builtAt": "2026-10-
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"builtAt": "2026-10-30T01:16:21.091Z",
|
|
5
5
|
"source": {
|
|
6
6
|
"repository": "CrowdedKingdoms/crowdy-dsh",
|
|
7
|
-
"commit": "
|
|
7
|
+
"commit": "7c091864b480fae82820bf324c4dfa5a3a962718",
|
|
8
8
|
"dirty": false
|
|
9
9
|
},
|
|
10
10
|
"upstream": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"crowdyjs": {
|
|
17
17
|
"name": "@crowdedkingdoms/crowdyjs",
|
|
18
|
-
"version": "18.23.
|
|
18
|
+
"version": "18.23.1-test.1",
|
|
19
19
|
"source": "node_modules"
|
|
20
20
|
},
|
|
21
21
|
"files": {
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"manifest.webmanifest": "sha256:9b54d57eea00f2fdd1affe6e7999a4209a515755f12ac1a3299da2d55e178d4c",
|
|
113
113
|
"preview/bootstrap-CYECZNXt.js": "sha256:9f303a0485c0badfdd19fad0c357ef050c5b9a343744ab5bf0c70015e7d95092",
|
|
114
114
|
"preview/crowdy-boot-Cklh1qNl.js": "sha256:b21e8eb126e1cd8a52159d2d577e610df6c8af36a436f9ed5028cfabd11a85ff",
|
|
115
|
-
"preview/vfs-image.tar.gz": "sha256:
|
|
115
|
+
"preview/vfs-image.tar.gz": "sha256:2418544db16aaa805f7db5020ab2aca95d16505b0bbc0771f5c4d2ba964a7c6e",
|
|
116
116
|
"preview/worker-C8-_ANaz.js": "sha256:81099e5732dfe0c32bacd5897316b7956c5a0a22da01b4a0c6e21d0a3b9d9aa1"
|
|
117
117
|
}
|
|
118
118
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crowdedkingdoms/crowdy-dsh",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1-test.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -110,11 +110,11 @@
|
|
|
110
110
|
"crowdyDsh": {
|
|
111
111
|
"build": {
|
|
112
112
|
"package": "@crowdedkingdoms/crowdy-dsh",
|
|
113
|
-
"version": "0.5.
|
|
114
|
-
"builtAt": "2026-10-
|
|
113
|
+
"version": "0.5.1",
|
|
114
|
+
"builtAt": "2026-10-30T01:16:21.091Z",
|
|
115
115
|
"source": {
|
|
116
116
|
"repository": "CrowdedKingdoms/crowdy-dsh",
|
|
117
|
-
"commit": "
|
|
117
|
+
"commit": "7c091864b480fae82820bf324c4dfa5a3a962718",
|
|
118
118
|
"dirty": false
|
|
119
119
|
},
|
|
120
120
|
"upstream": {
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
},
|
|
126
126
|
"crowdyjs": {
|
|
127
127
|
"name": "@crowdedkingdoms/crowdyjs",
|
|
128
|
-
"version": "18.23.
|
|
128
|
+
"version": "18.23.1-test.1",
|
|
129
129
|
"source": "node_modules"
|
|
130
130
|
},
|
|
131
131
|
"files": {
|
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
"manifest.webmanifest": "sha256:9b54d57eea00f2fdd1affe6e7999a4209a515755f12ac1a3299da2d55e178d4c",
|
|
223
223
|
"preview/bootstrap-CYECZNXt.js": "sha256:9f303a0485c0badfdd19fad0c357ef050c5b9a343744ab5bf0c70015e7d95092",
|
|
224
224
|
"preview/crowdy-boot-Cklh1qNl.js": "sha256:b21e8eb126e1cd8a52159d2d577e610df6c8af36a436f9ed5028cfabd11a85ff",
|
|
225
|
-
"preview/vfs-image.tar.gz": "sha256:
|
|
225
|
+
"preview/vfs-image.tar.gz": "sha256:2418544db16aaa805f7db5020ab2aca95d16505b0bbc0771f5c4d2ba964a7c6e",
|
|
226
226
|
"preview/worker-C8-_ANaz.js": "sha256:81099e5732dfe0c32bacd5897316b7956c5a0a22da01b4a0c6e21d0a3b9d9aa1"
|
|
227
227
|
}
|
|
228
228
|
}
|