Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5854170
#305 - unified calypso-sim binary with streaming, keymap, and autonom…
bracyw Apr 26, 2026
7ac8de7
#305 - extracted calypso-sim into standalone crate with Embedded-Base…
bracyw Apr 27, 2026
fdab310
#305 - added per-repo Claude Code slash commands and skills
bracyw Apr 27, 2026
113bec8
#305 - add calypso-sim VCU mimic stream-mode driver script
bracyw Jun 27, 2026
fb8e843
Merge remote-tracking branch 'origin/Develop' into 305-calypso-sim
bracyw Jun 27, 2026
15c5aa7
#305 - make manual_sim_buttons keymap self-contained with explicit units
bracyw Jun 27, 2026
43efd0a
#305 - harden calypso-sim modes and drop stray Embedded-Base gitlink
bracyw Jun 27, 2026
8eca5a2
#305 - drop unused crossterm dep and guard SimValue::initialize again…
bracyw Jun 28, 2026
92708d4
#305 - simplify calypso-sim: centralize publish-ownership policy and …
bracyw Jun 28, 2026
e06e6b4
#305 - stop tracking .claude commands/skills (already gitignored)
bracyw Jun 28, 2026
9425ebe
#305 - port calypso-sim test harness from Python to Rust
bracyw Jul 7, 2026
5b5a79c
#305 - add path-filtered CI for the calypso-sim crate
bracyw Jul 7, 2026
24c575d
#305 - preserve the simulate entry point when building standalone cal…
bracyw Jul 7, 2026
d44f3d1
#305 - simplify calypso-sim keymap randomization + main shutdown drai…
bracyw Jul 7, 2026
377753b
#305 - add keymap + CLI unit tests, prune the obvious encode test
bracyw Jul 7, 2026
24bc8cf
#305 - slim calypso-sim tests to a confirmable core
bracyw Jul 7, 2026
562857c
#305 - keep SimValue guard in the sim's vendored copy, leave main cra…
bracyw Jul 7, 2026
9522bdc
#305 - consolidate calypso-sim unit tests into src/tests/ and trim to…
bracyw Jul 7, 2026
0814d5e
#305 - share serverdata.proto via symlink to the main crate instead o…
bracyw Jul 7, 2026
71db7ec
#305 - remove the now-dead simulate path from the main calypso crate
bracyw Jul 8, 2026
a10e81c
#305 - hoist the CAN data model into calypso-cangen so calypso-sim sh…
bracyw Jul 8, 2026
4bfb647
#305 - rename the sim's "autonomous" mode to "mock" (flag, code, and …
bracyw Jul 8, 2026
dee9877
#305 - fix calypso-sim fmt CI step and harden stream JSON-RPC handling
bracyw Jul 8, 2026
53eadd8
#305 - fix map_unwrap_or clippy lints exposed once the sim CI reached…
bracyw Jul 8, 2026
f30d882
#305 - unify calypso-sim keymap + script into one recursive scenario …
bracyw Jul 12, 2026
6cd7d54
#305 - replace calypso-sim runtime topic-ownership with a static star…
bracyw Jul 13, 2026
2ce2324
#305 - harden sim range guards + validation, simplify topic derivation
bracyw Jul 13, 2026
c315892
#305 - consolidate calypso-sim publish value-policy + SimValue range …
bracyw Jul 13, 2026
a953038
#305 - extract calypso-sim event-loop bodies into named helpers
bracyw Jul 13, 2026
3dc7389
#305 - simplify calypso-sim scenario validation and value-resolution …
bracyw Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/calypso-sim-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: calypso-sim CI

# calypso-sim is a detached workspace, so the top-level `cargo *--all` in
# rust-ci.yml never reaches it. Build/check it here, but only when the sim
# crate — or a path-dependency it pulls in (the daedalus/calypso-cangen libs,
# or the CAN spec submodule) — actually changes, to avoid running on every PR.
on:
push:
branches:
- main
- Develop
paths: &sim-paths
- 'calypso-sim/**'
- 'libs/daedalus/**'
- 'libs/calypso-cangen/**'
- 'Odyssey-Definitions'
- '.github/workflows/calypso-sim-ci.yml'
pull_request:
branches:
- main
- Develop
paths: *sim-paths

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: calypso-sim
steps:
- name: Checkout
uses: actions/checkout@v7
with:
submodules: recursive
- name: Build
run: cargo build --all --verbose
- name: Test
run: cargo test --verbose
- name: Fmt
# NOT `--all`: cargo-fmt with `--all` walks this crate's path deps
# (../libs/*) up into the main `calypso` workspace and tries to format
# its members — including `src/lib.rs`, whose `mod proto` resolves to a
# generated file the sim CI never builds. Plain `cargo fmt` stays scoped
# to calypso-sim's own module tree.
run: cargo fmt --check
- name: Clippy
run: cargo clippy --verbose --all -- -D warnings
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@ serverdata.rs

# private testing
/privatetest/

# AI things
.claude
CLAUDE.md
17 changes: 9 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,21 @@ WORKDIR /usr/src/calypso
COPY . .

RUN git submodule update --init
RUN apt-get update && apt-get install -y libssl-dev build-essential cmake
RUN apt-get update && apt-get install -y libssl-dev build-essential cmake
RUN cargo install --path .
# The simulator was extracted into the standalone `calypso-sim` crate (its own
# detached workspace), so build it separately and install its binary as
# `simulate` to preserve the historical entry point that downstream compose
# files invoke (Argos `compose.calypso.yml` relies on the default CMD below;
# Argos `compose.calypso.debug.sim.yml` and Nero use `command: ["simulate"]`).
RUN cargo install --path ./calypso-sim

FROM debian:bookworm-slim
RUN apt update
RUN apt install openssl -y

COPY --from=builder /usr/local/cargo/bin/calypso /usr/local/bin/calypso
COPY --from=builder /usr/local/cargo/bin/simulate /usr/local/bin/simulate
COPY --from=builder /usr/local/cargo/bin/calypso-sim /usr/local/bin/simulate

CMD ["simulate"]

Expand Down
13 changes: 3 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,6 @@ Ex. `cansend vcan0 702#01010101FFFFFFFF`
Now view calypso interpret the can message and broadcast it on `mqttui`


### Simulation Mode
#### Run from build
- Same setup as above, then use the entry point `simulate` instead of `main`
- ```cargo run --bin simulate```
- ```cargo run --bin simulate -- -u localhost:1883```

#### Run from Docker
- ```docker pull ghcr.io/northeastern-electric-racing/calypso:Develop```
- ```docker run -d --rm --network host ghcr.io/northeastern-electric-racing/calypso:Develop```
- ```docker run -d --rm -e CALYPSO_SIREN_HOST_URL=127.0.0.1:1883 --network host ghcr.io/northeastern-electric-racing/calypso:Develop```
### Simulation

The MQTT simulator lives in [`calypso-sim/`](calypso-sim/) as its own standalone crate. See [calypso-sim/README.md](calypso-sim/README.md) for usage.
Loading