blun-king-cli 9.1.615 → 9.1.617
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/CHANGELOG.md +113 -104
- package/LIESMICH.txt +56 -56
- package/README.md +89 -89
- package/bin/core-bootstrap.js +24 -8
- package/bin/launcher-runtime.js +124 -48
- package/bin/managed-plugin-selection.cjs +15 -8
- package/bin/plugin-bootstrap.js +40 -17
- package/bin/private-paths.js +10 -2
- package/bin/profile-handoff.cjs +152 -0
- package/bin/profile-launch.cjs +84 -6
- package/bin/update-lease.js +3 -1
- package/blun.mjs +3773 -1284
- package/package.json +1 -1
- package/telegram-plugin/dist/bridge.mjs +53 -13
- package/telegram-plugin/dist/mcp-server.mjs +54 -10
- package/telegram-plugin/dist/noise.mjs +9 -1
- package/worker-host.mjs +2449 -749
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# BLUN King Changelog
|
|
2
2
|
|
|
3
|
+
## 9.1.617
|
|
4
|
+
|
|
5
|
+
King wartet beim Beenden auch auf Ereignisse, die beim Aufräumen laufender Arbeiten entstehen. Noch nicht abgeschlossene Arbeit wird nicht als beendet bestätigt.
|
|
6
|
+
|
|
7
|
+
## 9.1.616
|
|
8
|
+
|
|
9
|
+
- Nach einer bestätigten Telegram-Antwort übernimmt King weitere an dich adressierte Nachrichten am nächsten sicheren Schritt, auch während eines laufenden Zugs. Eine bereits zugestellte Antwort hält die Warteschlange nicht mehr auf. Antworten bleiben ihrem jeweiligen Chat zugeordnet.
|
|
10
|
+
- Brichst du einen Zug ab, bleiben noch nicht übernommene Telegram-Nachrichten für die nächste Zustellung erhalten. King quittiert sie erst, wenn die Sitzung sie tatsächlich übernimmt.
|
|
11
|
+
|
|
3
12
|
## 9.1.615
|
|
4
13
|
|
|
5
14
|
Große Werkzeugkataloge laufen jetzt über Kings vorhandene Werkzeugsuche, statt alle optionalen Werkzeugschemata auf einmal an das Modell zu senden. Meldet der Anbieter ein kleineres Kontextfenster, passt King das Werkzeugbudget an. Neu gefundene Werkzeuge bleiben für den nächsten Schritt verfügbar. Bei der automatischen Auswahl liest King keine Parameterschemata noch nicht ausgewählter MCP-Werkzeuge; lokal registrierte Werkzeuge behalten ihre Parameterhinweise.
|
|
@@ -94,107 +103,107 @@ Neue Anfragen an die lokale Codesuche protokollieren Metadaten statt des vollst
|
|
|
94
103
|
- Keep the pinned AgentSpine and Translate Native component versions unchanged. These changes do not establish lower provider bills, faster live responses, a repaired external Guard service, or complete OpenClaw feature parity.
|
|
95
104
|
|
|
96
105
|
## 9.1.603
|
|
97
|
-
|
|
98
|
-
- Open a native Windows folder chooser when selecting a different startup workspace. Keep explicit path entry available, return to the workspace menu on cancellation, and fall back to path entry when a desktop dialog is unavailable.
|
|
99
|
-
- Offer the user's home folder instead of an inherited or previously remembered Windows system directory such as System32. Explicitly entered workspace paths still use the existing validation.
|
|
100
|
-
- Preserve exact prompt and bundled-component fixture bytes across Windows checkouts, and require folder-selection regression checks in the release gate. Bundled AgentSpine and Language Guard versions are unchanged from 9.1.602.
|
|
101
|
-
|
|
102
|
-
## 9.1.602
|
|
103
|
-
|
|
104
|
-
- Give historical tool-output recovery its own private storage root, so existing ordinary tool-output folders with inherited permissions do not silently disable lossless context reduction. Existing files and permissions remain unchanged.
|
|
105
|
-
- Retain complete archived output, read-permission checks, integrity verification, and fallback to full context when recovery is unavailable. Bundled AgentSpine and Language Guard versions are unchanged from 9.1.601.
|
|
106
|
-
|
|
107
|
-
## 9.1.601
|
|
108
|
-
|
|
109
|
-
- Keep terminal input queued when background work wins admission, preserving order and showing each input only once.
|
|
110
|
-
- Replace eligible older tool outputs with verified private-file references in model requests while preserving complete history and current-turn results.
|
|
111
|
-
- Retain full output when recovery is unavailable, denied, altered, or no longer matches the active context.
|
|
112
|
-
- Require source and compiled-program checks for recovery, permission boundaries, and retained-history accounting.
|
|
113
|
-
- Retry one rate-limited native response review using the persisted provider cooldown and the unchanged candidate; never replay completed tools or release unchecked text.
|
|
114
|
-
- Reserve up to 2,048 output tokens for input-estimation differences without shrinking the model context window or changing smaller explicit output caps. Larger differences remain subject to bounded context-error recovery.
|
|
115
|
-
|
|
116
|
-
## 9.1.600
|
|
117
|
-
|
|
118
|
-
- Bound each response-review attempt to 120 seconds while retaining the 30-second default for generic reviewers and the existing maximum of two outer attempts.
|
|
119
|
-
- Allow up to 90 seconds for first meaningful native-review text once per attempt, then renew a 30-second idle budget on meaningful text and ordered release and verification stages without extending the absolute deadline.
|
|
120
|
-
- Preserve cancellation, exact response binding, receipt expiry, and authorization; these changes do not establish a fix for live HTTP 502 errors.
|
|
121
|
-
- Pin AgentSpine 0.73.0 and Translate Native 6.155.0; keep the guard protocol at 6.20.0.
|
|
122
|
-
|
|
123
|
-
## 9.1.599
|
|
124
|
-
|
|
125
|
-
- Show localized personal-memory actions and complete previews of settings changes or remembered text, with terminal control characters escaped.
|
|
126
|
-
- Offer one-shot approval for valid memory changes and rejection only for invalid inputs.
|
|
127
|
-
- Prevent session-wide approval from automatically accepting queued requests that require individual approval.
|
|
128
|
-
|
|
129
|
-
## 9.1.598
|
|
130
|
-
|
|
131
|
-
- Distinguish lower-bound input counts from exact counts in upstream context rejections.
|
|
132
|
-
- Reduce the output allowance once for a lower-bound rejection without discarding messages or tools; retain cancellation and bounded retry behavior.
|
|
133
|
-
- Verify moving tokenization thresholds and exact-count counterexamples in the compiled program.
|
|
134
|
-
- Include the previously missing package notes for 9.1.595 through 9.1.597.
|
|
135
|
-
- Restore the original 150 rotating activity words without additional model requests.
|
|
136
|
-
- Keep media payloads out of AgentSpine's text-only hook input while preserving complete model attachments and policy checks.
|
|
137
|
-
|
|
138
|
-
## 9.1.597
|
|
139
|
-
|
|
140
|
-
- Classify explicit context-limit errors wrapped in HTTP 502 and allow one corrected request with a smaller output allowance.
|
|
141
|
-
- Preserve messages, tools, cancellation, and the rule against replaying an already-started response.
|
|
142
|
-
- Known limitation: this initial correction treated lower-bound input counts as exact. The additional correction is included in 9.1.598.
|
|
143
|
-
|
|
144
|
-
## 9.1.596
|
|
145
|
-
|
|
146
|
-
- Distinguish owner cancellation from automatic turn interruption.
|
|
147
|
-
|
|
148
|
-
## 9.1.595
|
|
149
|
-
|
|
150
|
-
- Defer tool and skill descriptions until they are needed, while keeping discovery available.
|
|
151
|
-
- Bound greeting context without deleting saved task history or weakening permissions.
|
|
152
|
-
|
|
153
|
-
## 9.1.594
|
|
154
|
-
|
|
155
|
-
- Preserve private Telegram replies while group messages wait, and retain slash-command routing.
|
|
156
|
-
- Honor long Retry-After delays and restore remaining cooldowns after resuming a session.
|
|
157
|
-
- Continue one settled tool step after rejected narration without publishing that narration or weakening final-answer review.
|
|
158
|
-
- Restore bounded write-continuation recovery, shell timeouts, task controls and session recovery.
|
|
159
|
-
- Keep input, quota rows, activity, task expansion and source-labelled tool output visible during streaming and history navigation.
|
|
160
|
-
- Require complete console regression evidence before packaging and verify matching public update metadata.
|
|
161
|
-
|
|
162
|
-
## 9.1.593
|
|
163
|
-
|
|
164
|
-
- Keep the input and both status rows visible after delayed startup messages, without clearing terminal scrollback.
|
|
165
|
-
|
|
166
|
-
## 9.1.592
|
|
167
|
-
|
|
168
|
-
- Preserve explicit startup permissions and remember deliberate permission selections for new sessions.
|
|
169
|
-
- Prevent overlapping session selections from closing the session being resumed.
|
|
170
|
-
- Restore rotating activity words, cumulative usage, step number and local date/time alongside live timing and token estimates.
|
|
171
|
-
- Allow protected-source reads redirected to literal null sinks without removing protected-write checks.
|
|
172
|
-
- Include the bounded startup and reload corrections prepared in 9.1.591.
|
|
173
|
-
|
|
174
|
-
## 9.1.591
|
|
175
|
-
|
|
176
|
-
- Finish the managed model refresh before opening a session, with a bounded catalog request.
|
|
177
|
-
- Reopen continued sessions through one reload so an overdue loop cannot race a second reload.
|
|
178
|
-
- Preserve additional workspace directories through the reload path.
|
|
179
|
-
- Keep the existing input, footer, quota rows, loop countdown and compaction display unchanged.
|
|
180
|
-
|
|
181
|
-
## 9.1.590
|
|
182
|
-
|
|
183
|
-
- Retain complete bounded instructions without the extra 8 KiB AgentSpine rejection.
|
|
184
|
-
- Keep routine AgentSpine preparation out of the visible transcript while retaining source and receipt checks.
|
|
185
|
-
- Preserve the active King profile when unrelated host settings are inherited.
|
|
186
|
-
- Restore the loop countdown and replace the previous recurring loop when scheduling a new one.
|
|
187
|
-
- Retain the approved compaction display and queued reload behavior.
|
|
188
|
-
|
|
189
|
-
## 9.1.589
|
|
190
|
-
|
|
191
|
-
- Bundle reviewed AgentSpine and Translate Native sources with verified update manifests.
|
|
192
|
-
- Preserve the active King profile when loading agent context.
|
|
193
|
-
- Keep required response-review tools available and record generated-response usage even when review rejects the response.
|
|
194
|
-
- Apply mention-required group routing in the managed channel integration.
|
|
195
|
-
- Show compaction activity and effective thresholds in the terminal.
|
|
196
|
-
- Preserve the early-compaction working budget and request-boundary safety margin across updates.
|
|
197
|
-
- Use the selected language throughout the startup update dialog, progress and queued-update messages.
|
|
198
|
-
- Keep technical integration identifiers and licenses intact while neutralizing visible runtime error messages.
|
|
199
|
-
|
|
200
|
-
Installation does not restart existing sessions. A running session loads the new code on its next start.
|
|
106
|
+
|
|
107
|
+
- Open a native Windows folder chooser when selecting a different startup workspace. Keep explicit path entry available, return to the workspace menu on cancellation, and fall back to path entry when a desktop dialog is unavailable.
|
|
108
|
+
- Offer the user's home folder instead of an inherited or previously remembered Windows system directory such as System32. Explicitly entered workspace paths still use the existing validation.
|
|
109
|
+
- Preserve exact prompt and bundled-component fixture bytes across Windows checkouts, and require folder-selection regression checks in the release gate. Bundled AgentSpine and Language Guard versions are unchanged from 9.1.602.
|
|
110
|
+
|
|
111
|
+
## 9.1.602
|
|
112
|
+
|
|
113
|
+
- Give historical tool-output recovery its own private storage root, so existing ordinary tool-output folders with inherited permissions do not silently disable lossless context reduction. Existing files and permissions remain unchanged.
|
|
114
|
+
- Retain complete archived output, read-permission checks, integrity verification, and fallback to full context when recovery is unavailable. Bundled AgentSpine and Language Guard versions are unchanged from 9.1.601.
|
|
115
|
+
|
|
116
|
+
## 9.1.601
|
|
117
|
+
|
|
118
|
+
- Keep terminal input queued when background work wins admission, preserving order and showing each input only once.
|
|
119
|
+
- Replace eligible older tool outputs with verified private-file references in model requests while preserving complete history and current-turn results.
|
|
120
|
+
- Retain full output when recovery is unavailable, denied, altered, or no longer matches the active context.
|
|
121
|
+
- Require source and compiled-program checks for recovery, permission boundaries, and retained-history accounting.
|
|
122
|
+
- Retry one rate-limited native response review using the persisted provider cooldown and the unchanged candidate; never replay completed tools or release unchecked text.
|
|
123
|
+
- Reserve up to 2,048 output tokens for input-estimation differences without shrinking the model context window or changing smaller explicit output caps. Larger differences remain subject to bounded context-error recovery.
|
|
124
|
+
|
|
125
|
+
## 9.1.600
|
|
126
|
+
|
|
127
|
+
- Bound each response-review attempt to 120 seconds while retaining the 30-second default for generic reviewers and the existing maximum of two outer attempts.
|
|
128
|
+
- Allow up to 90 seconds for first meaningful native-review text once per attempt, then renew a 30-second idle budget on meaningful text and ordered release and verification stages without extending the absolute deadline.
|
|
129
|
+
- Preserve cancellation, exact response binding, receipt expiry, and authorization; these changes do not establish a fix for live HTTP 502 errors.
|
|
130
|
+
- Pin AgentSpine 0.73.0 and Translate Native 6.155.0; keep the guard protocol at 6.20.0.
|
|
131
|
+
|
|
132
|
+
## 9.1.599
|
|
133
|
+
|
|
134
|
+
- Show localized personal-memory actions and complete previews of settings changes or remembered text, with terminal control characters escaped.
|
|
135
|
+
- Offer one-shot approval for valid memory changes and rejection only for invalid inputs.
|
|
136
|
+
- Prevent session-wide approval from automatically accepting queued requests that require individual approval.
|
|
137
|
+
|
|
138
|
+
## 9.1.598
|
|
139
|
+
|
|
140
|
+
- Distinguish lower-bound input counts from exact counts in upstream context rejections.
|
|
141
|
+
- Reduce the output allowance once for a lower-bound rejection without discarding messages or tools; retain cancellation and bounded retry behavior.
|
|
142
|
+
- Verify moving tokenization thresholds and exact-count counterexamples in the compiled program.
|
|
143
|
+
- Include the previously missing package notes for 9.1.595 through 9.1.597.
|
|
144
|
+
- Restore the original 150 rotating activity words without additional model requests.
|
|
145
|
+
- Keep media payloads out of AgentSpine's text-only hook input while preserving complete model attachments and policy checks.
|
|
146
|
+
|
|
147
|
+
## 9.1.597
|
|
148
|
+
|
|
149
|
+
- Classify explicit context-limit errors wrapped in HTTP 502 and allow one corrected request with a smaller output allowance.
|
|
150
|
+
- Preserve messages, tools, cancellation, and the rule against replaying an already-started response.
|
|
151
|
+
- Known limitation: this initial correction treated lower-bound input counts as exact. The additional correction is included in 9.1.598.
|
|
152
|
+
|
|
153
|
+
## 9.1.596
|
|
154
|
+
|
|
155
|
+
- Distinguish owner cancellation from automatic turn interruption.
|
|
156
|
+
|
|
157
|
+
## 9.1.595
|
|
158
|
+
|
|
159
|
+
- Defer tool and skill descriptions until they are needed, while keeping discovery available.
|
|
160
|
+
- Bound greeting context without deleting saved task history or weakening permissions.
|
|
161
|
+
|
|
162
|
+
## 9.1.594
|
|
163
|
+
|
|
164
|
+
- Preserve private Telegram replies while group messages wait, and retain slash-command routing.
|
|
165
|
+
- Honor long Retry-After delays and restore remaining cooldowns after resuming a session.
|
|
166
|
+
- Continue one settled tool step after rejected narration without publishing that narration or weakening final-answer review.
|
|
167
|
+
- Restore bounded write-continuation recovery, shell timeouts, task controls and session recovery.
|
|
168
|
+
- Keep input, quota rows, activity, task expansion and source-labelled tool output visible during streaming and history navigation.
|
|
169
|
+
- Require complete console regression evidence before packaging and verify matching public update metadata.
|
|
170
|
+
|
|
171
|
+
## 9.1.593
|
|
172
|
+
|
|
173
|
+
- Keep the input and both status rows visible after delayed startup messages, without clearing terminal scrollback.
|
|
174
|
+
|
|
175
|
+
## 9.1.592
|
|
176
|
+
|
|
177
|
+
- Preserve explicit startup permissions and remember deliberate permission selections for new sessions.
|
|
178
|
+
- Prevent overlapping session selections from closing the session being resumed.
|
|
179
|
+
- Restore rotating activity words, cumulative usage, step number and local date/time alongside live timing and token estimates.
|
|
180
|
+
- Allow protected-source reads redirected to literal null sinks without removing protected-write checks.
|
|
181
|
+
- Include the bounded startup and reload corrections prepared in 9.1.591.
|
|
182
|
+
|
|
183
|
+
## 9.1.591
|
|
184
|
+
|
|
185
|
+
- Finish the managed model refresh before opening a session, with a bounded catalog request.
|
|
186
|
+
- Reopen continued sessions through one reload so an overdue loop cannot race a second reload.
|
|
187
|
+
- Preserve additional workspace directories through the reload path.
|
|
188
|
+
- Keep the existing input, footer, quota rows, loop countdown and compaction display unchanged.
|
|
189
|
+
|
|
190
|
+
## 9.1.590
|
|
191
|
+
|
|
192
|
+
- Retain complete bounded instructions without the extra 8 KiB AgentSpine rejection.
|
|
193
|
+
- Keep routine AgentSpine preparation out of the visible transcript while retaining source and receipt checks.
|
|
194
|
+
- Preserve the active King profile when unrelated host settings are inherited.
|
|
195
|
+
- Restore the loop countdown and replace the previous recurring loop when scheduling a new one.
|
|
196
|
+
- Retain the approved compaction display and queued reload behavior.
|
|
197
|
+
|
|
198
|
+
## 9.1.589
|
|
199
|
+
|
|
200
|
+
- Bundle reviewed AgentSpine and Translate Native sources with verified update manifests.
|
|
201
|
+
- Preserve the active King profile when loading agent context.
|
|
202
|
+
- Keep required response-review tools available and record generated-response usage even when review rejects the response.
|
|
203
|
+
- Apply mention-required group routing in the managed channel integration.
|
|
204
|
+
- Show compaction activity and effective thresholds in the terminal.
|
|
205
|
+
- Preserve the early-compaction working budget and request-boundary safety margin across updates.
|
|
206
|
+
- Use the selected language throughout the startup update dialog, progress and queued-update messages.
|
|
207
|
+
- Keep technical integration identifiers and licenses intact while neutralizing visible runtime error messages.
|
|
208
|
+
|
|
209
|
+
Installation does not restart existing sessions. A running session loads the new code on its next start.
|
package/LIESMICH.txt
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
BLUN King für macOS und Windows
|
|
2
|
-
===============================
|
|
3
|
-
|
|
4
|
-
Voraussetzung
|
|
5
|
-
-------------
|
|
1
|
+
BLUN King für macOS und Windows
|
|
2
|
+
===============================
|
|
3
|
+
|
|
4
|
+
Voraussetzung
|
|
5
|
+
-------------
|
|
6
6
|
Node.js 24.15 oder neuer muss installiert sein. npm gehört zur Node.js-Installation.
|
|
7
7
|
Unter Windows wird zusätzlich Git Bash aus Git for Windows benötigt.
|
|
8
8
|
Nach der Installation ein neues Terminal öffnen und mit node --version,
|
|
@@ -21,54 +21,54 @@ Warteschlangenregel. /question öffnet noch ausstehende Rückfragen erneut.
|
|
|
21
21
|
|
|
22
22
|
Die vollständige Syntax, Grenzen und Voraussetzungen stehen in README.md.
|
|
23
23
|
Anfrage-Bytes sind keine Tokenzahlen und kein Abrechnungsnachweis.
|
|
24
|
-
|
|
25
|
-
Installation
|
|
26
|
-
------------
|
|
27
|
-
Die geprüfte Version exakt global installieren:
|
|
28
|
-
|
|
29
|
-
npm install -g blun-king-cli@9.1.
|
|
30
|
-
|
|
31
|
-
Start
|
|
32
|
-
-----
|
|
33
|
-
|
|
34
|
-
blun Dieselbe CLI, ohne Telegram automatisch anzubinden
|
|
35
|
-
king Dieselbe CLI, mit automatisch angebundenem Telegram-Kanal
|
|
36
|
-
|
|
37
|
-
Beide Startbefehle verwenden dieselbe Version, dasselbe Konto, dasselbe Modell
|
|
38
|
-
und dieselben Befehle.
|
|
39
|
-
|
|
40
|
-
Nachweisbare Arbeitsabläufe
|
|
41
|
-
---------------------------
|
|
42
|
-
|
|
43
|
-
blun proof Prüfergebnisse und Artefakte mit SHA-256 belegen
|
|
44
|
-
blun brief Einen versionierten Projektauftrag anlegen
|
|
45
|
-
blun handoff Eine Sitzung zwischen CLI, Desktop und Web übergeben
|
|
46
|
-
blun replay Einen bereinigten Arbeitsverlauf erzeugen
|
|
47
|
-
blun guard Belegintegrität und aktuelle Artefakte prüfen
|
|
48
|
-
blun demo Eine bereinigte statische Projektdemo erzeugen
|
|
49
|
-
blun workspace Isolierte Git-Arbeitsbereiche verwalten
|
|
50
|
-
|
|
51
|
-
Alle Befehle funktionieren identisch mit `king`.
|
|
52
|
-
|
|
53
|
-
Aktualisieren
|
|
54
|
-
-------------
|
|
55
|
-
|
|
56
|
-
blun update
|
|
57
|
-
|
|
58
|
-
`king update` und `upgrade` sind gleichwertig. Der Updater bleibt im installierten
|
|
59
|
-
Stable- oder Next-Kanal, verhindert Rückstufungen und installiert nur eine zuvor
|
|
60
|
-
aufgelöste exakte Paketversion.
|
|
61
|
-
|
|
62
|
-
Beim ersten Start in der Konsole /login eingeben. Der Browser öffnet den
|
|
63
|
-
BLUN-OAuth-Login.
|
|
64
|
-
Ein API-Schlüssel wird weder abgefragt noch in die Konfiguration geschrieben.
|
|
65
|
-
|
|
66
|
-
Telegram einrichten
|
|
67
|
-
--------------------
|
|
68
|
-
1. Einen Bot bei BotFather anlegen.
|
|
69
|
-
2. Den Bot-Token in dieser Datei eintragen:
|
|
70
|
-
|
|
71
|
-
~/.blun/channels/telegram/.env
|
|
72
|
-
|
|
73
|
-
3. `king` starten und den angezeigten Pairing-Code mit
|
|
74
|
-
/telegram:access pair CODE bestätigen.
|
|
24
|
+
|
|
25
|
+
Installation
|
|
26
|
+
------------
|
|
27
|
+
Die geprüfte Version exakt global installieren:
|
|
28
|
+
|
|
29
|
+
npm install -g blun-king-cli@9.1.617
|
|
30
|
+
|
|
31
|
+
Start
|
|
32
|
+
-----
|
|
33
|
+
|
|
34
|
+
blun Dieselbe CLI, ohne Telegram automatisch anzubinden
|
|
35
|
+
king Dieselbe CLI, mit automatisch angebundenem Telegram-Kanal
|
|
36
|
+
|
|
37
|
+
Beide Startbefehle verwenden dieselbe Version, dasselbe Konto, dasselbe Modell
|
|
38
|
+
und dieselben Befehle.
|
|
39
|
+
|
|
40
|
+
Nachweisbare Arbeitsabläufe
|
|
41
|
+
---------------------------
|
|
42
|
+
|
|
43
|
+
blun proof Prüfergebnisse und Artefakte mit SHA-256 belegen
|
|
44
|
+
blun brief Einen versionierten Projektauftrag anlegen
|
|
45
|
+
blun handoff Eine Sitzung zwischen CLI, Desktop und Web übergeben
|
|
46
|
+
blun replay Einen bereinigten Arbeitsverlauf erzeugen
|
|
47
|
+
blun guard Belegintegrität und aktuelle Artefakte prüfen
|
|
48
|
+
blun demo Eine bereinigte statische Projektdemo erzeugen
|
|
49
|
+
blun workspace Isolierte Git-Arbeitsbereiche verwalten
|
|
50
|
+
|
|
51
|
+
Alle Befehle funktionieren identisch mit `king`.
|
|
52
|
+
|
|
53
|
+
Aktualisieren
|
|
54
|
+
-------------
|
|
55
|
+
|
|
56
|
+
blun update
|
|
57
|
+
|
|
58
|
+
`king update` und `upgrade` sind gleichwertig. Der Updater bleibt im installierten
|
|
59
|
+
Stable- oder Next-Kanal, verhindert Rückstufungen und installiert nur eine zuvor
|
|
60
|
+
aufgelöste exakte Paketversion.
|
|
61
|
+
|
|
62
|
+
Beim ersten Start in der Konsole /login eingeben. Der Browser öffnet den
|
|
63
|
+
BLUN-OAuth-Login.
|
|
64
|
+
Ein API-Schlüssel wird weder abgefragt noch in die Konfiguration geschrieben.
|
|
65
|
+
|
|
66
|
+
Telegram einrichten
|
|
67
|
+
--------------------
|
|
68
|
+
1. Einen Bot bei BotFather anlegen.
|
|
69
|
+
2. Den Bot-Token in dieser Datei eintragen:
|
|
70
|
+
|
|
71
|
+
~/.blun/channels/telegram/.env
|
|
72
|
+
|
|
73
|
+
3. `king` starten und den angezeigten Pairing-Code mit
|
|
74
|
+
/telegram:access pair CODE bestätigen.
|
package/README.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
# blun-king-cli — npm-Distribution
|
|
2
|
-
|
|
3
|
-
Dieses Verzeichnis ist das Gerüst des öffentlichen npm-Pakets `blun-king-cli`
|
|
4
|
-
(Erstveröffentlichung 8.0.0, 06.07.2026, Account `blunking`).
|
|
5
|
-
|
|
6
|
-
## Installation
|
|
7
|
-
|
|
8
|
-
Voraussetzung ist Node.js 24.15 oder neuer. Die geprüfte Version wird exakt
|
|
9
|
-
installiert:
|
|
10
|
-
|
|
11
|
-
```powershell
|
|
12
|
-
npm install -g blun-king-cli@9.1.
|
|
13
|
-
```
|
|
14
|
-
|
|
1
|
+
# blun-king-cli — npm-Distribution
|
|
2
|
+
|
|
3
|
+
Dieses Verzeichnis ist das Gerüst des öffentlichen npm-Pakets `blun-king-cli`
|
|
4
|
+
(Erstveröffentlichung 8.0.0, 06.07.2026, Account `blunking`).
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
Voraussetzung ist Node.js 24.15 oder neuer. Die geprüfte Version wird exakt
|
|
9
|
+
installiert:
|
|
10
|
+
|
|
11
|
+
```powershell
|
|
12
|
+
npm install -g blun-king-cli@9.1.617
|
|
13
|
+
```
|
|
14
|
+
|
|
15
15
|
### Windows: Node.js, npm und Git Bash
|
|
16
16
|
|
|
17
17
|
Node.js ab Version 24.15 ist erforderlich; npm wird mit Node.js installiert. Unter Windows benötigt die Konsole außerdem Git Bash aus Git for Windows. Nach der Installation ein neues Terminal öffnen und prüfen:
|
|
@@ -56,78 +56,78 @@ Das Transportprotokoll erhält für jeden HTTP-Versuch eine eigene `x-request-id
|
|
|
56
56
|
Die Verbrauchsanzeige berücksichtigt auch die Antwortprüfung. `/usage cost` mit Tages- oder Monatskosten gehört nicht zu dieser Fassung. Eine geringere Rechnung oder kürzere Antwortzeit im Live-Betrieb ist durch die lokalen Prüfungen nicht belegt.
|
|
57
57
|
|
|
58
58
|
## Reproduzierbares Staging und Packen
|
|
59
|
-
|
|
60
|
-
Der Schritt baut nichts, installiert nichts und veröffentlicht nichts. Vorher müssen
|
|
61
|
-
`apps/blun-king/dist/main.mjs`, `dist-web`, die Darwin- und Windows-Natives sowie
|
|
62
|
-
`plugins/telegram/dist` bereits frisch gebaut sein.
|
|
63
|
-
|
|
64
|
-
Das Staging landet standardmäßig
|
|
65
|
-
unter `.stage/package`, das Tarball unter `.stage/artifacts`.
|
|
66
|
-
`BLUN_NPM_STAGE_DIR` und `BLUN_NPM_ARTIFACT_DIR` können beide Ziele überschreiben;
|
|
67
|
-
beim direkten Skriptaufruf stehen zusätzlich `--output` und `--artifacts` bereit.
|
|
68
|
-
|
|
69
|
-
Der Schritt validiert alle Pflichtartefakte vor dem Leeren des alten Stagings. Er
|
|
70
|
-
kopiert nur die Paket-Hülle, `blun.mjs`, `dist-web`, `native`, Telegrams
|
|
71
|
-
`dist`/Manifest/Commands und die Repo-Skills.
|
|
72
|
-
|
|
73
|
-
## Startmodi
|
|
74
|
-
|
|
75
|
-
`blun` startet die lokale Konsole, ohne Telegram automatisch anzubinden. `king`
|
|
76
|
-
startet dieselbe Konsole und bindet den eingerichteten Telegram-Kanal automatisch
|
|
77
|
-
an. Version, Konto, Modell und Befehle sind ansonsten identisch. Der Unterschied
|
|
78
|
-
gilt nur für den laufenden Prozess; die gespeicherte
|
|
79
|
-
Plugin-Konfiguration wird nicht umgeschrieben.
|
|
80
|
-
|
|
81
|
-
Beim ersten Start werden das Telegram-Plugin und die mitgelieferten Skills
|
|
82
|
-
eingerichtet. Die Anmeldung erfolgt anschließend in der
|
|
83
|
-
Konsole mit `/login` über den BLUN-OAuth-Server. Das Paket erzeugt keine
|
|
84
|
-
statische Anbieter- oder API-Key-Konfiguration.
|
|
85
|
-
|
|
86
|
-
## Persönliches Gedächtnis
|
|
87
|
-
|
|
88
|
-
Seit Version 9.1.599 zeigt BLUN King Freigaben für das persönliche Gedächtnis mit übersetzten Aktionstiteln und vollständigen Vorschauen der tatsächlichen Einstellungsänderungen oder des zu speichernden Textes. Gültige Änderungen lassen sich nur einmalig freigeben, ungültige Eingaben nur ablehnen. Eine Sitzungsfreigabe genehmigt solche wartenden Anfragen nicht automatisch. Steuerzeichen werden sichtbar maskiert; der Originalinhalt bleibt unverändert.
|
|
89
|
-
|
|
90
|
-
## Zeitgrenzen für die Antwortprüfung
|
|
91
|
-
|
|
92
|
-
Version 9.1.600 begrenzt die Antwortprüfung pro äußerem Prüfversuch auf insgesamt 120 Sekunden. Allgemeine Prüfer behalten die bisherige Frist von 30 Sekunden. Bei der nativen Sprachprüfung stehen nach dem bestätigten Start einmalig bis zu 90 Sekunden für den ersten inhaltlichen Text bereit; auch dabei gilt die Gesamtgrenze. Inhaltlicher Text innerhalb der zulässigen Ausgabelänge sowie die geordneten Übergänge zur Freigabe und zur Belegprüfung setzen die Wartefrist jeweils auf 30 Sekunden zurück, ohne die Gesamtgrenze zu verlängern. Es bleibt bei höchstens zwei äußeren Prüfversuchen.
|
|
93
|
-
|
|
94
|
-
Abbruch, exakte Bindung an den Antworttext, Belegablauf und Autorisierung bleiben unverändert. Damit ist keine Behebung von HTTP-502-Fehlern im Live-Betrieb nachgewiesen.
|
|
95
|
-
|
|
96
|
-
## Festgelegte Komponentenstände
|
|
97
|
-
|
|
98
|
-
- AgentSpine 0.73.0, Commit `38cb94760b19e3a82e7efdf12538a1adf5324964`.
|
|
99
|
-
- Translate Native 6.155.0, Commit `21efc66da8f77992c8c63ac0f145a106c31e7eb2`.
|
|
100
|
-
- Guard-Protokoll unverändert auf 6.20.0.
|
|
101
|
-
|
|
102
|
-
## Nachweisbare Arbeitsabläufe
|
|
103
|
-
|
|
104
|
-
Version 9.1.0 enthält sieben zusätzliche, getrennt nutzbare Befehlsgruppen:
|
|
105
|
-
|
|
106
|
-
- `proof` belegt Prüfungen und Artefakte mit SHA-256.
|
|
107
|
-
- `brief` erstellt einen versionierten Projektauftrag.
|
|
108
|
-
- `handoff` übergibt eine Sitzung zwischen CLI, Desktop und Web.
|
|
109
|
-
- `replay` erzeugt einen bereinigten Arbeitsverlauf.
|
|
110
|
-
- `guard` prüft Belegintegrität und aktuelle Artefakte.
|
|
111
|
-
- `demo` erzeugt eine bereinigte statische Projektdemo.
|
|
112
|
-
- `workspace` verwaltet isolierte Git-Arbeitsbereiche.
|
|
113
|
-
|
|
114
|
-
Sie stehen unter `blun` und `king` identisch zur Verfügung.
|
|
115
|
-
|
|
116
|
-
## Aktualisieren
|
|
117
|
-
|
|
118
|
-
`blun update`, `king update` und die jeweilige Variante `upgrade` verwenden
|
|
119
|
-
denselben abgesicherten Updater. Er bleibt im installierten Stable- oder
|
|
120
|
-
Next-Kanal, verhindert Rückstufungen und übergibt npm ausschließlich eine zuvor
|
|
121
|
-
aufgelöste exakte Paketversion.
|
|
122
|
-
|
|
123
|
-
## Absturzdiagnose unter Windows
|
|
124
|
-
|
|
125
|
-
Startfehler und unbehandelte Ausnahmen werden im begrenzten, bereinigten Protokoll `BLUN_HOME/diagnostics/runtime-exits.jsonl` erfasst. Die Diagnose startet keinen neuen Prozess und ändert beim Start keine Windows-Registrywerte.
|
|
126
|
-
|
|
127
|
-
Ausführliche Node-Berichte sind optional. Nur `BLUN_NODE_CRASH_REPORTS=1` aktiviert sie für den gestarteten Prozess. Die Berichte liegen unter `BLUN_HOME/diagnostics/crash-dumps`. Umgebungsvariablen und Netzwerkinformationen werden ausgeschlossen; Programmargumente, Dateipfade und weitere sensible Prozessdaten können trotzdem enthalten sein. Berichte vor einer Weitergabe prüfen.
|
|
128
|
-
|
|
129
|
-
Drei gemeinsam reservierte Plätze begrenzen die Anzahl dieser Node-Berichte, nicht deren Dateigröße. Ein ordentlich beendeter Prozess gibt seine Reservierung frei; ein späterer Prozess kann den Bericht dieses Platzes ersetzen. Aktive oder unklar verwaiste Reservierungen werden nicht automatisch entfernt. Sind alle Plätze belegt oder liegen alte Berichte mit Zufallskennung vor, bleiben neue Detailberichte aus, bis der Betreiber diese Dateien ausdrücklich geprüft und bereinigt hat. Der normale Start und das kleine Fehlerprotokoll bleiben davon unabhängig. Sitzungen und fremde Dateien werden nicht entfernt.
|
|
130
|
-
|
|
131
|
-
Native Windows-Dumps sind davon getrennt. Der mitgelieferte Helfer `bin/windows-node-crash-dump.cjs` bietet `--query-wer` für eine reine Abfrage. Eine Änderung erfordert ausdrücklich `--configure-wer --confirm-system-wide`, ein gesetztes `BLUN_HOME` und ausreichende Windows-Rechte. Sie betrifft alle Prozesse namens `node.exe`, nicht nur BLUN: drei Minidumps im angegebenen Diagnoseordner. Bei einem Teilfehler nennt die JSON-Ausgabe die bereits gesetzten Werte. Der normale Start ruft diesen Befehl niemals auf.
|
|
132
|
-
|
|
133
|
-
Node-Berichte erfassen unterstützte Node-Fehler; sie sind kein Beleg dafür, dass jeder native Windows-Abbruch erfasst wird. Die Funktion lässt den ursprünglichen Fehler und den vorgesehenen Prozessabbruch bestehen.
|
|
59
|
+
|
|
60
|
+
Der Schritt baut nichts, installiert nichts und veröffentlicht nichts. Vorher müssen
|
|
61
|
+
`apps/blun-king/dist/main.mjs`, `dist-web`, die Darwin- und Windows-Natives sowie
|
|
62
|
+
`plugins/telegram/dist` bereits frisch gebaut sein.
|
|
63
|
+
|
|
64
|
+
Das Staging landet standardmäßig
|
|
65
|
+
unter `.stage/package`, das Tarball unter `.stage/artifacts`.
|
|
66
|
+
`BLUN_NPM_STAGE_DIR` und `BLUN_NPM_ARTIFACT_DIR` können beide Ziele überschreiben;
|
|
67
|
+
beim direkten Skriptaufruf stehen zusätzlich `--output` und `--artifacts` bereit.
|
|
68
|
+
|
|
69
|
+
Der Schritt validiert alle Pflichtartefakte vor dem Leeren des alten Stagings. Er
|
|
70
|
+
kopiert nur die Paket-Hülle, `blun.mjs`, `dist-web`, `native`, Telegrams
|
|
71
|
+
`dist`/Manifest/Commands und die Repo-Skills.
|
|
72
|
+
|
|
73
|
+
## Startmodi
|
|
74
|
+
|
|
75
|
+
`blun` startet die lokale Konsole, ohne Telegram automatisch anzubinden. `king`
|
|
76
|
+
startet dieselbe Konsole und bindet den eingerichteten Telegram-Kanal automatisch
|
|
77
|
+
an. Version, Konto, Modell und Befehle sind ansonsten identisch. Der Unterschied
|
|
78
|
+
gilt nur für den laufenden Prozess; die gespeicherte
|
|
79
|
+
Plugin-Konfiguration wird nicht umgeschrieben.
|
|
80
|
+
|
|
81
|
+
Beim ersten Start werden das Telegram-Plugin und die mitgelieferten Skills
|
|
82
|
+
eingerichtet. Die Anmeldung erfolgt anschließend in der
|
|
83
|
+
Konsole mit `/login` über den BLUN-OAuth-Server. Das Paket erzeugt keine
|
|
84
|
+
statische Anbieter- oder API-Key-Konfiguration.
|
|
85
|
+
|
|
86
|
+
## Persönliches Gedächtnis
|
|
87
|
+
|
|
88
|
+
Seit Version 9.1.599 zeigt BLUN King Freigaben für das persönliche Gedächtnis mit übersetzten Aktionstiteln und vollständigen Vorschauen der tatsächlichen Einstellungsänderungen oder des zu speichernden Textes. Gültige Änderungen lassen sich nur einmalig freigeben, ungültige Eingaben nur ablehnen. Eine Sitzungsfreigabe genehmigt solche wartenden Anfragen nicht automatisch. Steuerzeichen werden sichtbar maskiert; der Originalinhalt bleibt unverändert.
|
|
89
|
+
|
|
90
|
+
## Zeitgrenzen für die Antwortprüfung
|
|
91
|
+
|
|
92
|
+
Version 9.1.600 begrenzt die Antwortprüfung pro äußerem Prüfversuch auf insgesamt 120 Sekunden. Allgemeine Prüfer behalten die bisherige Frist von 30 Sekunden. Bei der nativen Sprachprüfung stehen nach dem bestätigten Start einmalig bis zu 90 Sekunden für den ersten inhaltlichen Text bereit; auch dabei gilt die Gesamtgrenze. Inhaltlicher Text innerhalb der zulässigen Ausgabelänge sowie die geordneten Übergänge zur Freigabe und zur Belegprüfung setzen die Wartefrist jeweils auf 30 Sekunden zurück, ohne die Gesamtgrenze zu verlängern. Es bleibt bei höchstens zwei äußeren Prüfversuchen.
|
|
93
|
+
|
|
94
|
+
Abbruch, exakte Bindung an den Antworttext, Belegablauf und Autorisierung bleiben unverändert. Damit ist keine Behebung von HTTP-502-Fehlern im Live-Betrieb nachgewiesen.
|
|
95
|
+
|
|
96
|
+
## Festgelegte Komponentenstände
|
|
97
|
+
|
|
98
|
+
- AgentSpine 0.73.0, Commit `38cb94760b19e3a82e7efdf12538a1adf5324964`.
|
|
99
|
+
- Translate Native 6.155.0, Commit `21efc66da8f77992c8c63ac0f145a106c31e7eb2`.
|
|
100
|
+
- Guard-Protokoll unverändert auf 6.20.0.
|
|
101
|
+
|
|
102
|
+
## Nachweisbare Arbeitsabläufe
|
|
103
|
+
|
|
104
|
+
Version 9.1.0 enthält sieben zusätzliche, getrennt nutzbare Befehlsgruppen:
|
|
105
|
+
|
|
106
|
+
- `proof` belegt Prüfungen und Artefakte mit SHA-256.
|
|
107
|
+
- `brief` erstellt einen versionierten Projektauftrag.
|
|
108
|
+
- `handoff` übergibt eine Sitzung zwischen CLI, Desktop und Web.
|
|
109
|
+
- `replay` erzeugt einen bereinigten Arbeitsverlauf.
|
|
110
|
+
- `guard` prüft Belegintegrität und aktuelle Artefakte.
|
|
111
|
+
- `demo` erzeugt eine bereinigte statische Projektdemo.
|
|
112
|
+
- `workspace` verwaltet isolierte Git-Arbeitsbereiche.
|
|
113
|
+
|
|
114
|
+
Sie stehen unter `blun` und `king` identisch zur Verfügung.
|
|
115
|
+
|
|
116
|
+
## Aktualisieren
|
|
117
|
+
|
|
118
|
+
`blun update`, `king update` und die jeweilige Variante `upgrade` verwenden
|
|
119
|
+
denselben abgesicherten Updater. Er bleibt im installierten Stable- oder
|
|
120
|
+
Next-Kanal, verhindert Rückstufungen und übergibt npm ausschließlich eine zuvor
|
|
121
|
+
aufgelöste exakte Paketversion.
|
|
122
|
+
|
|
123
|
+
## Absturzdiagnose unter Windows
|
|
124
|
+
|
|
125
|
+
Startfehler und unbehandelte Ausnahmen werden im begrenzten, bereinigten Protokoll `BLUN_HOME/diagnostics/runtime-exits.jsonl` erfasst. Die Diagnose startet keinen neuen Prozess und ändert beim Start keine Windows-Registrywerte.
|
|
126
|
+
|
|
127
|
+
Ausführliche Node-Berichte sind optional. Nur `BLUN_NODE_CRASH_REPORTS=1` aktiviert sie für den gestarteten Prozess. Die Berichte liegen unter `BLUN_HOME/diagnostics/crash-dumps`. Umgebungsvariablen und Netzwerkinformationen werden ausgeschlossen; Programmargumente, Dateipfade und weitere sensible Prozessdaten können trotzdem enthalten sein. Berichte vor einer Weitergabe prüfen.
|
|
128
|
+
|
|
129
|
+
Drei gemeinsam reservierte Plätze begrenzen die Anzahl dieser Node-Berichte, nicht deren Dateigröße. Ein ordentlich beendeter Prozess gibt seine Reservierung frei; ein späterer Prozess kann den Bericht dieses Platzes ersetzen. Aktive oder unklar verwaiste Reservierungen werden nicht automatisch entfernt. Sind alle Plätze belegt oder liegen alte Berichte mit Zufallskennung vor, bleiben neue Detailberichte aus, bis der Betreiber diese Dateien ausdrücklich geprüft und bereinigt hat. Der normale Start und das kleine Fehlerprotokoll bleiben davon unabhängig. Sitzungen und fremde Dateien werden nicht entfernt.
|
|
130
|
+
|
|
131
|
+
Native Windows-Dumps sind davon getrennt. Der mitgelieferte Helfer `bin/windows-node-crash-dump.cjs` bietet `--query-wer` für eine reine Abfrage. Eine Änderung erfordert ausdrücklich `--configure-wer --confirm-system-wide`, ein gesetztes `BLUN_HOME` und ausreichende Windows-Rechte. Sie betrifft alle Prozesse namens `node.exe`, nicht nur BLUN: drei Minidumps im angegebenen Diagnoseordner. Bei einem Teilfehler nennt die JSON-Ausgabe die bereits gesetzten Werte. Der normale Start ruft diesen Befehl niemals auf.
|
|
132
|
+
|
|
133
|
+
Node-Berichte erfassen unterstützte Node-Fehler; sie sind kein Beleg dafür, dass jeder native Windows-Abbruch erfasst wird. Die Funktion lässt den ursprünglichen Fehler und den vorgesehenen Prozessabbruch bestehen.
|
package/bin/core-bootstrap.js
CHANGED
|
@@ -4,7 +4,7 @@ const fs = require('node:fs');
|
|
|
4
4
|
const path = require('node:path');
|
|
5
5
|
const { pathToFileURL } = require('node:url');
|
|
6
6
|
|
|
7
|
-
const { acquireSharedRuntimeLease } = require('./update-lease');
|
|
7
|
+
const { acquireSharedRuntimeLease, tryAcquireUpdateLease } = require('./update-lease');
|
|
8
8
|
const { installWindowsNodeCrashDump } = require('./windows-node-crash-dump.cjs');
|
|
9
9
|
const { recordRuntimeExit } = require('./runtime-exit-ledger.cjs');
|
|
10
10
|
const { isStandaloneHelpRequest } = require('./launcher-mode');
|
|
@@ -19,15 +19,25 @@ async function runCoreBootstrap() {
|
|
|
19
19
|
}
|
|
20
20
|
const packageRoot = path.resolve(__dirname, '..');
|
|
21
21
|
const mainPath = path.join(packageRoot, 'blun.mjs');
|
|
22
|
-
let leaseResult;
|
|
22
|
+
let leaseResult;
|
|
23
|
+
let profileLease;
|
|
23
24
|
|
|
24
25
|
try {
|
|
25
26
|
leaseResult = await acquireSharedRuntimeLease({ packageRoot });
|
|
26
27
|
if (!leaseResult.acquired) throw new Error('RUNTIME_PROTECTION_UNAVAILABLE');
|
|
27
|
-
leaseResult.lease.assertOwned();
|
|
28
|
+
leaseResult.lease.assertOwned();
|
|
29
|
+
if (process.env.BLUN_PROFILE_HANDOFF === '1') {
|
|
30
|
+
if (!path.isAbsolute(process.env.BLUN_HOME || '')) throw new Error('PROFILE_RUNTIME_UNAVAILABLE');
|
|
31
|
+
const result = await tryAcquireUpdateLease({ packageRoot: process.env.BLUN_HOME, role: 'profile' });
|
|
32
|
+
if (!result.acquired) throw Object.assign(new Error(`PROFILE_RUNTIME_${result.reason.toUpperCase()}`),
|
|
33
|
+
{ code: result.reason === 'busy' ? 'PROFILE_RUNTIME_BUSY' : 'PROFILE_RUNTIME_UNAVAILABLE' });
|
|
34
|
+
profileLease = result.lease;
|
|
35
|
+
profileLease.assertOwned();
|
|
36
|
+
}
|
|
28
37
|
process.argv = [process.execPath, mainPath, ...process.argv.slice(2)];
|
|
29
38
|
await import(pathToFileURL(mainPath).href);
|
|
30
|
-
leaseResult.lease.assertOwned();
|
|
39
|
+
leaseResult.lease.assertOwned();
|
|
40
|
+
profileLease?.assertOwned();
|
|
31
41
|
} catch (error) {
|
|
32
42
|
if (!informational) {
|
|
33
43
|
try {
|
|
@@ -36,7 +46,8 @@ async function runCoreBootstrap() {
|
|
|
36
46
|
kind: 'bootstrap-failure', phase: 'startup', error });
|
|
37
47
|
} catch {}
|
|
38
48
|
}
|
|
39
|
-
try { diagnostics?.dispose(); } catch {}
|
|
49
|
+
try { diagnostics?.dispose(); } catch {}
|
|
50
|
+
try { await profileLease?.release(); } catch {}
|
|
40
51
|
try { await leaseResult?.lease?.release(); }
|
|
41
52
|
catch (leaseError) {
|
|
42
53
|
if (!informational) {
|
|
@@ -52,11 +63,16 @@ async function runCoreBootstrap() {
|
|
|
52
63
|
// The bundled CLI loads package assets lazily after module evaluation. Keep
|
|
53
64
|
// the install lease for this process's lifetime, without keeping print/help
|
|
54
65
|
// commands alive solely because of the owner server.
|
|
55
|
-
leaseResult.lease.unref();
|
|
66
|
+
leaseResult.lease.unref();
|
|
67
|
+
profileLease?.unref();
|
|
56
68
|
|
|
57
69
|
if (process.connected) {
|
|
58
70
|
try {
|
|
59
|
-
process.send({ type: CORE_LOADED_MESSAGE }, () => {
|
|
71
|
+
process.send({ type: CORE_LOADED_MESSAGE }, () => {
|
|
72
|
+
if (process.env.BLUN_PROFILE_HANDOFF === '1') {
|
|
73
|
+
process.channel?.unref();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
60
76
|
try {
|
|
61
77
|
process.disconnect();
|
|
62
78
|
} catch {}
|
|
@@ -70,7 +86,7 @@ if (require.main === module) {
|
|
|
70
86
|
void runCoreBootstrap().catch((error) => {
|
|
71
87
|
const message = error && error.message ? error.message : String(error);
|
|
72
88
|
fs.writeSync(process.stderr.fd, `BLUN Start fehlgeschlagen: ${message}\n`);
|
|
73
|
-
process.exit(1);
|
|
89
|
+
process.exit(error?.code === 'PROFILE_RUNTIME_BUSY' ? 75 : 1);
|
|
74
90
|
});
|
|
75
91
|
}
|
|
76
92
|
|