genetics-mcp 2.10.0 → 2.11.0
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.
|
Binary file
|
|
Binary file
|
package/bin/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"aarch64-apple-darwin": "
|
|
3
|
-
"aarch64-unknown-linux-musl": "
|
|
4
|
-
"x86_64-apple-darwin": "
|
|
5
|
-
"x86_64-unknown-linux-musl": "
|
|
2
|
+
"aarch64-apple-darwin": "490fc2e63df176db0c7fad4a6ed01d90103ac0839e3ac15a023dbe21c6cebf80",
|
|
3
|
+
"aarch64-unknown-linux-musl": "a4571fe7eb68778094fc77cb9230d1374f02b76857882ca1608c6593b32dedb3",
|
|
4
|
+
"x86_64-apple-darwin": "24c3dcf235f76419afb429a9f8f4a328ff52aa6dd53795042fa3060e2f2528e4",
|
|
5
|
+
"x86_64-unknown-linux-musl": "0fa8151588ab65921846da51f88683af4a0517286dcedb27418f596363fe2ca7"
|
|
6
6
|
}
|
|
Binary file
|
|
Binary file
|
package/genetics.mjs
CHANGED
|
@@ -1674,6 +1674,8 @@ function indexAdoptCurrent() {
|
|
|
1674
1674
|
if (p) rows.push({ dir: path.dirname(p), tenant: e.tenant, tenant_id: e.tenant_id });
|
|
1675
1675
|
}
|
|
1676
1676
|
const pick = adoptTenantOf(myDir, rows);
|
|
1677
|
+
// 이 폴더의 **첫 세션**이면 근거가 없다 — 여기서 조용히 되돌아가는 것은 의도이고,
|
|
1678
|
+
// 사람에게는 도구 응답 꼬리(`tenantNotice`)가 되풀이해 말한다. 여기서 말하면 20초마다다.
|
|
1677
1679
|
if (!pick) return;
|
|
1678
1680
|
if (pick.ambiguous) {
|
|
1679
1681
|
// **조용히 넘기지 않는다** — 왜 안 올라가는지 사람이 알아야 한다.
|
|
@@ -2673,6 +2675,38 @@ function worldFacts(max = 8) {
|
|
|
2673
2675
|
} catch { return null; }
|
|
2674
2676
|
}
|
|
2675
2677
|
|
|
2678
|
+
/** 소속처 미등록 안내의 되풀이 간격. 설치 상태라 한 번만 말하면 놓친 세션은 영영 모른다. */
|
|
2679
|
+
const TENANT_NOTICE_MS = 30 * 60_000;
|
|
2680
|
+
let tenantSaidAt = 0;
|
|
2681
|
+
|
|
2682
|
+
/*
|
|
2683
|
+
* 「이 세션이 어느 소속처에도 안 붙어 있다」 — 변화분이 아니라 **고쳐야 할 설치 상태**다
|
|
2684
|
+
* (「세포가 없다」와 같은 성격이고, 고치면 저절로 사라진다).
|
|
2685
|
+
*
|
|
2686
|
+
* ⚠ **왜 저절로 안 붙나.** `indexAdoptCurrent()` 는 **같은 폴더의 앞 세션**을 근거로 붙인다
|
|
2687
|
+
* (`adoptTenantOf`). 그래서 그 폴더의 **첫 세션**은 근거가 없어 못 붙는데, 그 분기(`!pick`)는
|
|
2688
|
+
* 조용히 되돌아갔다 — 갈림이 있는 경우(`ambiguous`)만 말하고 있었다.
|
|
2689
|
+
*
|
|
2690
|
+
* 그 침묵의 값을 2026-08-26 에 쟀다: 색인 6항목이 **전부 한 폴더**(atflee/app)의 것이라
|
|
2691
|
+
* report-portal 폴더의 세션 넷이 색인 밖에 있었고, 세포가 소속처를 못 얻어
|
|
2692
|
+
* `spawn_sync` 가 첫 줄에서 되돌아갔다 — 메일·보유자·「이 세션이 속한 일」이 그 저장소에서
|
|
2693
|
+
* **한 번도 안 돌았다**(`world-<root>.json` 의 `cursor` 가 null 이었다).
|
|
2694
|
+
*/
|
|
2695
|
+
function tenantNotice() {
|
|
2696
|
+
const mine = process.env.CLAUDE_CODE_SESSION_ID || '';
|
|
2697
|
+
if (!mine) return '';
|
|
2698
|
+
try {
|
|
2699
|
+
if (indexRead()[mine]?.tenant_id) return ''; // 붙어 있다 — 조용하다
|
|
2700
|
+
if (!credential()) return ''; // 자격이 없으면 붙일 수도 없다(다른 안내가 나간다)
|
|
2701
|
+
} catch { return ''; }
|
|
2702
|
+
const now = Date.now();
|
|
2703
|
+
if (now - tenantSaidAt < TENANT_NOTICE_MS) return '';
|
|
2704
|
+
tenantSaidAt = now;
|
|
2705
|
+
return 'genetics: 이 세션은 아직 어느 소속처에도 안 붙어 있다 — 이 폴더에 앞 세션이 없어 '
|
|
2706
|
+
+ '자동 등록이 안 됐다. `push_session` 으로 한 번 정하면 그 뒤는 자동이고, '
|
|
2707
|
+
+ '그래야 메일·보유자·「이 세션이 속한 일」이 이 저장소에서 돈다.';
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2676
2710
|
function worldDelta() {
|
|
2677
2711
|
const { bin, why } = cellCheck();
|
|
2678
2712
|
if (!bin) return cellNotice(why);
|
|
@@ -3129,6 +3163,10 @@ function worldAppend(result) {
|
|
|
3129
3163
|
if (mm) result.content.push({ type: 'text', text: mm });
|
|
3130
3164
|
const v = brainSays();
|
|
3131
3165
|
if (v) result.content.push({ type: 'text', text: v });
|
|
3166
|
+
// ★ 소속처 미등록은 **델타보다 앞**이다. 델타가 비어도(조용한 구간) 나가야 하고,
|
|
3167
|
+
// 그것이 안 풀리면 위의 메일·백신도 이 저장소에서는 영영 안 온다.
|
|
3168
|
+
const tn = tenantNotice();
|
|
3169
|
+
if (tn) result.content.push({ type: 'text', text: tn });
|
|
3132
3170
|
const t = worldDelta();
|
|
3133
3171
|
if (!t) return;
|
|
3134
3172
|
/*
|