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:
Keysat
2026-06-05 11:36:56 -05:00
parent 6b3c3aebec
commit bdf9bec4ff
4 changed files with 42 additions and 12 deletions
+7 -8
View File
@@ -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 ─────────────────────────────────────
+3 -2
View File
@@ -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
+3 -2
View File
@@ -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],
}) })
+29
View File
@@ -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 () => {},
},
})