From e076bf410fed0d5c88c89c920be666f0ff0d8d36 Mon Sep 17 00:00:00 2001 From: agent-7e3bbc424e07835b Date: Sun, 19 Apr 2026 21:01:05 +0200 Subject: [PATCH] build(agent): new-agents-2#7e3bbc iteration --- MVP_ROADMAP.md | 54 +++++++++++++++++++ .../catopt_bridge.py | 3 +- 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 MVP_ROADMAP.md diff --git a/MVP_ROADMAP.md b/MVP_ROADMAP.md new file mode 100644 index 0000000..82b5fa0 --- /dev/null +++ b/MVP_ROADMAP.md @@ -0,0 +1,54 @@ +## CosmosMesh MVP Roadmap + +This document outlines a concrete, production-minded MVP plan to bootstrap CosmosMesh as described in the project brief. It complements the existing MVP skeleton in the repo and provides actionable milestones for incremental delivery. + +### Vision +- Privacy-preserving, offline-first federation for multi-asset space missions. +- Lightweight, vendor-agnostic bridge (EnergiBridge-like) mapping CosmosMesh primitives to a canonical IR. +- End-to-end delta-sync with deterministic replay for islanding and reconnection. +- Governance, identity, and secure aggregation baked in from the start. + +### MVP Phases (8–12 weeks) + +Phase 0 — Core protocol and 2 starter adapters (4 weeks) +- Implement protocol skeleton and TLS transport between two starter adapters (e.g., rover_planner and habitat_module). +- Integrate a lightweight ADMM-lite coordinator on the edge. +- Establish end-to-end delta-sync path with deterministic replay for islanding. +- Deploy a toy objective (mesh energy balance, simple task allocation) to verify convergence. + +Phase 1 — Governance and identity (4 weeks) +- Add governance ledger scaffolding and tamper-evident audit trails. +- Implement identity layer: DIDs or short-lived certificates for assets; per-message crypto-tags. +- Provide default secure aggregation settings for SharedVariables. + +Phase 2 — Cross-domain demo and SDK (2 weeks) +- Extend adapters to cover a second domain (e.g., satellite domain) and demonstrate cross-domain coordination. +- Publish CosmosMesh SDK bindings (Python/C++) and a canonical transport. +- Provide a toy contract example and a reference transport layer. + +Phase 3 — HIL and KPIs (2 weeks) +- Hardware-in-the-loop tests (Gazebo/ROS) across 2–3 devices. +- KPI dashboards for convergence speed, delta size, latency, adapter conformance, and governance auditability. + +### Architectural notes +- Canonical bridge (EnergiBridge-style): map CosmosMesh primitives to a vendor-agnostic CatOpt IR. +- GoC registry for adapter/versioning; codegen hooks to simplify adding new adapters. +- Minimal DSL seeds to bootstrap interoperability across adapters. + +### Risk and mitigations +- Data leakage: enforce secure aggregation and per-signal privacy budgets. +- Latency variance/partitions: bounded-staleness ADMM-lite with safe fallback. +- Compliance friction: lightweight governance and cryptographic signatures. + +### Success criteria +- End-to-end convergence on the toy objective across 2–3 adapters. +- Deterministic replay works across partitions and reconnects. +- Governance and identity mechanisms are exercised in demos. +- The repository provides a clear extension path to cross-vendor interoperability. + +### How to contribute +- Add or adjust adapters that implement the minimal interface: readState, exposeLocalProblemData, applyCommand. +- Extend the DSL sketch and GoC registry schemas. +- Write tests that exercise the delta-sync and ADMM-lite convergence in multi-adapter scenarios. + +This roadmap is intentionally pragmatic: we ship a stable MVP quickly and expand features in well-scoped iterations. diff --git a/src/cosmosmesh_privacy_preserving_federated/catopt_bridge.py b/src/cosmosmesh_privacy_preserving_federated/catopt_bridge.py index 13d3233..751c145 100644 --- a/src/cosmosmesh_privacy_preserving_federated/catopt_bridge.py +++ b/src/cosmosmesh_privacy_preserving_federated/catopt_bridge.py @@ -165,7 +165,8 @@ def to_catopt(local_problem: LocalProblem, shared: SharedVariables, delta: PlanD "DualVariables": DualVariables().__dict__, }, "PlanDelta": delta.__dict__, - "PrivacyBudget": PrivacyBudget(per_signal=0.0, total_budget=0.0).__dict__, + # Initialize a minimal privacy budget object with explicit fields + "PrivacyBudget": PrivacyBudget(budget=0.0, spent=0.0).__dict__, "AuditLog": AuditLog().__dict__, "PolicyBlock": PolicyBlock(name="default").__dict__, }