Skip to content

Feat/memory2 - plotting, examples, recorder module, semantic search#1769

Merged
leshy merged 136 commits intodevfrom
feat/memory2-svgvis2
Apr 24, 2026
Merged

Feat/memory2 - plotting, examples, recorder module, semantic search#1769
leshy merged 136 commits intodevfrom
feat/memory2-svgvis2

Conversation

@leshy
Copy link
Copy Markdown
Contributor

@leshy leshy commented Apr 10, 2026

  • adds data_type attribute to observations
  • adds raw storage of strings or numbers directly into metadata store (doesn't require separate fetch and blob store)
  • adds basic memory module (module that inits a db for you) and a Recorder and Query/Embedding module as example
  • adds 3d projections for a whole set of detections (ImageDetections2D -> ImageDetections3DPC) as opposed to previously singular ImageDetection2D -> ImageDetection3D
  • implements a new TimedSensorReplay shim that uses memory2 (our full reply file is down to 200Mb compressed vs 2Gb!)
  • switches over legacy tests to LegacyPickleStore (will delete dimos/memory soon entirely and deal with pickle files)
  • adds many examples to docs for memory
  • removes a test that ensures all modules have start and stop (was annoying to add boilerplate, especially now with CompositeResource and automatic detection of thread leaks we have)

leshy added 30 commits March 21, 2026 14:33
- SqliteVectorStore: only catch "no such table" OperationalError, re-raise others
- test_visualizer: fix det.ts → obs.ts, add @pytest.mark.tool, remove double teardown and duplicate assertion
- conftest: remove unreachable duplicate return
…ypes

- EmbeddingModel/CLIPModel: @overload so single-arg returns Embedding, multi-arg returns list
- conftest: cast getfixturevalue returns to correct Store/BlobStore types
- MobileCLIPModel, TorchReIDModel: add matching overloads for embed/embed_text
- Remove now-redundant cast in memory/embedding.py
…n guard, strict zip

- Delete dimos/memory/type.py (license header only, no code)
- Add validate_identifier() to search() and delete() in SqliteVectorStore
- Change zip(strict=False) to zip(strict=True) in Batch transformer
# Conflicts:
#	dimos/memory2/test_visualizer.py
#	dimos/memory2/transform.py
Comment thread dimos/memory2/stream.py Outdated
Comment thread dimos/memory2/stream.py Outdated
Comment thread dimos/memory2/transform.py Outdated
Comment thread dimos/memory2/transform.py
Comment thread dimos/msgs/nav_msgs/OccupancyGrid.py Outdated
Comment thread dimos/msgs/sensor_msgs/Image.py Outdated
Comment thread dimos/robot/unitree/go2/blueprints/smart/unitree_go2.py
Comment thread dimos/perception/detection/type/detection2d/imageDetections2D.py Outdated
Comment thread docs/capabilities/memory/index.py Outdated
Comment thread dimos/utils/testing/replay.py Outdated
@leshy leshy enabled auto-merge (squash) April 24, 2026 18:05
@leshy leshy merged commit 1d0d507 into dev Apr 24, 2026
3 of 4 checks passed
@leshy leshy deleted the feat/memory2-svgvis2 branch April 24, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants