30 lines
3.5 KiB
Markdown
30 lines
3.5 KiB
Markdown
# EMI production vs latest code — 2026-08-18
|
||
|
||
Read-only comparison. No fetch/pull, checkout, container/service change, or dirty-diff content inspection was performed.
|
||
|
||
## Committed-code relationship
|
||
|
||
- Mac mini `~/Projects/EMI/EMI-Backend`: `codex/bible-verse-notes` at `c257fd1ec762e009fb0764571561010f306ee3ce` (`Add local MarianMT translation service`); upstream: none. Remote: `gitea` (`https://git.reynafamily.com/adolforeyna/EMI-Backend.git`), fetch refspec `+refs/heads/*:refs/remotes/gitea/*`.
|
||
- Production checkout `aeroreyna@192.168.68.119:~/EMI-Backend`: `master` at `92320c9c8993308172282d6ac4437e19c752650a` (`Add monthly MongoDB backup script`); upstream: `origin/master`. Remote: `origin` (`http://192.168.68.119:3000/adolforeyna/EMI-Backend.git`), fetch refspec `+refs/heads/*:refs/remotes/origin/*`.
|
||
- Both commits are one-child descendants of common ancestor `65a4178e2b1491117ddb9e1b8a5ed7b53c4b5be3`; neither checkout contains the other tip object. Therefore committed code has diverged, not a simple ahead/behind relationship.
|
||
- Gitea read-only advertised `master` is `65a4178e…`; it does not advertise the Mac-mini tip or production tip. Thus neither current checkout tip is established as a remotely published latest branch tip.
|
||
- From the common ancestor, Mac-mini committed changes are: modified `.gitignore`, `README.md`, `docker-compose.yml`, `utils/chatTranslation.js`; added `translation-service/.dockerignore`, `translation-service/Dockerfile`, `translation-service/requirements.txt`, `translation-service/server.py`.
|
||
- From the common ancestor, production committed changes are: modified `.gitignore`; added `scripts/monthlyMongoBackup.sh`. The two committed `.gitignore` blobs differ. Production `docker-compose.yml` is unchanged in its committed tree; Mac-mini’s committed tree modifies it.
|
||
|
||
## Local WIP
|
||
|
||
- Mac mini has no staged changes; it has three unstaged tracked changes (`config/cookiesOptions.js`, `config/corsOptions.js`, `index.js`) and one untracked `.DS_Store`. This WIP is uncommitted and is separate from `c257fd1…`.
|
||
- Production checkout also has uncommitted state: unstaged `docker-compose.yml` and untracked `update.sh`; contents were intentionally not inspected. This is not part of production’s committed-code comparison.
|
||
|
||
## Runtime/container relationship
|
||
|
||
- The running container is `emi-backend-app-1` (`e9355e13bf21…`), image `emi-backend-app` / `sha256:0f245f65…`, running since `2026-08-17T21:20:23Z`; command is `node index.js` with workdir `/app`.
|
||
- `/app` is a read-write bind mount of `/home/aeroreyna/EMI-Backend`; `/app/node_modules` is separately volume-mounted. Therefore the running application files are served directly from the production checkout rather than from an immutable image copy.
|
||
- Runtime and checkout SHA-256 values match for `index.js`, `config/cookiesOptions.js`, and `config/corsOptions.js` (including the currently uncommitted checkout state). Git is not installed in the container, so an in-container Git revision could not be read; the bind mount plus matching file hashes establish the relevant application-file match.
|
||
|
||
## Verdict
|
||
|
||
Production is **diverged** from the latest available Mac-mini committed code, with additional uncommitted WIP on both checkouts; it is not safe to call production simply behind or ahead.
|
||
|
||
Minimal next decision required before any server update: select one explicit approved release commit/branch and decide how the production checkout’s dirty `docker-compose.yml` must be preserved or reconciled.
|