Fix packaging: ship the full backend tree (0.1.0:46)
The image COPY'd backend/server.py + a few subdirs but missed core_migrations.py,
backend/migrations/, and the Phase-1 modules (thesis_review/entity_merge/
entity_jobs). On the box the migrations never ran (tables absent) and those
endpoints 503'd ("Jobs unavailable"). Now COPY backend wholesale (.dockerignore
keeps __pycache__/data out). Bump to 0.1.0:46.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -52,14 +52,13 @@ RUN pip install --no-cache-dir \
|
|||||||
mcp==1.2.0
|
mcp==1.2.0
|
||||||
|
|
||||||
# ── Application source ──────────────────────────────────────────
|
# ── Application source ──────────────────────────────────────────
|
||||||
COPY backend/server.py /app/backend/server.py
|
# Whole backend tree: server.py + all top-level modules (core_migrations,
|
||||||
COPY backend/email_integration /app/backend/email_integration
|
# thesis_review, entity_merge, entity_jobs) + migrations/ + ingest/ + mcp/ +
|
||||||
# Phase-0 substrate: ingest pipeline (entity resolution + backfill) and the
|
# email_integration/. Earlier piecemeal COPYs missed core_migrations.py, the
|
||||||
# CRM MCP server. Shipped alongside the web server so the one-time index build
|
# migrations/ dir, and the Phase-1 modules — so the schema migrations never ran
|
||||||
# and the (manually-run) MCP server can execute on the box where /data/crm.db
|
# and the thesis / index-job endpoints 503'd ("Jobs unavailable") on the box.
|
||||||
# lives. See start9/0.4/INGEST_PACKAGING.md.
|
# .dockerignore keeps __pycache__ and data/ out of the context.
|
||||||
COPY backend/ingest /app/backend/ingest
|
COPY backend /app/backend
|
||||||
COPY backend/mcp /app/backend/mcp
|
|
||||||
COPY frontend /app/frontend
|
COPY frontend /app/frontend
|
||||||
|
|
||||||
# ── StartOS wrapper scripts ─────────────────────────────────────
|
# ── StartOS wrapper scripts ─────────────────────────────────────
|
||||||
|
|||||||
@@ -10,8 +10,9 @@ export const PACKAGE_TITLE = 'Ten31 Database'
|
|||||||
// * 0.1.0:41 (frontend persists auth across refreshes)
|
// * 0.1.0:41 (frontend persists auth across refreshes)
|
||||||
// * 0.1.0:42 (Gmail integration) / 0.1.0:43 (Gmail POST-body hotfix)
|
// * 0.1.0:42 (Gmail integration) / 0.1.0:43 (Gmail POST-body hotfix)
|
||||||
// * 0.1.0:44 (Phase-0 ingest + MCP server in image; build-index action)
|
// * 0.1.0:44 (Phase-0 ingest + MCP server in image; build-index action)
|
||||||
// * Current: 0.1.0:45 (Phase-1 thesis system; dual approval; merge review; in-app index)
|
// * 0.1.0:45 (Phase-1 thesis system; dual approval; merge review; in-app index)
|
||||||
export const PACKAGE_VERSION = '0.1.0:45'
|
// * Current: 0.1.0:46 (packaging fix: ship full backend so migrations run + endpoints work)
|
||||||
|
export const PACKAGE_VERSION = '0.1.0:46'
|
||||||
|
|
||||||
export const DATA_MOUNT_PATH = '/data'
|
export const DATA_MOUNT_PATH = '/data'
|
||||||
export const WEB_PORT = 8080
|
export const WEB_PORT = 8080
|
||||||
|
|||||||
@@ -6,8 +6,9 @@ import { v_0_1_0_42 } from './v0.1.0.42'
|
|||||||
import { v_0_1_0_43 } from './v0.1.0.43'
|
import { v_0_1_0_43 } from './v0.1.0.43'
|
||||||
import { v_0_1_0_44 } from './v0.1.0.44'
|
import { v_0_1_0_44 } from './v0.1.0.44'
|
||||||
import { v_0_1_0_45 } from './v0.1.0.45'
|
import { v_0_1_0_45 } from './v0.1.0.45'
|
||||||
|
import { v_0_1_0_46 } from './v0.1.0.46'
|
||||||
|
|
||||||
export const versionGraph = VersionGraph.of({
|
export const versionGraph = VersionGraph.of({
|
||||||
current: v_0_1_0_45,
|
current: v_0_1_0_46,
|
||||||
other: [v_0_1_0_39, v_0_1_0_40, v_0_1_0_41, v_0_1_0_42, v_0_1_0_43, v_0_1_0_44],
|
other: [v_0_1_0_39, v_0_1_0_40, v_0_1_0_41, v_0_1_0_42, v_0_1_0_43, v_0_1_0_44, v_0_1_0_45],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import { VersionInfo } from '@start9labs/start-sdk'
|
||||||
|
|
||||||
|
// Packaging fix for 0.1.0:45.
|
||||||
|
//
|
||||||
|
// 0.1.0:44/:45 shipped a Dockerfile that COPY'd backend/server.py and a few
|
||||||
|
// subdirs piecemeal, but MISSED backend/core_migrations.py, the backend/migrations/
|
||||||
|
// dir, and the Phase-1 modules (thesis_review/entity_merge/entity_jobs). Result on
|
||||||
|
// the box: the in-app schema migrations never ran (the new tables were absent) and
|
||||||
|
// the thesis / index-job endpoints returned 503 ("Jobs unavailable"). The index
|
||||||
|
// build also could not run (canonical tables missing). This release COPYs the whole
|
||||||
|
// backend tree, so the migrations run on boot and all endpoints work. No data
|
||||||
|
// migration; the live /data volume is preserved.
|
||||||
|
export const v_0_1_0_46 = VersionInfo.of({
|
||||||
|
version: '0.1.0:46',
|
||||||
|
releaseNotes: {
|
||||||
|
en_US: [
|
||||||
|
'Fix: the container image was missing the migration runner, the migrations',
|
||||||
|
'directory, and the Phase-1 backend modules, so the new tables never got',
|
||||||
|
'created and the thesis / index-job features were unavailable on the server.',
|
||||||
|
'The image now ships the full backend; migrations run on boot (additively —',
|
||||||
|
'your data is preserved) and the thesis, duplicate-review, and index actions',
|
||||||
|
'work.',
|
||||||
|
].join(' '),
|
||||||
|
},
|
||||||
|
migrations: {
|
||||||
|
up: async () => {},
|
||||||
|
down: async () => {},
|
||||||
|
},
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user