Skip to content

Working copies — monorepo vs ~/keyword-volume

Two locations hold copies of this project's code on data@isog. They are not symlinked or auto-synced; the distinction matters for editing.

The two locations

Path Role
/home/data/mimi/monorepo/data_science/keyword-volume/ Source of truth. Git-tracked under the monorepo. Where you make changes, run tests, build the KB.
/home/data/keyword-volume/ Production runtime working copy. Where keep_running.sh actually executes. Some scripts (notably keep_running.sh, demo_app/run_demo.py, and the recovery slurm) are launched from here, not from the monorepo.

What runs from where

Component Run from Notes
keep_running.sh (orchestrator) ~/keyword-volume/ The script's first non-tracing line is cd ~/keyword-volume \|\| exit 1 — it always operates inside the home working copy regardless of where it was launched from.
demo_app/run_demo.py ~/keyword-volume/demo_app/ Per memory feedback_sync_demo_app: copy changes here after editing in monorepo.
process_keywords_recovery.slurm ~/keyword-volume/ (only) Recovery script for missed processing — never deployed to monorepo. Memory project_processing_recovery_script.
The keyword-volume KB (this site) monorepo mkdocs service keyword-volume-kb points at monorepo/.../kb/. Memory project_kb_no_home_sync.

Rules

  1. Edit in monorepo first. That's the source of truth.
  2. Sync to ~/keyword-volume/ only when the running process needs it. Per memory feedback_no_overwrite_home_scripts: always ask before overwriting files in ~/keyword-volume/. Don't blindly rsync.
  3. KB-ANCHORs must be applied to both copies when the file lives in both placeskeep_running.sh is the only such file with anchors today.

Failure mode this guards against

The split exists because some scripts need to be edited while production is running and need predictable on-disk state across operator restarts. Letting them live only in monorepo would mean every git pull could change runtime behaviour mid-cycle; letting them live only in ~/keyword-volume/ would lose version control. Two copies + explicit sync gives operators a moment to verify before the new code goes live.

See also

  • keep-running — the canonical example of a script that runs from ~/keyword-volume/
  • Memory: feedback_no_overwrite_home_scripts, feedback_sync_demo_app, project_kb_no_home_sync, project_processing_recovery_script