Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughAdds optional process ID (pid) tracking across worker SDKs and the engine: pid is accepted on registration, stored on Worker, exposed in WorkerInfo listings, and logged during register/unregister flows. SDKs (Node, Python, Rust) now include pid in worker metadata. Changes
Sequence Diagram(s)mermaid Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@frameworks/motia/motia-py/packages/motia/pyproject.toml`:
- Around line 51-53: Replace the two incorrect GitHub Actions working-directory
entries that are currently set to "motia/motia-py/packages/motia" with the
correct project root "frameworks/motia/motia-py/packages/motia" so the relative
dependency path in pyproject.toml (the iii-sdk path) resolves during release;
update both occurrences of the YAML key working-directory in release.yml
accordingly.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 90a99f92-938f-486c-b608-825e85713394
⛔ Files ignored due to path filters (2)
frameworks/motia/motia-py/packages/motia/uv.lockis excluded by!**/*.lockframeworks/motia/motia-py/playground/uv.lockis excluded by!**/*.lock
📒 Files selected for processing (8)
engine/src/modules/worker/mod.rsengine/src/workers/mod.rsengine/tests/invocation_extensibility.rsframeworks/motia/motia-py/packages/motia/pyproject.tomlframeworks/motia/motia-py/playground/pyproject.tomlsdk/packages/node/iii/src/iii.tssdk/packages/python/iii/src/iii/iii.pysdk/packages/rust/iii/src/iii.rs
| [tool.uv.sources] | ||
| iii-sdk = { path = "../../../../../sdk/packages/python/iii" } | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Directory existence check:"
for d in frameworks/motia/motia-py/packages/motia motia/motia-py/packages/motia; do
if [ -d "$d" ]; then
echo "exists: $d"
else
echo "missing: $d"
fi
done
echo
echo "Release workflow working-directory lines:"
rg -n 'working-directory:\s*.*motia.*/packages/motia' .github/workflows/release.yml
echo
echo "CI workflow working-directory lines:"
rg -n 'working-directory:\s*frameworks/motia/motia-py/packages/motia' .github/workflows/ci.ymlRepository: MotiaDev/motia
Length of output: 724
Update release.yml working-directory to match actual project structure.
The pyproject.toml Lines 51-53 introduces a relative path dependency (../../../../../sdk/packages/python/iii) that resolves correctly from frameworks/motia/motia-py/packages/motia, the actual project root in this repository. However, .github/workflows/release.yml lines 129 and 387 use working-directory: motia/motia-py/packages/motia, which does not exist and will break dependency resolution during release. Update both occurrences to frameworks/motia/motia-py/packages/motia to match the CI workflow configuration.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@frameworks/motia/motia-py/packages/motia/pyproject.toml` around lines 51 -
53, Replace the two incorrect GitHub Actions working-directory entries that are
currently set to "motia/motia-py/packages/motia" with the correct project root
"frameworks/motia/motia-py/packages/motia" so the relative dependency path in
pyproject.toml (the iii-sdk path) resolves during release; update both
occurrences of the YAML key working-directory in release.yml accordingly.
ytallo
left a comment
There was a problem hiding this comment.
The monorepo uv path source is fine for local development, but the published motia package dependency should not be relaxed to an unbounded iii-sdk requirement. Please keep a compatible version floor or range so downstream consumers do not resolve older or future incompatible SDK releases.
…-engine # Conflicts: # engine/src/modules/worker/mod.rs # engine/src/workers/mod.rs
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
engine/src/workers/mod.rs (1)
111-134: Consider refactoring to reduce parameter count.The
#[allow(clippy::too_many_arguments)]suppression indicates this function has accumulated too many parameters (8 total). While acceptable for now, consider refactoring to use a struct parameter (e.g.,WorkerMetadataUpdate) in a future iteration to improve maintainability and make the API clearer.The conditional update pattern (
if pid.is_some()) is consistent with hownameandosare handled.♻️ Optional: Example struct-based approach
pub struct WorkerMetadataUpdate { pub runtime: String, pub version: Option<String>, pub name: Option<String>, pub os: Option<String>, pub telemetry: Option<WorkerTelemetryMeta>, pub pid: Option<u32>, } pub fn update_worker_metadata(&self, worker_id: &Uuid, update: WorkerMetadataUpdate) { // ... }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@engine/src/workers/mod.rs` around lines 111 - 134, The function update_worker_metadata currently accepts many parameters (runtime, version, name, os, telemetry, pid) and uses #[allow(clippy::too_many_arguments)]; refactor by introducing a single struct (e.g., WorkerMetadataUpdate) that contains the fields runtime: String, version: Option<String>, name: Option<String>, os: Option<String>, telemetry: Option<WorkerTelemetryMeta>, pid: Option<u32> and change the signature to update_worker_metadata(&self, worker_id: &Uuid, update: WorkerMetadataUpdate); inside the method, replace direct parameter usage with update.runtime, update.version, etc., preserving the current conditional update behavior (e.g., only set worker.name if update.name.is_some()) so callers build and pass the struct instead of many arguments.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@engine/src/workers/mod.rs`:
- Around line 111-134: The function update_worker_metadata currently accepts
many parameters (runtime, version, name, os, telemetry, pid) and uses
#[allow(clippy::too_many_arguments)]; refactor by introducing a single struct
(e.g., WorkerMetadataUpdate) that contains the fields runtime: String, version:
Option<String>, name: Option<String>, os: Option<String>, telemetry:
Option<WorkerTelemetryMeta>, pid: Option<u32> and change the signature to
update_worker_metadata(&self, worker_id: &Uuid, update: WorkerMetadataUpdate);
inside the method, replace direct parameter usage with update.runtime,
update.version, etc., preserving the current conditional update behavior (e.g.,
only set worker.name if update.name.is_some()) so callers build and pass the
struct instead of many arguments.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ab65f1ae-f759-4b7c-be38-dd08e641e0fb
📒 Files selected for processing (3)
engine/src/modules/worker/mod.rsengine/src/workers/mod.rssdk/packages/node/iii/src/iii.ts
🚧 Files skipped from review as they are similar to previous changes (1)
- sdk/packages/node/iii/src/iii.ts
Previous prs:
iii-hq/sdk#40
#180
Summary by CodeRabbit
New Features
Logging / Observability
Tests