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.
|
|
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",
|
package/runtime/server.mjs
CHANGED
|
@@ -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
|
-
"
|
|
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
|
});
|