📝 DMS-NX__ISE_v9.7__Chapter4_Checkpoint_2026-09-26_3.mdv4.5 · 2026-09-28

DM2S/NX: Chapter 4 Checkpoint

Product: "DM2S/NX - The NextGen Document and Media Management System" (formerly DMS/NX, formerly ISE) Session: 2026-09-26 07:25 → 2026-09-27 05:40 AEST | Andrew.human & Claude Supersedes: DMS-NX__ISE_v9.6__Chapter4_Checkpoint_2026-09-26_2.md (kept, not overwritten). Chain: Chapter3_Checkpoint_2026-09-25_2 → Chapter4 → Chapter4_2 → this.

This is a full hand-over. §1 and §1b are what changed in Chapter 4 (§1b is new since _2). §4 onward carries forward everything from Chapter 3 that still applies.


0. Standing policies (Chapter 4 additions marked "New")


1. Done in Chapter 4

AudioProcessor full run on Clone: COMPLETE and VERIFIED

transcribe_pieces.sh v1.0.0: WORKS ON LIVE

Machines


1b. Done since _2 (2026-09-26 09:35 → 2026-09-27 05:40)

Mirror scripts: DONE

Coherence check: ALL 16 .json FILES AGREE (2026-09-27 ~05:30)

Transcription policy (decided)

Audio search findings

Other


2. Open, in order

  1. Transcription speed diagnosis on Live. The work folder /tmp/transcribe.Aa1kQc is still there:

    grep -iE 'eval time|tokens per second|n_threads|total time' /tmp/transcribe.Aa1kQc/piece_0000.log
    wc -w /tmp/transcribe.Aa1kQc/piece_0000.out
    nproc; free -m

    Then run the same file on Clone for a direct comparison (pull it from Clone):

    rsync --partial -a root@128.199.200.202:/root/instagram-1790350777642.mp4 /root/
    KEEP=1 /root/transcribe_pieces.sh /root/instagram-1790350777642.mp4
  2. transcribe_pieces v1.0.1, after item 1:

    • an -n cap if the model runs on after the transcript
    • piece overlap or silence cutting
    • possibly a llama-server rebuild so the model stays loaded
    • then an audio_store.json writer for opt-in educational items only (not every spoken item; see §1b transcription policy)
  3. What are 2959 (1h00m50s) and 6240 (1h01m31s)? Both are tagged male, lecture, interview, slow. If they're talks, they're the first real transcription targets.

  4. AudioProcessor v1.0.4:

    • a single-instance lock (the PDFIndexer pattern)
    • the version and PID on every log line
    • a SIGTERM handler that prints an "interrupted" summary (the killed PID 14770 left none)
    • sec_per_window default 19.6 → 8.3
  5. Tag review (Chapter 3 task 2), now that full results exist. All of these can be fixed with a re-tag, no audio needed.

    • fast is on almost every item.
    • Opposites: slow, fast on 2846 and 2959, and dark, happy is common.
    • country on dance tracks.
    • music everywhere adds nothing.
    • podcast/lecture false positives on music.
    • Options: --top-k 1, top-1 only for opposite groups (tempo, mood, vocals), and dropping groups that don't discriminate.
  6. Duplicate audio uploads. These have identical durations and tags:

    • 6428/6433/6440 (6m29s)
    • 6429/6434/6441 (6m56s)
    • 5918/5920 (3m07s)
    • 5915/5954 (1m29s)

    The fix is the same SHA-256 "master copy" collapse planned for PDFs.

  7. Chapter 3 tasks 3 and 5–15 carry forward unchanged:

    • MediaSearch v1.6.0 audio support (needs the current MediaSearch.py uploaded; also check wildcard handling)
    • MediaSearch v1.5.3 speed
    • the bridge lock, and MediaSearch 1.5.2 onto Live
    • MediaIndexer excludes for avatars and thumbnails
    • ffprobe onto Live, and MediaProcessor v9.22
    • Clone umask
    • clean-ups
    • the Clone VM restore point
    • Live inventory baseline
    • clone_py_sync v1.0.2

    The Chapter 2/3 transcript item is dropped: Andrew now makes the transcript PDFs himself.

    Deploying MediaProcessor v9.21 on Live is still pending too.

  8. Unresolved conflict: the Chapter 3 checkpoint says glibc 2.12 on Live, Clone and Dev. Earlier notes say Live and Clone were upgraded to 2.17. Run ldd --version | head -1 on each machine to settle it.


