[Bounty proposal] fix(cli): support single conversation object and empty envelopes in conversations_to_sqlite ( proposed)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 88/100
Research direction
Start in sdks/python-cli/examples/conversations_to_sqlite.py and compare its input handling with the sibling exporters named in the issue. Run the hermetic tests in tests/test_conversations_to_sqlite.py, covering a single conversation object and empty conversations, items, and data wrappers. Done means valid inputs load successfully and empty wrappers produce zero SQLite rows.
Written by the indexing model from the issue text.
Description
Summary
This issue proposes a $25 bounty for fixing single conversation object support and empty wrapper resilience in sdks/python-cli/examples/conversations_to_sqlite.py.
Problem Statement
In conversations_to_sqlite.py:
if isinstance(items, dict):
for key in ("conversations", "items", "data"):
if isinstance(items.get(key), list):
items = items[key]
break
if not isinstance(items, list):
raise ValueError(f"{path}: expected a JSON array or wrapped object")
When a user exports an individual conversation (for instance via omi conversation get <id> --json > conversation.json), the file contains a single JSON object ({"id": "conv_...", "structured": {...}}). Because the dictionary does not contain "conversations", "items", or "data" as a list, the loop does not break, and items remains a dict.
The subsequent assertion if not isinstance(items, list): immediately raises:
ValueError: <path>: expected a JSON array or wrapped object.
In contrast, sibling exporters (action_items_to_sqlite.py, conversations_to_markdown.py, memories_to_markdown.py) support individual object exports cleanly via [items] fallback.
Proposed Solution
- Add
else: items = [items]to the dictionary unwrapping loop so individual conversation objects are loaded cleanly into SQLite. - Ensure empty wrappers like
{"conversations": []},{"items": []}, and{"data": []}produce 0 rows without error. - Add hermetic unit tests in
tests/test_conversations_to_sqlite.py.
Payout Coordinates
- EVM Address:
0xbB9686b9684421A8e326AC0F8B3eCf88Df975120 - Preferred Network: Base Mainnet (USDC)
- Dominant language
- Python
- Stars
- 13.6k
- Forks
- 2.5k
- Avg merge
- 8h 7m
- Merged PRs (30d)
- 391
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from BasedHardware/omi
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BasedHardware/omi#20084 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BasedHardware/omi#20075 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-2 days Newbie friendliness 76/100
BasedHardware/omi#20070 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
BasedHardware/omi#20064 ·
Maintainers usually reply within 1 day
-
[Bounty proposal] fix(agent-vm): oversized lease expiry escapes the ambiguity guard as OverflowErrorOpen
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
BasedHardware/omi#19798 ·
Maintainers usually reply within 1 day
All issues in BasedHardware/omi
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
kornia/kornia#5263 · 1 comment ·
Maintainers usually reply within 1 day
-
approved correction metadata
Difficulty 1/5 Under an hour Newbie friendliness 88/100
acl-org/acl-anthology#10133 · 1 comment ·
Maintainers usually reply within 1 day
-
bug needs-acceptance wg/evaluation-quality
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
vllm-project/semantic-router#4424 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
openlibhums/janeway#5604 ·
Maintainers usually reply within 1 day