WEFT_OS/crates
Marco Allegretti 1e4ced9a39 feat(appd): implement TerminateApp process signaling via abort channel
SessionRegistry now tracks a oneshot abort sender per active session:
- abort_senders: HashMap<u64, oneshot::Sender<()>> field added.
- register_abort(session_id): creates the channel, stores the sender,
  returns the receiver to the supervise task.
- terminate(): removes the session state AND drops the abort sender,
  closing the channel and triggering the receiver in supervise.

runtime::supervise() now accepts abort_rx: oneshot::Receiver<()>:
- After the READY signal is received, the process-wait loop uses
  tokio::select! on child.wait() vs abort_rx.
- On abort: logs intent, calls child.kill(), then sets state Stopped.
- On natural exit: logs exit status, sets state Stopped.

dispatch::LaunchApp: calls register_abort immediately after launch,
passes the receiver to the spawned supervise task.

Integration test updated to pass the abort receiver.
2026-03-11 09:37:09 +01:00
..
weft-appd feat(appd): implement TerminateApp process signaling via abort channel 2026-03-11 09:37:09 +01:00
weft-build-meta Initialize Rust workspace and repository metadata 2026-03-10 18:47:06 +01:00
weft-compositor test(compositor): add protocol unit tests and stale identifier rejection 2026-03-11 08:12:11 +01:00
weft-runtime feat(runtime): add weft-runtime crate skeleton 2026-03-11 09:27:30 +01:00
weft-servo-shell feat(servo-shell): add weft-shell-protocol client-side binding 2026-03-11 08:05:03 +01:00