gencow 0.1.237 → 0.1.239

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.
@@ -1,4 +1,5 @@
1
1
  import { execSync } from "child_process";
2
+ import { randomUUID } from "node:crypto";
2
3
  import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from "fs";
3
4
  import { dirname, resolve } from "path";
4
5
  import { fetchAppDiagnosticLogsViaRest, normalizeDiagnosticLogLines } from "./app-diagnostics.mjs";
@@ -149,6 +150,7 @@ export function createDeployPackageRuntime({
149
150
  loadInternalBundleImpl,
150
151
  loadDeployAuditorImpl,
151
152
  runCodegenForDeployImpl,
153
+ randomUUIDImpl = randomUUID,
152
154
  } = {}) {
153
155
  let migrationProjectConfig = null;
154
156
  let preparedDeployCodegenArtifacts = null;
@@ -373,6 +375,7 @@ export function createDeployPackageRuntime({
373
375
  );
374
376
  infoImpl("Code: BACKEND_CAPABILITY_EMPTY");
375
377
  infoImpl("Stage: candidate");
378
+ infoImpl(`Correlation ID: deploy_${randomUUIDImpl()}`);
376
379
  infoImpl("Next action: EDIT_AND_CHECK");
377
380
  infoImpl("Add a backend procedure, or use gencow static <build-directory> for a frontend-only app.");
378
381
  exitImpl(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gencow",
3
- "version": "0.1.237",
3
+ "version": "0.1.239",
4
4
  "description": "Gencow — AI Backend Engine",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,9 +37,9 @@
37
37
  "ai": "^6.0.233",
38
38
  "@types/node": "^25.9.5",
39
39
  "better-auth": "^1.6.23",
40
+ "@gencow/core": "0.1.44",
40
41
  "@gencow/client": "0.2.7",
41
- "@gencow/react": "0.2.7",
42
- "@gencow/core": "0.1.44"
42
+ "@gencow/react": "0.2.7"
43
43
  },
44
44
  "scripts": {
45
45
  "prebuild": "pnpm --filter @gencow/migration-contract run build && pnpm --filter @gencow/server run build",
@@ -9911,8 +9911,7 @@ var init_deployment_executor_authority_contract = __esm({
9911
9911
  "runtime_lifecycle_requests",
9912
9912
  "runtime_stop_intents",
9913
9913
  "runtime_wake_recovery_operations",
9914
- "serving_metering_events",
9915
- "serving_metering_hourly",
9914
+ "backup_reader_reconciliation_receipts",
9916
9915
  "tenant_database_authority_receipts",
9917
9916
  "tenant_database_authority_requests"
9918
9917
  );
@@ -103930,6 +103929,27 @@ async function ensurePlatformSchemaUpgrade(params) {
103930
103929
  await ensureAppRuntimePreflightSchema({ rawSql: params.rawSql });
103931
103930
  await ensureAppMigrationDiagnosticsSchema({ rawSql: params.rawSql });
103932
103931
  await ensureAppDeprecatedApiSnapshotsSchema({ rawSql: params.rawSql });
103932
+ await params.rawSql(`CREATE TABLE IF NOT EXISTS backup_reader_reconciliation_receipts (
103933
+ app_id INTEGER PRIMARY KEY REFERENCES apps(id) ON DELETE CASCADE,
103934
+ app_instance_id UUID NOT NULL,
103935
+ environment TEXT NOT NULL CHECK (environment IN ('dev', 'qc', 'prod')),
103936
+ database_binding_fingerprint TEXT NOT NULL,
103937
+ state TEXT NOT NULL CHECK (state IN ('observed', 'applying', 'ready', 'failed_retryable')),
103938
+ phase TEXT NOT NULL CHECK (phase IN ('observed', 'grants', 'verifying', 'terminal')),
103939
+ pre_snapshot_digest TEXT,
103940
+ post_snapshot_digest TEXT,
103941
+ correlation_id TEXT NOT NULL,
103942
+ attempt INTEGER NOT NULL DEFAULT 0 CHECK (attempt >= 0),
103943
+ lease_owner_id TEXT,
103944
+ lease_epoch BIGINT NOT NULL DEFAULT 0 CHECK (lease_epoch >= 0),
103945
+ lease_expires_at TIMESTAMPTZ,
103946
+ safe_reason TEXT,
103947
+ observed_at TIMESTAMPTZ NOT NULL DEFAULT now(),
103948
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
103949
+ CHECK ((lease_owner_id IS NULL) = (lease_expires_at IS NULL)),
103950
+ CHECK (state <> 'ready' OR (phase = 'terminal' AND post_snapshot_digest IS NOT NULL))
103951
+ )`);
103952
+ await params.rawSql(`CREATE INDEX IF NOT EXISTS backup_reader_reconciliation_receipts_state_idx ON backup_reader_reconciliation_receipts (environment, state, updated_at, app_id)`);
103933
103953
  await params.rawSql(`ALTER TABLE deployments ADD COLUMN IF NOT EXISTS env TEXT DEFAULT 'dev'`);
103934
103954
  await ensureDeploymentRuntimeMetadataSchema(params.rawSql);
103935
103955
  await ensureDeploymentControlPlaneSchema({ rawSql: params.rawSql });
@@ -416533,6 +416553,11 @@ async function generateCanonicalSchemaSql(params) {
416533
416553
  stage = "output_parse";
416534
416554
  result2 = findGeneratedSql(outputRoot);
416535
416555
  } catch (error51) {
416556
+ const processError = error51;
416557
+ const stderr = typeof processError.stderr === "string" ? processError.stderr : Buffer.isBuffer(processError.stderr) ? processError.stderr.toString("utf8") : "";
416558
+ if (stderr.trim()) {
416559
+ console.error(`[schema-proof] ${stage} tool diagnostic: ${stderr.trim().slice(-4e3)}`);
416560
+ }
416536
416561
  failure = error51 instanceof CanonicalSchemaProofError ? error51 : classifyCanonicalSchemaProofFailure(stage, error51);
416537
416562
  }
416538
416563
  if (proofRoot) {
@@ -16,10 +16,10 @@ import {
16
16
 
17
17
  export default defineApi({
18
18
  procedures: {
19
- itemsList,
20
- itemsGet,
21
- itemsCreate,
22
- itemsUpdate,
23
- itemsRemove,
19
+ "items.list": itemsList,
20
+ "items.get": itemsGet,
21
+ "items.create": itemsCreate,
22
+ "items.update": itemsUpdate,
23
+ "items.remove": itemsRemove,
24
24
  },
25
25
  });
@@ -17,12 +17,12 @@ import { list as filesList, upload as filesUpload } from "./files";
17
17
 
18
18
  export default defineApi({
19
19
  procedures: {
20
- tasksList,
21
- tasksGet,
22
- tasksCreate,
23
- tasksUpdate,
24
- tasksDelete,
25
- filesList,
26
- filesUpload,
20
+ "tasks.list": tasksList,
21
+ "tasks.get": tasksGet,
22
+ "tasks.create": tasksCreate,
23
+ "tasks.update": tasksUpdate,
24
+ "tasks.delete": tasksDelete,
25
+ "files.list": filesList,
26
+ "files.upload": filesUpload,
27
27
  },
28
28
  });