insta 0.1.1 → 0.1.2

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.
@@ -41,7 +41,7 @@ export function parseWatchPaths(raw) {
41
41
  throw new Error("watch paths need at least one pattern, e.g. 'apps/web/**,packages/ui/**' (quote them, or the shell expands the *)");
42
42
  return out;
43
43
  }
44
- // Build/start come from detection only: the platform's nixpacks lane fails a build whose commands differ from it.
44
+ // Persisted commands constrain builder selection; automatic detection must leave them unset.
45
45
  // autoDeploy rides along only when switched off: a public repo 400s on autoDeploy: true.
46
46
  export function sourceBody(src, c, o) {
47
47
  const repo = src.source === 'app'
@@ -50,8 +50,6 @@ export function sourceBody(src, c, o) {
50
50
  return {
51
51
  ...repo,
52
52
  rootDir: c.rootDir,
53
- buildCommand: c.buildCommand,
54
- startCommand: c.startCommand,
55
53
  port: o.port !== undefined ? parsePort(o.port) : c.port,
56
54
  ...(o.repoBranch ? { branch: o.repoBranch } : {}),
57
55
  ...(o.autoDeploy === false ? { autoDeploy: false } : {}),
@@ -121,6 +121,16 @@ export function validateManifest(m) {
121
121
  if (svc.port !== undefined && (!Number.isInteger(svc.port) || svc.port < 1 || svc.port > 65535)) {
122
122
  problems.push(`${where}: port must be an integer between 1 and 65535, got: ${svc.port}`);
123
123
  }
124
+ // A worker is PORTLESS: the platform deploys it as its own port-0 service, so nothing is routed
125
+ // to it and nothing probes it. The server's three refusals, said here before the upload.
126
+ if (svc.type === 'worker') {
127
+ if (svc.port !== undefined)
128
+ problems.push(`${where}.port: a worker has no routed port — remove it (a worker is portless; declare type: web to serve HTTP)`);
129
+ if (svc.healthcheck !== undefined)
130
+ problems.push(`${where}.healthcheck: a worker has no HTTP endpoint to probe — its health is the machine's state; remove it (or declare type: web)`);
131
+ if (svc.alwaysOn === false)
132
+ problems.push(`${where}.alwaysOn: a worker cannot scale to zero — nothing is routed to it, so nothing would wake it; remove alwaysOn or set it true`);
133
+ }
124
134
  if (svc.type === 'web' && !svc.healthcheck)
125
135
  problems.push(`${where}: web services must declare a healthcheck path`);
126
136
  if (svc.healthcheck && !String(svc.healthcheck).startsWith('/'))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "insta",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "description": "InstaCloud CLI — a thin client of the platform control-plane API.",
6
6
  "keywords": [