feat: use real logos-delivery-module for Delivery transport#168
Open
jimmy-claw wants to merge 8 commits into
Open
feat: use real logos-delivery-module for Delivery transport#168jimmy-claw wants to merge 8 commits into
jimmy-claw wants to merge 8 commits into
Conversation
Comprehensive analysis of replacing OpenClaw with a Logos Core module. Maps existing LMAO capabilities against OpenClaw features, identifies critical gaps (lifecycle manager, scheduler, tool sandbox, LLM layer), and recommends a 3-phase approach starting with hybrid integration. Fixes #51 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add DeliveryTransport C++ class that obtains a QtRO replica of delivery_module via logosAPI->getClient() and exposes send/subscribe/ unsubscribe methods. Wire it into LmaoComponent and LmaoBackend so the module uses QtRO inter-module calls for message transport when running inside Logos Core, with FFI fallback when QtRO is unavailable. - DeliveryTransport: QtRO bridge to delivery_module (send, subscribe, unsubscribe, createNode, start, messageReceived event handling) - LmaoComponent: stores logosAPI, initializes DeliveryTransport - LmaoBackend: accepts DeliveryTransport, adds deliverySend() method - module.yaml: declares delivery_module dependency - CMakeLists.txt: adds DeliveryTransport.cpp to build Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add tabbed UI plugin with Dashboard, Fleet, Metrics, and Task History views. FFI layer: - Add lmao_get_info() for agent identity, topics, and encryption status - Add lmao_get_metrics() for 17 operational counters (tasks, messages, etc.) - Add tests for both new FFI functions (98 total tests pass) C++ backend: - Add getInfo() and getMetrics() Q_INVOKABLE methods to LmaoBackend QML UI: - DashboardView: agent status, public key (click to copy), Waku topics, encryption status, QtRO transport status - MetricsView: grouped counter tiles with auto-refresh (5s), covering tasks, messages, discovery, sessions, streaming, and retries - TaskHistoryView: in-memory task log with expandable details, status badges, timestamps, and clear functionality - LmaoView: tabbed navigation (Dashboard/Fleet/Metrics/History) replacing the single fleet view Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wire up LogosCoreDeliveryTransport in the FFI layer so the Logos Core plugin uses delivery_module IPC (via logos_core_call_plugin_method_async) instead of the nwaku REST transport. - Add `logos-core` feature to lmao-ffi that switches NodeTransport from LogosMessagingTransport (REST) to LogosCoreDeliveryTransport (IPC) - Enable `logos-core` feature in the Nix flake build so the plugin automatically uses delivery_module when running inside Logos Core - Update architecture docs to reflect transport availability Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add logos-co/logos-delivery-module as a Nix flake dependency and wire the QtRO inter-module call path for task sending. Changes: - flake.nix: add logos-delivery-module input, include in build deps - lmao-ffi: add lmao_build_task_envelope() FFI function that creates A2A Task envelope (topic + base64 payload) without sending, so C++ can route through QtRO delivery_module directly - LmaoBackend: add sendTaskViaDelivery() that prefers QtRO when connected, falls back to FFI transport otherwise - LmaoView.qml: use sendTaskViaDelivery for task sending - Headers: declare lmao_build_task_envelope in both FFI headers - Tests: 5 new tests for lmao_build_task_envelope (103 total pass) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a new `StorageModuleClient` storage backend behind the `storage-module` feature flag, implementing the logos-storage-module init/start/upload/download lifecycle pattern. Uses the existing `storage-bindings` FFI crate (same libstorage that logos-storage-module uses internally). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Make sendTask() automatically prefer the real logos-delivery-module via QtRO inter-module IPC when available, with FFI fallback. Previously callers had to explicitly use sendTaskViaDelivery() for the QtRO path. - sendTask() now tries QtRO delivery_module first, falls back to FFI - sendTaskViaDelivery() delegates to sendTask() (backwards compat) - Updated transport docs to reflect logos-core as the primary transport Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
sendTask()now automatically prefers the reallogos-co/logos-delivery-modulevia QtRO inter-module IPC when aDeliveryTransportis connected, with FFI fallbacksendTaskViaDelivery()now delegates tosendTask()for backwards compatibility — callers no longer need to choose between two methodslogos-corefeature as the primary transport for Logos Core integrationTest plan
cargo test --workspace— all 1069 tests passsendTaskuses QtRO path whenDeliveryTransportis connected in Logos CoreFixes #143
🤖 Generated with Claude Code