Repository navigation
Conversation
There was a problem hiding this comment.
go2 replay realtime (arm64)
Details
| Benchmark suite | Current: a76e782 | Previous: 8b17f2f | Ratio |
|---|---|---|---|
peak memory |
1613.082 MB |
1582.812 MB |
1.02 |
peak threads |
354 threads |
360 threads |
0.98 |
network (transport) |
2724.833 MB |
2721.697 MB |
1.00 |
disk write |
1.559 MB |
1.617 MB |
0.96 |
instructions |
115.504 G |
115.471 G |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## cc/feat/native-package-builds #4463 +/- ##
=================================================================
+ Coverage 80.45% 80.48% +0.02%
=================================================================
Files 1655 1657 +2
Lines 155457 155620 +163
Branches 13154 13162 +8
=================================================================
+ Hits 125077 125253 +176
+ Misses 26801 26790 -11
+ Partials 3579 3577 -2
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 3 files with indirect coverage changes 🚀 New features to boost your workflow:
|
d966f78 to
d9c1c33
Compare
|
| """Qualify external classes by their definition, independent of registration.""" | ||
| if module_class.__module__ == "dimos" or module_class.__module__.startswith("dimos."): | ||
| return None | ||
| return f"{module_class.__module__}.{module_class.__qualname__}" |
There was a problem hiding this comment.
external_module_name() gives script-defined classes different names in the parent and its workers. Running examples/rpc_calls.py as a script names Calculator as __main__.Calculator in the parent. Python's forkserver workers reload the script as __mp_main__, so the module serves calls under __mp_main__.Calculator. RPCClient still calls __main__.Calculator, causing build and lifecycle calls to time out.
Normalize these two module names, or pass the parent's chosen identity to the worker before construction. This startup regression must be fixed before merging.
Knowledge Base Used:
Artifacts
Executable script-module lifecycle check
- Defines Calculator in the executed script and exercises real forkserver deployment and lifecycle RPC with a matched-topic control, isolating the identity regression.
Executable four-snapshot validation command
- Extracts the four specified snapshots and runs the identical harness with captured command records, making the comparison reproducible.
Python interpreter restoration output
- Captures the successful installation of Python 3.12.15 into the untracked setup directory, resolving the missing interpreter blocker.
Lifecycle RPC output before PR4463
- Runs the script against af742c1 and observes successful default start, proving the baseline works.
Lifecycle RPC timeout at PR4463
- Runs the same script against d9c1c33 and observes mismatched identities and a default-start timeout, confirming the regression.
Lifecycle RPC timeout at PR4464
- Runs the same script against e125047 and observes the same default-start timeout, proving PR4464 does not fix this path.
Lifecycle RPC timeout at PR4465
- Runs the same script against 787fc72 and observes the same default-start timeout, proving PR4465 does not fix this path.
Higher-snapshot identity code and checkout status
- Captures numbered identity source, matching relevant blob IDs, stack diff statistics, and unchanged tracked checkout status, corroborating the runtime results.
Full executed harness and runner source
- Captures the complete source of both executed scripts using cat with command and exit metadata, preserving the exact validation implementation.
| seen.add(bp.name) | ||
| previous = seen.get(bp.name) | ||
| if previous is not None and previous is not bp.module: | ||
| raise ValueError( |
There was a problem hiding this comment.
function is called eliminate but behavior changed to raise error seems weird
| from typing import Any | ||
|
|
||
|
|
||
| def external_module_name(module_class: type[Any]) -> str | None: |
There was a problem hiding this comment.
if only one function and no multiple files imports it then just keep it single file
Depends on #4462. Layer 3 of 5; base is the preceding stack branch.
Problem
Solution
dimosanddimos.*.__mp_main__alias, and support qualified or escaped configuration addresses. Streams, topics and TF frames remain unchanged.Validation: 92 focused local tests passed, including script-defined worker RPC and documentation branding; all 19 blueprint Python documentation blocks passed. Focused Ruff, mypy and whitespace checks passed. The transport documentation block now passes the former RPC hang but encounters an LCM handler startup failure also reproduced on unchanged layer 2. CI has not been rerun.