diff --git a/start9/0.4/Dockerfile b/start9/0.4/Dockerfile index 32265c7..0854086 100644 --- a/start9/0.4/Dockerfile +++ b/start9/0.4/Dockerfile @@ -52,14 +52,13 @@ RUN pip install --no-cache-dir \ mcp==1.2.0 # ── Application source ────────────────────────────────────────── -COPY backend/server.py /app/backend/server.py -COPY backend/email_integration /app/backend/email_integration -# Phase-0 substrate: ingest pipeline (entity resolution + backfill) and the -# CRM MCP server. Shipped alongside the web server so the one-time index build -# and the (manually-run) MCP server can execute on the box where /data/crm.db -# lives. See start9/0.4/INGEST_PACKAGING.md. -COPY backend/ingest /app/backend/ingest -COPY backend/mcp /app/backend/mcp +# Whole backend tree: server.py + all top-level modules (core_migrations, +# thesis_review, entity_merge, entity_jobs) + migrations/ + ingest/ + mcp/ + +# email_integration/. Earlier piecemeal COPYs missed core_migrations.py, the +# migrations/ dir, and the Phase-1 modules — so the schema migrations never ran +# and the thesis / index-job endpoints 503'd ("Jobs unavailable") on the box. +# .dockerignore keeps __pycache__ and data/ out of the context. +COPY backend /app/backend COPY frontend /app/frontend # ── StartOS wrapper scripts ───────────────────────────────────── diff --git a/start9/0.4/startos/utils.ts b/start9/0.4/startos/utils.ts index d0251e3..59936dd 100644 --- a/start9/0.4/startos/utils.ts +++ b/start9/0.4/startos/utils.ts @@ -10,8 +10,9 @@ export const PACKAGE_TITLE = 'Ten31 Database' // * 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: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) -export const PACKAGE_VERSION = '0.1.0:45' +// * 0.1.0:45 (Phase-1 thesis system; dual approval; merge review; in-app index) +// * 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 WEB_PORT = 8080 diff --git a/start9/0.4/startos/versions/index.ts b/start9/0.4/startos/versions/index.ts index 5250c04..8e49186 100644 --- a/start9/0.4/startos/versions/index.ts +++ b/start9/0.4/startos/versions/index.ts @@ -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_44 } from './v0.1.0.44' 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({ - current: v_0_1_0_45, - 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], + 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, v_0_1_0_45], }) diff --git a/start9/0.4/startos/versions/v0.1.0.46.ts b/start9/0.4/startos/versions/v0.1.0.46.ts new file mode 100644 index 0000000..ae74221 --- /dev/null +++ b/start9/0.4/startos/versions/v0.1.0.46.ts @@ -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 () => {}, + }, +})