Skip to content

feat: add ship receipts app shell#18

Open
Pro777 wants to merge 25 commits into
mainfrom
ship-receipts-app
Open

feat: add ship receipts app shell#18
Pro777 wants to merge 25 commits into
mainfrom
ship-receipts-app

Conversation

@Pro777

@Pro777 Pro777 commented May 30, 2026

Copy link
Copy Markdown

Summary

  • add a dedicated SHIP.RECEIPTS StackChan app instead of wiring Ship Receipts semantics into core firmware
  • introduce an app-local scene contract for card/avatar beats, metadata, sequencing state, and control commands
  • add checked-in examples plus a tiny helper script for emitting supported scene/control payloads

Why this shape

Ship Receipts should live as an app on top of StackChan core.

Core stays responsible for:

  • transport
  • motion/audio/LED device capabilities
  • diagnostics/logging
  • generic renderer primitives

The app owns:

  • scene semantics
  • mode/content logic
  • sequencing policy
  • app-local commands
  • Ship Receipts-specific orchestration

Included app-local capabilities

  • scene fields: id, mode, title, line, speaker, presentation_type, visual_template, emotion, duration_ms, motion, led, play_notification, sticky
  • sequence states:
    • DemoRotation
    • LiveOverride
    • LiveSticky
  • control commands:
    • shipReceiptsResumeDemo
    • shipReceiptsShowStatus
    • shipReceiptsSetMode

Artifacts

  • app shell and parser under firmware/main/apps/app_ship_receipts/
  • example payloads under firmware/main/apps/app_ship_receipts/examples/
  • helper script:
    • firmware/main/apps/app_ship_receipts/tools/emit_ship_receipts_scene.py

Notes

  • this PR intentionally keeps Ship Receipts semantics app-local
  • no firmware flash/live hardware verification was required yet for this architecture slice

@Pro777 Pro777 marked this pull request as ready for review July 1, 2026 11:04
@Pro777

Pro777 commented Jul 1, 2026

Copy link
Copy Markdown
Author

Progress checkpoint

Done: fixed the launcher warm-reboot loop so closing SHIP.RECEIPTS does not immediately auto-open it again on reboot; pushed a39eab4.
Verification: JSON examples + emitter script passed locally; attempted idf.py build, but this machine is missing the ESP-IDF v5.5.4 Python env expected by /Users/johnmalone/Projects/third-party/esp-idf-v5.5.4/export.sh.
Status: marked ready for review; CodeQL checks are rerunning on PR #18.

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