spine-framework 0.3.14 → 0.3.15

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.
@@ -356,18 +356,26 @@ async function upsertIntegrations(appId: string, records: any[], dryRun: boolean
356
356
  continue
357
357
  }
358
358
 
359
+ // Only include fields that exist in the database schema
360
+ const cleanRecord = {
361
+ name: record.name,
362
+ slug: record.slug,
363
+ provider: record.provider,
364
+ status: record.status,
365
+ is_active: record.is_active,
366
+ config: record.config,
367
+ app_id: appId,
368
+ }
369
+
359
370
  const { error } = await adminDb
360
371
  .from('integrations')
361
- .upsert({
362
- ...record,
363
- app_id: appId,
364
- }, {
365
- onConflict: 'app_id,name',
372
+ .upsert(cleanRecord, {
373
+ onConflict: 'slug',
366
374
  ignoreDuplicates: false
367
375
  })
368
376
 
369
377
  if (error) {
370
- result.errors.push(`${record.name}: ${error.message}`)
378
+ result.errors.push(`${record.slug}: ${error.message}`)
371
379
  } else {
372
380
  result.inserted++
373
381
  }
package/CHANGELOG.md CHANGED
@@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.3.15] — 2026-06-09
8
+ - Fixed `upsertIntegrations` in install-app.ts — now explicitly picks only valid DB columns (name, slug, provider, status, is_active, config) instead of spreading entire record, preventing "description column not found" errors
9
+
7
10
  ## [0.3.14] — 2026-06-09
8
11
  - Fixed `integrations.json` handler config format — changed `"handler": "funnel-signal"` to `"handler": { "path": "funnel-signal" }` to match `integration-routes.ts` step 8 lookup at `config.handler?.path`
9
12
  - Removed orphaned `on_funnel_signal_created` trigger from `triggers.json` — the trigger engine routes exclusively through `runPipeline(trigger.pipeline_id, ...)` and has no path to directly invoke a custom function; scoring now happens inline in `custom_funnel-signal.ts`
@@ -1 +1 @@
1
- {"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/install-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAunBxC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAgB1D"}
1
+ {"version":3,"file":"install-app.d.ts","sourceRoot":"","sources":["../../../.framework/cli/commands/install-app.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA+nBxC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAgB1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spine-framework",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "private": false,
5
5
  "description": "Spine — enterprise application framework built on Supabase + Netlify + React",
6
6
  "type": "module",