Commit Graph

33 Commits

Author SHA1 Message Date
9010ec5cf4 chore(release): final release commit for 0.1.0
this commit includes a whole lotta fuck yeah, a whole lotta we fuckin
got this, and a lot of "please change the future."

i hope it works.

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 19:15:06 +00:00
854b858159 feat: DEMO IS READY BITCHES!! FUCK YEAH MOTHERFUCKERS
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 19:14:59 +00:00
d2fc967f1a chore: checkpoint for the demo. almost!!
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 19:14:52 +00:00
d1d3aec8aa chore: honestly fixed so much and forgot to commit
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 19:14:46 +00:00
f9f289f5b2 bug: fix keyboard input and app shutdown freeze
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 19:14:40 +00:00
e0c2b2653c feat(libmarathon): Connect engine NetworkingManager to Bevy GossipBridge
- Engine creates GossipBridge and returns it via NetworkingStarted event
- NetworkingManager forwards incoming gossip → GossipBridge.push_incoming()
- NetworkingManager polls GossipBridge.try_recv_outgoing() → broadcasts via iroh
- Bevy inserts GossipBridge resource when networking starts
- Added Debug impl for GossipBridge

Fixes gossip layer connectivity between iroh network and Bevy sync systems.

References: #131, #132
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 19:14:28 +00:00
a8822f8d92 feat: Add spawn/delete commands, fix session state and entity broadcast
- marathonctl now supports spawn/delete entity commands
- Fixed session state bug (was transitioning to Left every 5s)
- Fixed entity broadcast to detect Added<NetworkedEntity>
- Added AppCommandQueue pattern for app-level control commands

References: #131, #132
2026-02-07 18:41:26 +00:00
b7cf022687 feat(marathonctl): Add CLI arguments for multi-instance support
Added --db-path and --control-socket arguments to app binary to enable
running multiple instances simultaneously.

Updated marathonctl to use clap with --socket argument for targeting
different instances.

Enables multi-client testing with isolated databases and control sockets.

Refs #131, #132

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:41:14 +00:00
d8c3dc5ab5 tests(libmarathon): Add headless mode for automated testing
Implemented headless mode using MinimalPlugins and ScheduleRunnerPlugin
to enable running the app without rendering, controlled via Unix socket.

Changes:
- Added conditional compilation based on 'headless' feature flag
- Use MinimalPlugins with 60 FPS ScheduleRunner in headless mode
- Skip rendering plugins (Camera, Rendering, DebugUI, SessionUI)
- Made cube mesh/material assets optional for headless spawning
- Direct NetworkingPlugin + PersistencePlugin instead of MarathonPlugin
- Use app.run() instead of platform executor in headless mode

This enables:
- Running multiple instances for multi-client testing
- Automated testing via marathonctl without GUI overhead
- Background server instances for development
- CI/CD integration for networking tests

Refs #131, #132

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:22:33 +00:00
702d85ef60 bug(debug_ui): Fix egui session panel sync with engine state
The session UI panel was not updating when networking started via
control socket because poll_engine_events used commands.insert_resource
which queued updates until end of schedule. The UI could run before
the command was applied.

Fixed by:
- Initialize CurrentSession at startup in offline state (session.rs)
- Use direct ResMut mutation in poll_engine_events (engine_bridge.rs)
- Check session.state instead of resource existence (session_ui.rs)

This ensures Bevy's change detection triggers immediately when engine
events update the session state.

Refs #131, #132

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:22:20 +00:00
b03b71c1d9 feat(rendering): Vendor Bevy rendering crates (Phase 1 complete)
Closes #6, #7, #8, #9, #10
Refs #2, #122

Vendored bevy_render, bevy_core_pipeline, and bevy_pbr from Bevy v0.17.2
(commit 566358363126dd69f6e457e47f306c68f8041d2a) into libmarathon.

- ~51K LOC vendored to crates/libmarathon/src/render/
- Merged bevy_render_macros into crates/macros/
- Fixed 773→0 compilation errors
- Updated dependencies (encase 0.10→0.11, added 4 new deps)
- Removed bevy_render/pbr/core_pipeline from app Cargo features

All builds passing, macOS smoke test successful.

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:22:13 +00:00
d73e50bb9e chore: checkpoint before render engine vendoring
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:22:05 +00:00
9c19fc0296 feat: finished zero-copy migration!
now the entire networking and persistence stack is zero-copy with
single-allocation, single-copy reads.

Closes #128

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:21:22 +00:00
bb4393bb9e feat(libmarathon): added methods for #128
* migrated to `bytes` to ensure zero-copy

Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:20:14 +00:00
0bbc2c094a chore: cleaned up code
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:19:29 +00:00
c57a9c0787 chore: removed bincode for rkyv
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:19:21 +00:00
6b994aa7c4 docs: added issue templates and rfcs
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:19:07 +00:00
5cafe89e4f feat(ipad): first successful ipad build
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 18:18:57 +00:00
8f829e9537 moved some things around.
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:14 +00:00
52953c531a vendored bevy_egui and removed legacy code :/
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:12 +00:00
2d22fdbbc3 dried stuff
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:11 +00:00
bc5b013582 initial arhitectural overhaul
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:08 +00:00
9d4e603db3 initial commit for session and lock features
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:07 +00:00
e4754eef3d first pass at the session rfc
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:06 +00:00
63312e09cb initial working demo sans networking
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:04 +00:00
4965d13070 code review results
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:03 +00:00
e25078ba44 added persistence and networking
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:02 +00:00
93ab598db0 checkpoint
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:11:00 +00:00
a76306342d defined sync abstraction
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:10:59 +00:00
7acbadbc4a finished initial networking impl
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:10:57 +00:00
0f65b1baa2 format
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:10:55 +00:00
a15e018876 initial persistence commit
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2026-02-07 14:10:50 +00:00
3c456abadc chore: initial commit 2026-02-07 13:58:20 +00:00