@genex-ai/cli-demo 0.47.0-dev.70 → 0.47.0-dev.71
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/dist/index.js
CHANGED
|
@@ -1825,6 +1825,13 @@ function advisoryNudges(log, d) {
|
|
|
1825
1825
|
);
|
|
1826
1826
|
}
|
|
1827
1827
|
}
|
|
1828
|
+
async function firstPreviewNudge(log, cwd = process.cwd()) {
|
|
1829
|
+
const meta = await readProject(cwd);
|
|
1830
|
+
if (!meta || meta.lastDeployAt || meta.status === "published") return;
|
|
1831
|
+
log.dim(
|
|
1832
|
+
" \u279C Draft page still the placeholder? Ship the first rough build now: npx genex preview \u2014 then keep building."
|
|
1833
|
+
);
|
|
1834
|
+
}
|
|
1828
1835
|
|
|
1829
1836
|
// src/commands/publish.ts
|
|
1830
1837
|
async function runPublish(opts) {
|
|
@@ -1861,6 +1868,8 @@ async function runPublish(opts) {
|
|
|
1861
1868
|
process.exitCode = 1;
|
|
1862
1869
|
return;
|
|
1863
1870
|
}
|
|
1871
|
+
meta.lastDeployAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1872
|
+
await writeProject(meta);
|
|
1864
1873
|
} else {
|
|
1865
1874
|
log.info("Skipping build + deploy (--no-push).");
|
|
1866
1875
|
}
|
|
@@ -1944,8 +1953,9 @@ async function runPreview(opts) {
|
|
|
1944
1953
|
const freshStatus = await fetchProjectStatus(apiUrl, token, meta.slug);
|
|
1945
1954
|
if (freshStatus && freshStatus !== meta.status) {
|
|
1946
1955
|
meta.status = freshStatus;
|
|
1947
|
-
await writeProject(meta);
|
|
1948
1956
|
}
|
|
1957
|
+
meta.lastDeployAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1958
|
+
await writeProject(meta);
|
|
1949
1959
|
const published = meta.status === "published";
|
|
1950
1960
|
log.plain("");
|
|
1951
1961
|
if (published) {
|
|
@@ -2088,6 +2098,7 @@ async function runGenerate(kind, opts) {
|
|
|
2088
2098
|
}
|
|
2089
2099
|
log.plain("");
|
|
2090
2100
|
printHint(kind, files, log);
|
|
2101
|
+
await firstPreviewNudge(log);
|
|
2091
2102
|
}
|
|
2092
2103
|
var WAIT_TIMEOUT_MS = 10 * 60 * 1e3;
|
|
2093
2104
|
var KIND_WAIT_TIMEOUT_MS = {
|
|
@@ -2658,6 +2669,7 @@ async function runController(opts) {
|
|
|
2658
2669
|
for (const line of set.sketch) {
|
|
2659
2670
|
log.dim(` ${line}`);
|
|
2660
2671
|
}
|
|
2672
|
+
await firstPreviewNudge(log);
|
|
2661
2673
|
}
|
|
2662
2674
|
async function installOwnerAvatar(args) {
|
|
2663
2675
|
const { root, srcDir, apiUrl, token, log } = args;
|
package/package.json
CHANGED
|
@@ -26,11 +26,16 @@ evidence, temporal checks, budgets, and explicit rejection criteria.
|
|
|
26
26
|
|
|
27
27
|
For plain game tasks — nothing from the procedural/visual-system pack loaded —
|
|
28
28
|
this is the whole acceptance gate, and it is also the *ceiling*: a smoke check,
|
|
29
|
-
not a certification. Run it ONCE per milestone
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
not a certification. Run it ONCE per milestone, and only AFTER that milestone's
|
|
30
|
+
`genex preview` is pushed — ship the rough draft first, then check it; the
|
|
31
|
+
player may already be walking around your build while you do. Catch obvious
|
|
32
|
+
breakage, fix what's clearly broken, and hand the feel/polish judgment to the
|
|
33
|
+
player — don't loop re-testing the same build, don't re-test after cosmetic
|
|
34
|
+
tweaks (sounds, colors, tuning values), and don't try to exercise every button
|
|
35
|
+
and edge case yourself. This browser check is the only testing a game draft
|
|
36
|
+
needs: never add unit tests or a test framework to a game unless the user asks.
|
|
37
|
+
The player deciding "does it feel right?" is faster and truer than you clicking
|
|
38
|
+
everything twice.
|
|
34
39
|
|
|
35
40
|
1. Load the page in a real browser; the canvas renders (no black screen, no
|
|
36
41
|
console errors). For an unpublished draft, open the dev server in local
|