Skip to content

Add indexed memory2 replay uploads#3185

Draft
xiaoyaoqilan wants to merge 9 commits into
dimensionalOS:mainfrom
xiaoyaoqilan:codex/memory2-replay-upload
Draft

Add indexed memory2 replay uploads#3185
xiaoyaoqilan wants to merge 9 commits into
dimensionalOS:mainfrom
xiaoyaoqilan:codex/memory2-replay-upload

Conversation

@xiaoyaoqilan

Copy link
Copy Markdown
Contributor

Summary

  • create WAL-consistent SQLite snapshots from memory2 recordings
  • validate snapshot integrity before upload
  • upload memory2 databases through the replay repository CLI
  • maintain an owner/repository dataset index so recordings can be discovered by another developer
  • add dimos mem upload as the user-facing entry point

Motivation

This is PR 3 of the #3158 implementation stack. It connects the current local memory2 storage system to the remote repository without requiring users to zip datasets manually.

Stack dependency

Validation

  • targeted memory2 snapshot, index, and upload tests passed
  • SQLite integrity validation is covered
  • ruff check, format checks, and targeted mypy passed

@autofix-ci

autofix-ci Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Hi! I'm autofix logoautofix.ci, a bot that automatically fixes trivial issues such as code formatting in pull requests.

I would like to apply some automated changes to this pull request, but it looks like I don't have the necessary permissions to do so. To get this pull request into a mergeable state, please do one of the following two things:

  1. Allow edits by maintainers for your pull request, and then re-trigger CI (for example by pushing a new commit).
  2. Manually fix the issues identified for your pull request (see the GitHub Actions output for details on what I would like to change).

@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
3061 1 3060 177
View the top 1 failed test(s) by shortest run time
dimos.protocol.pubsub.impl.webrtc.test_replay_repository_cli::test_serve_rejects_missing_s3_bucket
Stack Traces | 0.012s run time
tmp_path = PosixPath('.../pytest-0/popen-gw1/test_serve_rejects_missing_s3_0')

    def test_serve_rejects_missing_s3_bucket(tmp_path: Path) -> None:
        result = runner.invoke(
            replay_repository_cli.replay_repository_app,
            ["serve", "--root", str(tmp_path), "--backend", "s3"],
        )
    
        assert result.exit_code == 2
>       assert "--s3-bucket is required" in result.output
E       assert '--s3-bucket is required' in "\x1b[33mUsage: \x1b[0mroot serve [OPTIONS]\n\x1b[2mTry \x1b[0m\x1b[2;34m'root serve \x1b[0m\x1b[1;2;34m-\x1b[0m\x1b[1;2;34m-help\x1b[0m\x1b[2;34m'\x1b[0m\x1b[2m for help.\x1b[0m\n\x1b[31m╭─\x1b[0m\x1b[31m Error \x1b[0m\x1b[31m─────────────────────────────────────────────────────────────────────\x1b[0m\x1b[31m─╮\x1b[0m\n\x1b[31m│\x1b[0m Invalid value: DIMOS_REPLAY_S3_BUCKET or \x1b[1;36m-\x1b[0m\x1b[1;36m-s3\x1b[0m\x1b[1;36m-bucket\x1b[0m is required for the s3  \x1b[31m│\x1b[0m\n\x1b[31m│\x1b[0m backend                                                                      \x1b[31m│\x1b[0m\n\x1b[31m╰──────────────────────────────────────────────────────────────────────────────╯\x1b[0m\n"
E        +  where "\x1b[33mUsage: \x1b[0mroot serve [OPTIONS]\n\x1b[2mTry \x1b[0m\x1b[2;34m'root serve \x1b[0m\x1b[1;2;34m-\x1b[0m\x1b[1;2;34m-help\x1b[0m\x1b[2;34m'\x1b[0m\x1b[2m for help.\x1b[0m\n\x1b[31m╭─\x1b[0m\x1b[31m Error \x1b[0m\x1b[31m─────────────────────────────────────────────────────────────────────\x1b[0m\x1b[31m─╮\x1b[0m\n\x1b[31m│\x1b[0m Invalid value: DIMOS_REPLAY_S3_BUCKET or \x1b[1;36m-\x1b[0m\x1b[1;36m-s3\x1b[0m\x1b[1;36m-bucket\x1b[0m is required for the s3  \x1b[31m│\x1b[0m\n\x1b[31m│\x1b[0m backend                                                                      \x1b[31m│\x1b[0m\n\x1b[31m╰──────────────────────────────────────────────────────────────────────────────╯\x1b[0m\n" = <Result SystemExit(2)>.output

result     = <Result SystemExit(2)>
tmp_path   = PosixPath('.../pytest-0/popen-gw1/test_serve_rejects_missing_s3_0')

.../impl/webrtc/test_replay_repository_cli.py:154: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant