Add todoocard skill (parent) with today-eats sub-skill - #82
Conversation
Self-contained Minis skill that picks a nearby restaurant at random, renders a 今天吃点啥 card, and full-frame pushes it to TodooCard six-color e-paper over BLE.
Submit todoocard/ as the Minis skill package. Shared BLE/convert lives on the parent; today-eats is a nested sub-skill for 今天吃点啥.
wsvn53
left a comment
There was a problem hiding this comment.
Thanks for the contribution! Found two small bugs during review — both are edge-case fallbacks, not blocking the main flow, but worth fixing:
1. Wrong fallback path for native_binary (todoocard/today-eats/scripts/cli.py)
native_bin = Path(cfg.get("native_binary") or (SCRIPTS / "native_sender"))SCRIPTS here is today-eats/scripts/, but native_sender is built into the parent's todoocard/scripts/ (see build_native_sender.sh). The default config value is correct, but if native_binary is ever cleared/empty in config.json, this fallback points to a path that will never exist — it silently falls through to the slow CLI sender instead of the native one. Should be PARENT_SCRIPTS / "native_sender".
2. Stale references to a file that doesn't exist: todoocard_cli.py
cli.py:raise SystemExit("... run: todoocard_cli.py scan && probe --save")meal_template.py(--sendbranch):subprocess.check_call(["python3", str(here / "todoocard_cli.py"), "eat", "--prepare-only"])
The actual entry point is cli.py, not todoocard_cli.py. The first is a misleading error message (copy-pasting it will just fail with "command not found"); the second is dead/broken code — if meal_template.py is ever run standalone with --send, it will crash looking for a nonexistent file.
Minor nit: PARENT_SCRIPTS = PARENT_ROOT / "scripts" is assigned twice in cli.py (once before the import, once right after) — harmless but looks like leftover from a rename.
Otherwise looks solid — no hardcoded device IDs/tokens, good protocol docs in references/protocol.md, evals present for both skills. Would like these fixed before merge.
Summary
todoocardfor TodooCard / 土豆片 six-color e-papertoday-eats(今天吃点啥)Layout
Why parent + sub-skill
TodooCard will grow more card types (weather, arbitrary image, etc.).
A single parent skill owns device binding and BLE; each sub-skill only describes its trigger and content pipeline.
Checklist
todoocardTest plan
/var/minis/skills/todoocard(entire folder)python3 today-eats/scripts/cli.py scan/probe --saveeat --prepare-onlythen fulleatpush