@lotics/cli 0.63.0 → 0.64.0

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.
@@ -235,7 +235,7 @@ export declare function undeclaredCapabilities(sourceText: string, declared: Rec
235
235
  */
236
236
  export declare function appDeploy(client: LoticsClient, args: {
237
237
  projectDir?: string;
238
- message?: string;
238
+ message: string;
239
239
  }): Promise<void>;
240
240
  /**
241
241
  * `lotics app dev [path] [--port=5174] [--vite-port=5173]`
@@ -806,7 +806,11 @@ function readAppSourceText(projectDir) {
806
806
  * both archives in R2, creates an app_versions row, and atomically advances
807
807
  * the app's current_version pointer.
808
808
  */
809
- export async function appDeploy(client, args) {
809
+ export async function appDeploy(client,
810
+ // `message` is required — each deploy is a version row read back by
811
+ // `lotics app versions`; a blank message loses the audit trail. The CLI
812
+ // enforces non-empty at the dispatch; the type enforces it for every caller.
813
+ args) {
810
814
  const projectDir = path.resolve(args.projectDir ?? process.cwd());
811
815
  const meta = readAppMeta(projectDir);
812
816
  // Pre-flight (GAP-29): a capability the code calls but the manifest doesn't
package/dist/cli.js CHANGED
@@ -71,7 +71,8 @@ COMMANDS
71
71
  Download all files on a record file field
72
72
  lotics app create <name> [path] Create a new custom-code app + scaffold locally
73
73
  lotics app pull <app_id> [path] Bootstrap full local env (source + npm install + types)
74
- lotics app deploy [-m <message>] Build + upload current dir as a new version
74
+ lotics app deploy -m <message> Build + upload current dir as a new version
75
+ (-m is required — it's the version's audit trail)
75
76
  (code + queries only — workflow bindings are
76
77
  managed by set_app_workflow / remove_app_workflow)
77
78
  lotics app versions [app_id] Show deploy history newest-first (version,
@@ -598,7 +599,7 @@ async function main() {
598
599
  console.error("Usage:");
599
600
  console.error(" lotics app create <name> [path] Scaffold a new app locally");
600
601
  console.error(" lotics app pull <app_id> [path] Pull an existing app for local editing");
601
- console.error(" lotics app deploy [-m <message>] Build + upload the current directory");
602
+ console.error(" lotics app deploy -m <message> Build + upload the current directory (-m required)");
602
603
  console.error(" lotics app versions [app_id] Show deploy history (version, when, who, message)");
603
604
  console.error(" lotics app codegen [path] Regenerate .lotics/* (types + field ids) — no deploy");
604
605
  console.error(" lotics app workflow run <alias> '<json>' Execute a bound app workflow end-to-end");
@@ -729,7 +730,14 @@ async function main() {
729
730
  }
730
731
  if (subcommand === "deploy") {
731
732
  // The message is either `-m <message>` or a bare positional arg after `deploy`.
732
- const message = flags.message ?? toolArgs;
733
+ // Required: every deploy is a version row, and `lotics app versions` reads
734
+ // the message back — a blank one makes the deploy history useless.
735
+ const message = (flags.message ?? toolArgs)?.trim();
736
+ if (!message) {
737
+ console.error('Usage: lotics app deploy -m "<what changed + why>"');
738
+ console.error("A deploy message is required — it's the version's audit trail (see `lotics app versions`).");
739
+ process.exit(1);
740
+ }
733
741
  await appDeploy(client, { message });
734
742
  return;
735
743
  }
package/dist/src/cli.js CHANGED
@@ -49203,7 +49203,8 @@ COMMANDS
49203
49203
  Download all files on a record file field
49204
49204
  lotics app create <name> [path] Create a new custom-code app + scaffold locally
49205
49205
  lotics app pull <app_id> [path] Bootstrap full local env (source + npm install + types)
49206
- lotics app deploy [-m <message>] Build + upload current dir as a new version
49206
+ lotics app deploy -m <message> Build + upload current dir as a new version
49207
+ (-m is required \u2014 it's the version's audit trail)
49207
49208
  (code + queries only \u2014 workflow bindings are
49208
49209
  managed by set_app_workflow / remove_app_workflow)
49209
49210
  lotics app versions [app_id] Show deploy history newest-first (version,
@@ -49683,7 +49684,7 @@ async function main() {
49683
49684
  console.error("Usage:");
49684
49685
  console.error(" lotics app create <name> [path] Scaffold a new app locally");
49685
49686
  console.error(" lotics app pull <app_id> [path] Pull an existing app for local editing");
49686
- console.error(" lotics app deploy [-m <message>] Build + upload the current directory");
49687
+ console.error(" lotics app deploy -m <message> Build + upload the current directory (-m required)");
49687
49688
  console.error(" lotics app versions [app_id] Show deploy history (version, when, who, message)");
49688
49689
  console.error(" lotics app codegen [path] Regenerate .lotics/* (types + field ids) \u2014 no deploy");
49689
49690
  console.error(" lotics app workflow run <alias> '<json>' Execute a bound app workflow end-to-end");
@@ -49807,7 +49808,12 @@ Available workspaces:`);
49807
49808
  return;
49808
49809
  }
49809
49810
  if (subcommand === "deploy") {
49810
- const message = flags.message ?? toolArgs;
49811
+ const message = (flags.message ?? toolArgs)?.trim();
49812
+ if (!message) {
49813
+ console.error('Usage: lotics app deploy -m "<what changed + why>"');
49814
+ console.error("A deploy message is required \u2014 it's the version's audit trail (see `lotics app versions`).");
49815
+ process.exit(1);
49816
+ }
49811
49817
  await appDeploy(client, { message });
49812
49818
  return;
49813
49819
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lotics/cli",
3
- "version": "0.63.0",
3
+ "version": "0.64.0",
4
4
  "description": "Lotics SDK and CLI for AI agents",
5
5
  "type": "module",
6
6
  "bin": {