Skip to content

feat: per-object node parameters (object property bag) — POC#1314

Draft
stepmikhaylov wants to merge 7 commits into
developfrom
feat/object-property-bag
Draft

feat: per-object node parameters (object property bag) — POC#1314
stepmikhaylov wants to merge 7 commits into
developfrom
feat/object-property-bag

Conversation

@stepmikhaylov

@stepmikhaylov stepmikhaylov commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

⚠️ POC / proof-of-concept — opened for design review, not merge-ready.

Adds per-object node parameters: a client can attach parameters to an individual object that override a node's startup configuration for that object only, addressed by pipeline component id.

Flow

client.send_files(..., parameters={'<nodeId>': {...}})
  → rrext_process "open"
  → seeded onto the shared Entry (entry.setParameters)
  → node reads its OWN slice via self.params

Changes

  • engine (C++)Entry.parameters transport bag (namespaced by component id) + entry.setParameters() binding (entry.hpp, bindings.cpp).
  • rocketlibIInstanceBase.params: lazy, per-object accessor that merges the node's resolved config (Config.getNodeConfig) with the object's own slice (per-object overrides win); cached and reset on close() (filters.py).
  • aidata_conn open handler seeds the source Entry from the parameters argument.
  • client SDKsparameters= added to send_files / pipe / DataPipe (Python and TypeScript).
  • frame_grabber — reads self.params['interval'] to vary frame-extraction rate per object (rebuilds the reader since fps is baked at construction).

Isolation

self.params exposes only the processing node's own slice (entry.parameters[selfId]); other nodes' parameters are not reachable through it.

Open items / known rough edges (POC)

  • rocketlib → ai runtime dependency (local import) for getNodeConfig.
  • Shallow merge of object slice over node config.
  • UI declaration (Object section in services.json) and the engine-side rrext_process HTTP path are not included — this PR is the runtime/SDK path only.
  • POC demo test (client-python frame_grabber interval comparison).

Design discussion: #1292

🤖 Generated with Claude Code

@github-actions github-actions Bot added module:server C++ engine and server components module:nodes Python pipeline nodes module:client-python Python SDK and MCP client module:ai AI/ML modules module:client-typescript labels Jun 17, 2026
@github-actions

Copy link
Copy Markdown
🤖 Internal: Discord sync marker

Auto-managed by the Discord notification workflow. Stores the linked Discord message ID. Do not edit or delete.

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6a2e9244-6b90-4ad4-8361-8f118df78d42

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/object-property-bag

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@stepmikhaylov stepmikhaylov force-pushed the feat/object-property-bag branch from 10f1343 to 054b25b Compare June 18, 2026 12:16
@stepmikhaylov stepmikhaylov force-pushed the feat/object-property-bag branch from 054b25b to 566b9eb Compare June 19, 2026 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module:ai AI/ML modules module:client-python Python SDK and MCP client module:client-typescript module:nodes Python pipeline nodes module:server C++ engine and server components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant