dimensionalOS / dimensionalOS/dimos

PY API - Return values that are dicts: instance methods unusable on the client

Open
#1,966 0 comments 0 reactions 1 assignee View on GitHub

@paul-nechifor is already working on this.

Since May 3, 2026.

api bug
Dominant language
Python
Stars
4.5k
Forks
808
Avg merge
3d 5h
Merged PRs (30d)
233

Description

Calling any RPC that returns a dict (e.g. publish_request returning the WebRTC response) and then doing r.get("data"), r.keys(), r.values() etc. from the client side fails with:

AttributeError: cannot access 'get'

Dunder methods (__getitem__, __repr__, __contains__, __iter__, ...) are exposed by RPyC's netref class even when allow_public_attrs=False.

resp.get('data')  → AttributeError: cannot access 'get'
resp['data']      → KeyError: 'data'   (server-side dict really had no 'data' key — this is normal Python)
repr(resp)        → "{'status': 'ok', 'message': 'Fake publish'}"

for k, v in resp.items() and resp.get(k, default) style code is broken; bracket indexing, len(), in, iteration, and printing all work.

the dict is a netref, and the client-side VoidService doesn't allow public attribute reads. same issue as https://github.com/dimensionalOS/dimos/issues/1965


Synced from DIM-837 by summer

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.