@wervt/cli 0.2.4 → 0.2.6

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.mjs CHANGED
@@ -220,7 +220,9 @@ const deploy = defineCommand({
220
220
  const labels = {
221
221
  extract: "Extracting",
222
222
  migrate: "Migrating database",
223
- activate: "Activating"
223
+ storage: "Setting up storage",
224
+ activate: "Activating",
225
+ boot: "Starting"
224
226
  };
225
227
  const decoder = new TextDecoder();
226
228
  let buffer = "";
@@ -236,11 +238,27 @@ const deploy = defineCommand({
236
238
  return;
237
239
  }
238
240
  if (event.done) {
239
- spinner.stop(`Release ${event.release}`);
241
+ spinner.stop(`Release ${event.release}${event.bootMs === void 0 ? "" : `, started in ${event.bootMs} ms`}`);
240
242
  p.outro(`Deployed → ${event.url}`);
241
243
  if (process.env.GITHUB_OUTPUT) await appendFile(process.env.GITHUB_OUTPUT, `url=${event.url}\nrelease=${event.release}\n`);
242
244
  return;
243
245
  }
246
+ if (event.step === "boot-unchecked") {
247
+ p.log.warn("Couldn't check that the release starts. Open the app to make sure.");
248
+ continue;
249
+ }
250
+ if (event.step === "boot-failed") {
251
+ spinner.error(`Release ${event.release} didn't start`);
252
+ p.log.message(event.message);
253
+ if (event.restored) p.log.info(`${name} is back on ${event.restored}.`);
254
+ else p.log.warn(`${name} has no earlier release to go back to.`);
255
+ process.exitCode = 1;
256
+ return;
257
+ }
258
+ if (event.step === "storage-failed") {
259
+ p.log.warn(`Storage isn't set up: ${event.message}. The app runs; files won't work yet.`);
260
+ continue;
261
+ }
244
262
  spinner.message(labels[event.step] ?? event.step);
245
263
  }
246
264
  }
@@ -561,7 +579,7 @@ const remove = defineCommand({
561
579
  },
562
580
  "drop-database": {
563
581
  type: "boolean",
564
- description: "Also drop the app's schema and all its data"
582
+ description: "Also drop the app's schema, its files and all its data"
565
583
  },
566
584
  yes: {
567
585
  type: "boolean",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wervt/cli",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "Deploy and manage apps on wervt.",
5
5
  "keywords": [
6
6
  "agents",
package/skill/SKILL.md CHANGED
@@ -34,7 +34,8 @@ The app comes with `AGENTS.md`, skills in `.claude/skills/` and a deploy workflo
34
34
  `AGENTS.md` before writing code** and follow it: server routes, valibot validation, Drizzle schema
35
35
  and migrations, live data with shapes, users, logging, and what the isolate runtime can't do
36
36
  (no filesystem, no child processes, no long-running work, no WebSockets). Periodic work goes
37
- into tasks (`defineTask` + `nitro.scheduledTasks`), which wervt runs on schedule.
37
+ into tasks (`defineTask` + `nitro.scheduledTasks`), which wervt runs on schedule. Files go into
38
+ the app's own bucket with ablage (`pnpm add ablage`, no configuration).
38
39
 
39
40
  Before picking a name, run `wervt apps` so you don't overwrite an existing app. If the user named an
40
41
  existing app, work in its repository instead.