machinaos 0.0.82 → 0.0.84
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/cli/ports.py +16 -3
- package/client/package.json +1 -1
- package/package.json +1 -1
- package/scripts/install.js +24 -8
- package/server/uv.lock +9 -9
package/cli/ports.py
CHANGED
|
@@ -77,9 +77,22 @@ def kill_pid(pid: int, *, graceful_timeout: float = 3.0) -> bool:
|
|
|
77
77
|
if sys.platform == "win32":
|
|
78
78
|
try:
|
|
79
79
|
os.kill(pid, signal.CTRL_BREAK_EVENT)
|
|
80
|
-
except (OSError, ProcessLookupError):
|
|
81
|
-
#
|
|
82
|
-
#
|
|
80
|
+
except (OSError, ProcessLookupError, SystemError):
|
|
81
|
+
# Fall back to TerminateProcess via psutil.terminate.
|
|
82
|
+
# * ``OSError`` -- target wasn't in our process group.
|
|
83
|
+
# * ``SystemError`` -- CPython issue #106148: on
|
|
84
|
+
# Windows, ``os.kill`` returns success AND sets an
|
|
85
|
+
# ``OSError`` when ``GenerateConsoleCtrlEvent``
|
|
86
|
+
# fails with ERROR_INVALID_PARAMETER (e.g. the
|
|
87
|
+
# target process isn't in the caller's console
|
|
88
|
+
# group). CPython detects the inconsistency and
|
|
89
|
+
# raises ``SystemError`` instead of propagating
|
|
90
|
+
# the underlying OSError. ``kill_pid`` is used to
|
|
91
|
+
# clean up stale state (port squatters, orphans
|
|
92
|
+
# from a prior session) -- none of them are in
|
|
93
|
+
# our console group, so this path fires every
|
|
94
|
+
# time on Windows and used to crash
|
|
95
|
+
# ``machina stop``.
|
|
83
96
|
proc.terminate()
|
|
84
97
|
else:
|
|
85
98
|
proc.terminate()
|
package/client/package.json
CHANGED
package/package.json
CHANGED
package/scripts/install.js
CHANGED
|
@@ -126,16 +126,20 @@ if (uvVersion) {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
// Temporal binary: downloaded
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
129
|
+
// Temporal binary: downloaded eagerly during install (step [6/6])
|
|
130
|
+
// by ``python -m services.temporal._install``, same call ``machina
|
|
131
|
+
// build`` already makes. The pooch cache (~/.cache/MachinaOs/...)
|
|
132
|
+
// makes re-runs sub-second. Done eagerly because
|
|
133
|
+
// ``TemporalServerRuntime._pre_spawn`` unconditionally calls
|
|
134
|
+
// ``ensure_temporal_binaries`` -- the runtime always uses the
|
|
135
|
+
// pooch-downloaded binary regardless of any system ``temporal`` on
|
|
136
|
+
// PATH -- so pre-fetching here eliminates a 30-90 s stall on the
|
|
137
|
+
// user's first ``machina start``.
|
|
134
138
|
let temporalVersion = getVersion('temporal --version');
|
|
135
139
|
console.log(
|
|
136
140
|
temporalVersion
|
|
137
|
-
? ` temporal: ${temporalVersion} (system install,
|
|
138
|
-
: ' temporal:
|
|
141
|
+
? ` temporal: ${temporalVersion} (system install, pooch copy installed below)`
|
|
142
|
+
: ' temporal: not on PATH, pooch copy installed below',
|
|
139
143
|
);
|
|
140
144
|
|
|
141
145
|
// agent-browser is managed by the Python backend
|
|
@@ -156,7 +160,7 @@ try {
|
|
|
156
160
|
// Calculate total steps
|
|
157
161
|
let totalSteps = 1; // .env always
|
|
158
162
|
if (!clientDistExists) totalSteps += 2; // client deps + build
|
|
159
|
-
totalSteps +=
|
|
163
|
+
totalSteps += 4; // Python deps + bytecode compile + CLI venv + Temporal binary
|
|
160
164
|
let step = 0;
|
|
161
165
|
|
|
162
166
|
// Create .env if needed
|
|
@@ -228,6 +232,18 @@ try {
|
|
|
228
232
|
}
|
|
229
233
|
run(`uv pip install --python "${cliVenvPython}" --quiet -e .`, ROOT);
|
|
230
234
|
|
|
235
|
+
// Eagerly fetch the official Temporal CLI binary (~90 MB tarball
|
|
236
|
+
// from temporal.download/cli/archive/latest). Same call ``machina
|
|
237
|
+
// build`` step [6/6] makes. The runtime supervisor unconditionally
|
|
238
|
+
// uses this pooch-cached copy via
|
|
239
|
+
// ``TemporalServerRuntime._pre_spawn`` -- it ignores any system
|
|
240
|
+
// ``temporal`` on PATH -- so pre-fetching at install time turns a
|
|
241
|
+
// 30-90 s stall on first ``machina start`` into a sub-second
|
|
242
|
+
// cache hit. Idempotent on re-install (pooch cache).
|
|
243
|
+
step++;
|
|
244
|
+
console.log(`[${step}/${totalSteps}] Installing Temporal binaries...`);
|
|
245
|
+
run('uv run python -m services.temporal._install', serverDir, 600000);
|
|
246
|
+
|
|
231
247
|
// WhatsApp RPC is now an npm dependency - binary downloaded via postinstall
|
|
232
248
|
console.log('');
|
|
233
249
|
console.log('Done!');
|
package/server/uv.lock
CHANGED
|
@@ -250,30 +250,30 @@ lxml = [
|
|
|
250
250
|
|
|
251
251
|
[[package]]
|
|
252
252
|
name = "boto3"
|
|
253
|
-
version = "1.43.
|
|
253
|
+
version = "1.43.15"
|
|
254
254
|
source = { registry = "https://pypi.org/simple" }
|
|
255
255
|
dependencies = [
|
|
256
256
|
{ name = "botocore" },
|
|
257
257
|
{ name = "jmespath" },
|
|
258
258
|
{ name = "s3transfer" },
|
|
259
259
|
]
|
|
260
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
260
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4f/1f/ef8f2967570c221681056134d02e70ebd490b795c17cf44d52f898344fbd/boto3-1.43.15.tar.gz", hash = "sha256:8dbb1a129c693313218a099d4f086f3bb48f50159b74b5bd8869e1037fde4101", size = 113161, upload-time = "2026-05-26T19:45:14.203Z" }
|
|
261
261
|
wheels = [
|
|
262
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
262
|
+
{ url = "https://files.pythonhosted.org/packages/af/8f/373833a5ca86f5b89c7d918c6130aece8d5e43b0c8bdbefac75145abf3f3/boto3-1.43.15-py3-none-any.whl", hash = "sha256:67510ef57a79f0d53b963b0dd1d1741d1e3de1eb2ef6cf1737b6a6bddd34b8cb", size = 140537, upload-time = "2026-05-26T19:45:11.152Z" },
|
|
263
263
|
]
|
|
264
264
|
|
|
265
265
|
[[package]]
|
|
266
266
|
name = "botocore"
|
|
267
|
-
version = "1.43.
|
|
267
|
+
version = "1.43.15"
|
|
268
268
|
source = { registry = "https://pypi.org/simple" }
|
|
269
269
|
dependencies = [
|
|
270
270
|
{ name = "jmespath" },
|
|
271
271
|
{ name = "python-dateutil" },
|
|
272
272
|
{ name = "urllib3" },
|
|
273
273
|
]
|
|
274
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
274
|
+
sdist = { url = "https://files.pythonhosted.org/packages/93/06/4eb6a40f2a5861cd48743765a80e5a6534f26ec0e9884502572cfadeca50/botocore-1.43.15.tar.gz", hash = "sha256:eed2e24962af03ec361a1dc6924f6b2cff0215a0a2f5c690eab655f43d1f700f", size = 15383526, upload-time = "2026-05-26T19:44:57.627Z" }
|
|
275
275
|
wheels = [
|
|
276
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
276
|
+
{ url = "https://files.pythonhosted.org/packages/51/34/dfdd494cf22a88be269bcf648d28a65f85dcc0f914f52a02f8e740d6ccaf/botocore-1.43.15-py3-none-any.whl", hash = "sha256:bda4923998d1bf17f8eb6bc767a0923fbb9e525ecd50f839b041e469b46e1c94", size = 15063140, upload-time = "2026-05-26T19:44:54.54Z" },
|
|
277
277
|
]
|
|
278
278
|
|
|
279
279
|
[[package]]
|
|
@@ -2853,14 +2853,14 @@ wheels = [
|
|
|
2853
2853
|
|
|
2854
2854
|
[[package]]
|
|
2855
2855
|
name = "s3transfer"
|
|
2856
|
-
version = "0.17.
|
|
2856
|
+
version = "0.17.1"
|
|
2857
2857
|
source = { registry = "https://pypi.org/simple" }
|
|
2858
2858
|
dependencies = [
|
|
2859
2859
|
{ name = "botocore" },
|
|
2860
2860
|
]
|
|
2861
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
2861
|
+
sdist = { url = "https://files.pythonhosted.org/packages/11/b3/bcdc2f58fa92592db511beda154c2c08d28f21f6c4637f06a42a24b10c21/s3transfer-0.17.1.tar.gz", hash = "sha256:042dd5e3b1b512355e35a23f0223e426b7042e80b97830ea2680ddce327fc45e", size = 159439, upload-time = "2026-05-26T19:45:01.714Z" }
|
|
2862
2862
|
wheels = [
|
|
2863
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2863
|
+
{ url = "https://files.pythonhosted.org/packages/85/dd/904873250a6554fbae40cddbf9198e3cc37a2f1319d5e1a5ce82fe269c17/s3transfer-0.17.1-py3-none-any.whl", hash = "sha256:5b9827d1044159bbb01b86ef8902760ea39281927f5de31de75e1d657177bf4c", size = 88264, upload-time = "2026-05-26T19:45:00.452Z" },
|
|
2864
2864
|
]
|
|
2865
2865
|
|
|
2866
2866
|
[[package]]
|