3. Corrections to the Chapter 3 checkpoint


4. Mirror excludes

Done. Dev's scripts were already complete, and Clone's mirrorISE.sh now has the Clone-only excludes (see §1b). Mirror runs on both machines are safe.

Low priority, both machines: in mirror1.sh, unanchored excludes (.htaccess, index.html, manifest.json, cache/) match at every depth, so new or changed files with those names deeper in the tree on Live (e.g. attachments/.htaccess) never reach the mirror. Existing copies are kept. To exclude only the top level, anchor the pattern with a leading slash, e.g. --exclude /.htaccess.


5. Carried forward from Chapter 3 (still current)

Machines

Live (forum, 128.199.200.202) Clone (clone, 192.168.233.140) Dev (dev, 192.168.233.129)
Arch x86_64 x86_64 i686 (being retired)
RAM 2 GB 6 GB, 4 vCPU n/a
Role Production 64-bit Dev; heavy AI jobs (audio, transcription) Old Dev, keyword-only ISE
ffprobe MISSING /usr/local/bin/ffprobe /usr/bin/ffprobe (2.6.8)
tmux yes no (use nohup) n/a

Code versions

File Version State
MediaSearch.py 1.5.2 Dev and Clone. Live not updated (Andrew's call)
MediaProcessor.py ISE v9.21 Mock-tested, not deployed
AudioProcessor.py 1.0.3 Clone only. Full run complete
audio_vocab.txt 1.0.0 104 labels, 6 groups, sha1 54504f3cce
clap_diag.py 1.1.0 Clone
dev_py_sync.sh 1.0.2 Dev
transcribe_pieces.sh 1.0.0 Live. Clone is the target
/bin/mirrorISE.sh (Clone) Andrew's, + Clone-only excludes In use
/bin/json_push_audio_Clone_to_Live 2.1.0 (Andrew's naming) Clone. Real run OK 2026-09-27
json_md5_push.sh / json_md5_diff.sh 1.2.0 /bin. Main ISE_Data only by default

Operating procedure

Live (images and video):

cd / && /usr/local/bin/python3.8 /var/www/html/The_ISE_Project/MediaIndexer.py
cd / && nohup /usr/local/bin/python3.8 /var/www/html/The_ISE_Project/MediaProcessor.py --log > /dev/null 2>&1 &
tail -f /var/www/html/ISE_Data/mediaprocessor.log

Clone (audio). Check that nothing is already running first:

pgrep -fl AudioProcessor
cd / && /root/venv-audio-test/bin/python /var/www/html/The_ISE_Project/AudioProcessor.py --plan
cd / && nohup /root/venv-audio-test/bin/python /var/www/html/The_ISE_Project/AudioProcessor.py --log --monitor > /dev/null 2>&1 &
tail -f /var/www/html/ISE_Data/audioprocessor.log
rsync --partial -a /var/www/html/ISE_Data/audio_store.json root@128.199.200.202:/var/www/html/ISE_Data/

Other operating notes:

Key paths

/var/www/html/The_ISE_Project/   MediaSearch.py  MediaProcessor.py  MediaIndexer.py  AudioProcessor.py
audio_vocab.txt clap_diag.py ise_settings.py qf_Mediasearch_bridge.php
/var/www/html/ISE_Data/ media_store.json embeddings_store.json captions_store.json
audio_store.json (Clone writes, pushed to Live) audio_checkpoint.json (Clone only)
audio_manifest.tsv hf_cache/ frame_cache/ (keep on Live) caption_tmp/
/root/transcribe_pieces.sh /root/transcripts/ /root/models/qwen3-asr/ /root/models/smolvlm/
/root/llama.cpp/build/bin/llama-mtmd-cli /root/venv-audio-test/ (Clone)

DM2S/NX Chapter 4 checkpoint _3, 2026-09-27 05:45 AEST