@tyhld/conductor 0.12.49 → 0.12.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyhld/conductor",
3
- "version": "0.12.49",
3
+ "version": "0.12.50",
4
4
  "description": "采配くん管制の見守りアプリ(conductor-agent)。各PCで常駐し、中央(devlog-tracker)へ定期的に生存報告(heartbeat)を送る常駐CLI。",
5
5
  "type": "module",
6
6
  "bin": {
@@ -678,9 +678,13 @@ if [[ ${#missing_guard[@]} -gt 0 ]]; then
678
678
  fi
679
679
 
680
680
  # ★壊れた Python を固定パスへ置くと全現場が同時に止まる。置く前に構文を確認する。
681
- if ! python3 -m py_compile "${GUARD_FILES[@]/#/$GUARD_SRC_DIR/}"; then
681
+ # ★.pyc は配り元へ書かない=一時置き場へ向ける(update-guard.sh ①と同じ作法・便 07c14f64)。
682
+ pyc_tmp="$(mktemp -d)"
683
+ if ! PYTHONPYCACHEPREFIX="$pyc_tmp" python3 -m py_compile "${GUARD_FILES[@]/#/$GUARD_SRC_DIR/}"; then
684
+ rm -rf "$pyc_tmp"
682
685
  fail "番人一式の構文確認に失敗しました。固定パスは変更していません。"
683
686
  fi
687
+ rm -rf "$pyc_tmp"
684
688
 
685
689
  mkdir -p "$GUARD_HOME"
686
690
  for f in "${GUARD_FILES[@]}"; do
@@ -144,12 +144,16 @@ CODEX_NOTIFY_DST="$GUARD_HOME/codex-notify.py"
144
144
  if [[ -f "$CODEX_NOTIFY_SRC" ]]; then
145
145
  if [[ "$APPLY" == "1" ]]; then
146
146
  # 壊れた Python を固定パスへ置かない(番人一式と同じ作法)。
147
- if python3 -m py_compile "$CODEX_NOTIFY_SRC"; then
147
+ # ★.pyc は配り元へ書かない=一時置き場へ向ける(update-guard.sh ①と同じ・便 07c14f64)。
148
+ pyc_tmp="$(mktemp -d)"
149
+ if PYTHONPYCACHEPREFIX="$pyc_tmp" python3 -m py_compile "$CODEX_NOTIFY_SRC"; then
150
+ rm -rf "$pyc_tmp"
148
151
  mkdir -p "$GUARD_HOME"
149
152
  cp -f "$CODEX_NOTIFY_SRC" "$CODEX_NOTIFY_DST"
150
153
  chmod +x "$CODEX_NOTIFY_DST"
151
154
  info "完了の受け口を設置: $CODEX_NOTIFY_DST"
152
155
  else
156
+ rm -rf "$pyc_tmp"
153
157
  warn "完了の受け口の構文確認に失敗しました(設置をスキップ): $CODEX_NOTIFY_SRC"
154
158
  fi
155
159
  else
@@ -126,7 +126,8 @@ dist_record() {
126
126
  dist_notify() {
127
127
  [[ "$APPLY" == "1" ]] || return 0
128
128
  [[ -f "$DIST_NOTIFY" ]] || return 0
129
- python3 "$DIST_NOTIFY" "$DIST_LAST" >/dev/null 2>&1 || true
129
+ # ★配り元の隣の部品を import するので、配り元に .pyc を書かせない(①の構文確認と同じ理由)。
130
+ PYTHONDONTWRITEBYTECODE=1 python3 "$DIST_NOTIFY" "$DIST_LAST" >/dev/null 2>&1 || true
130
131
  }
131
132
 
132
133
  info "①-src 配り元の確認(公開済みの正規版だけを配ります)"
@@ -264,9 +265,15 @@ fi
264
265
  info "① 番人一式を設置: $GUARD_HOME"
265
266
  if [[ "$APPLY" == "1" ]]; then
266
267
  # 置く前に構文を確認する。壊れた Python を固定パスへ置くと全現場が同時に止まるため。
267
- if ! python3 -m py_compile "${INSTALL_FILES[@]/#/$GUARD_SRC_DIR/}"; then
268
+ # ★.pyc は配り元へ書かない=一時置き場へ向ける(PYTHONDONTWRITEBYTECODE は py_compile に効かない)。
269
+ # 配り元の __pycache__ に書くと、同じ配り元を並べて読む者(試験の写し・もう1本の設置)と
270
+ # 作り消しでぶつかり、壊れていないのに「構文確認に失敗」で止まる(便 07c14f64 で再現)。
271
+ pyc_tmp="$(mktemp -d)"
272
+ if ! PYTHONPYCACHEPREFIX="$pyc_tmp" python3 -m py_compile "${INSTALL_FILES[@]/#/$GUARD_SRC_DIR/}"; then
273
+ rm -rf "$pyc_tmp"
268
274
  fail "番人一式の構文確認に失敗しました。固定パスは変更していません。"
269
275
  fi
276
+ rm -rf "$pyc_tmp"
270
277
  mkdir -p "$GUARD_HOME"
271
278
  for f in "${INSTALL_FILES[@]}"; do
272
279
  cp -f "$GUARD_SRC_DIR/$f" "$GUARD_HOME/$f"
@@ -379,7 +386,7 @@ craftsman_backup() {
379
386
  # 知らせる側が控えの status を見て決める=ここに判断を二重に書かない。
380
387
  craftsman_notify() {
381
388
  [[ -f "$CRAFTSMAN_NOTIFY" ]] || return 0
382
- python3 "$CRAFTSMAN_NOTIFY" "$CRAFTSMAN_LAST" >/dev/null 2>&1 || true
389
+ PYTHONDONTWRITEBYTECODE=1 python3 "$CRAFTSMAN_NOTIFY" "$CRAFTSMAN_LAST" >/dev/null 2>&1 || true
383
390
  }
384
391
 
385
392
  # 直った回だけの呼び口。★確認のみ(APPLY!=1)のときは管制の札に触らない。