@tyhld/conductor 0.12.87 → 0.12.88
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/README.md +2 -0
- package/dist/autoupdate.js +8 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -83,6 +83,8 @@ node dist/cli.js start # もしくは scripts/conductor-start.sh(
|
|
|
83
83
|
> APPLY=1 bash "$(npm root -g)/@tyhld/conductor/scripts/autoupdate-install.sh" # 入れる
|
|
84
84
|
> ~/.tyhld/bin/tyhld-selfcheck --now # 自己診断を1回
|
|
85
85
|
> ```
|
|
86
|
+
> ★更新の窓で打つ行(ノートPC → メインPC → 社員PC・Ubuntu と PowerShell・再起動後の確かめ・止まったときの読み方)は1枚にまとめてあります: [`docs/自社PC-更新の窓-手順書.md`](docs/自社PC-更新の窓-手順書.md)。仕組みと決まりは [ADR-027](docs/adr/ADR-027-staged-autoupdate-own-pcs.md)。
|
|
87
|
+
>
|
|
86
88
|
> 鍵(`~/.tyhld/bin/autoupdate/enabled`)・更新係と自己診断のタイマー・Claude Code 自身の自動更新を止める設定(`DISABLE_AUTOUPDATER=1`)を置きます。Claude Code が公式推奨の1方式(`curl -fsSL https://claude.ai/install.sh | bash`)だけになっていなければ、人が打つ行を出して止まります。お客さまの導入台本(`sales-template/install.sh`・`setup.sh`)には入っていません。
|
|
87
89
|
|
|
88
90
|
---
|
package/dist/autoupdate.js
CHANGED
|
@@ -26,6 +26,8 @@
|
|
|
26
26
|
* 指名(~/.tyhld/bin/autoupdate/claude-pin)を書く。戻すときも指名で戻す。最低版より古い版へは戻さない。
|
|
27
27
|
* ・候補の版(conductor=公開 npm の latest/Claude Code=公式の安定版)を見つけたら、自己診断に
|
|
28
28
|
* 載せて管制へ届ける。★先行機かどうかはこの機では決めない(機体名をコードに書かない・管制が決める)。
|
|
29
|
+
* 管制が目標の版の口で role:"follower" を返した機は、候補を探さない・候補の自己診断を流さない
|
|
30
|
+
* (欄が無い・読めないときは今までどおり=全PCが流す・便 9a81e458)。
|
|
29
31
|
*
|
|
30
32
|
* 【控え】~/.tyhld/bin/autoupdate/state.json(★職人が書けない場所。途中で電源が切れても続きから動く)。
|
|
31
33
|
*/
|
|
@@ -56,6 +58,8 @@ export const HELD_RECHECK_MS = 60 * 60 * 1000;
|
|
|
56
58
|
/** 候補を届けられなかったとき、もう一度届けに行くまでの間隔。 */
|
|
57
59
|
export const CANDIDATE_RETRY_MS = 24 * 60 * 60 * 1000;
|
|
58
60
|
const SEMVER = /^\d+\.\d+\.\d+$/;
|
|
61
|
+
/** 管制が返す役の語(★読むだけ。どの機が先行機かは管制が決める)。 */
|
|
62
|
+
const TARGET_ROLES = ['leader', 'follower'];
|
|
59
63
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
60
64
|
// 置き場
|
|
61
65
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -175,6 +179,7 @@ export async function fetchTarget(d, conductorVersion) {
|
|
|
175
179
|
reason: typeof b.reason === 'string' ? b.reason : null,
|
|
176
180
|
checkAgainMin: min,
|
|
177
181
|
ready: b.ready === true,
|
|
182
|
+
role: TARGET_ROLES.includes(b.role) ? b.role : null,
|
|
178
183
|
},
|
|
179
184
|
detail: `HTTP ${res.status}`,
|
|
180
185
|
};
|
|
@@ -490,7 +495,9 @@ export async function runUpdater(d) {
|
|
|
490
495
|
if (!comp || !want) {
|
|
491
496
|
removeDrain(d, s);
|
|
492
497
|
s.busySince = null;
|
|
493
|
-
|
|
498
|
+
// ★後続の機は候補を探さない・候補の自己診断を流さない(役は管制が決める・欄が無ければ今までどおり)。
|
|
499
|
+
if (target.role !== 'follower')
|
|
500
|
+
await reportCandidates(d, s, installed, claudeNow?.version ?? null);
|
|
494
501
|
return done(d, s, 'none', `目標の版と同じです(conductor ${installed ?? '不明'}・Claude Code ${claudeNow?.version ?? '不明'})`);
|
|
495
502
|
}
|
|
496
503
|
// ⑤ 全現場が空きか。
|