Commit Graph
36 Commits
Author SHA1 Message Date
Dario LipicarandClaude Opus 4.8 050f2d3628 Qt-split retarget + logos_protocol_version load gate (#142)
* Qt-split retarget + protocol-version load gate

- Link the split SDK stack: logos-qt-sdk (LogosAPI/provider glue; the
  logos_sdk alias now points at logos-qt-sdk::logos_qt_sdk, chaining
  logos-protocol) + Qt-free logos-cpp-sdk headers.
- Protocol-version load gate (the first real consumer of module
  metadata pre-load): ModuleManager reads the module's embedded
  logos_protocol_version before runtime.load() and applies the one
  compatibility rule — equal protocol MAJOR loads, different MAJOR is
  refused with a diagnostic naming both versions, missing/unparseable
  stamp (pre-protocol modules) loads permissively with a warning. The
  decision logic is std-only (logos_core/protocol_gate.h) and unit
  tested (refuse bumped major / warn-load legacy / silent minor skew).
- ModuleDescriptor.rawMetadata is now actually populated for runtimes.

* lock: pin extraction-chain branch revs for standalone CI

Temporary — drop when the chain PRs merge (re-lock against masters).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* doctest: pin logoscore-cli to its qt-split branch head

The doc-test builds logoscore-cli at latest master with only liblogos
overridden to the commit under test; master logoscore-cli cannot build
against qt-split liblogos. Pin the runtime to the chain branch
(logos-co/logos-logoscore-cli#43) so the doc-test exercises the
coherent stack. Temporary — revert to the unpinned URL when the chain
merges.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* host: surface the spawn auth token as a LogosAPI property

cdylib-authored modules run their own statically-linked protocol stack
whose TokenManager is a separate copy of the singleton; the generated Qt
glue reads this property (cross-image-safe, like modulePath) and seeds
the cdylib's stack via logos_module_accept_token so the module's
outbound calls authenticate.

* host: set the authToken property before registerObject

registerObject runs the provider object's init() — where the cdylib glue
reads the property. Setting it afterwards meant cdylib modules always saw
an empty token.

* lock: protocol+cpp-sdk merged to master — pins advance (protocol 9de4165, cpp-sdk f0fe8cb, qt-sdk 722e590)

* lock: qt-sdk#1 merged — pin advances to qt-sdk master

* gate: drop QJson from the Qt-free core — parse rawMetadataJson with nlohmann

The protocol-version load gate had pulled QJsonDocument/QJsonObject into
src/logos_core (Qt-free territory). logos-module now exposes the embedded
metadata as a compact JSON string, so the gate reads it via nlohmann and
the std::string extractMetadata overload.

* lock: logos-module b42805d (result-lm untracked)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 21:45:49 -03:00
Iuri Matias 66256b54ef update logos-capability-module and logos-cpp-sdk (#147) 2026-06-11 16:53:59 -04:00
Iuri Matias 098fed4527 support setting access policy (#145) 2026-06-10 18:17:54 -04:00
Igor Sirotin be7c8fd8e8 chore: bump logos-cpp-sdk (provider event threading fix) (#133)
Picks up logos-co/logos-cpp-sdk#68 — marshals provider event emission onto the
remoting source thread. Host-runtime step toward fixing the start hang.
2026-05-25 11:53:24 -04:00
Dario Lipicar 54abc701fd bump capability module (#127) 2026-05-07 16:44:09 -03:00
Dario Lipicar 94af58c819 support non-local remote transports (#123)
* support non-local remote transports

* fix tests

* avoid masking crashes

* allow transport set configuration on any module

* pr comments

* add docs

* pr comments

* fixes

* fix flake.nix
2026-05-07 12:41:12 -03:00
Dario Lipicar 87b5c2e337 sendTokenToProcess: deadline-driven retry + sun_path length check (#124)
Two related fixes to the parent-side token handoff to a child module
process, both motivated by races / silent failures observed in the
docker smoke matrix.

1. Replace the hard-coded 10×100ms retry loop with a deadline-driven
   loop, default budget 5000ms (configurable via a new max_wait_ms
   parameter). The previous 900ms cap was tight enough that on a cold
   child — dynamic loader + Qt platform bring-up + CLI11 parse +
   plugin loadFromPath — the parent would give up before the child
   bound its QtTokenReceiver socket, leaving a half-loaded module
   with a misleading "Failed to connect to token socket" error. New
   tests pin both ends of the contract:
       SendToken_FailsFast_WhenSocketNeverAppears  — bails within budget
       SendToken_SucceedsAfterDelay                — accepts late binders

   test_token_exchange's WrongName_FailsCleanlyWithinTimeout bound
   loosened from <5000ms to <5500ms because the deadline check can
   overshoot by ~one poll interval (50ms) plus syscall slack.

2. Validate the computed Unix socket path against
   sockaddr_un::sun_path (~104 bytes on macOS, ~108 on Linux) before
   strncpy. Long TMPDIR + module name + LOGOS_INSTANCE_ID combos
   would otherwise silently truncate, leaving the parent connecting
   to the wrong socket while the child binds the full path. Fail
   loudly instead.
2026-05-01 17:05:17 -03:00
Dario Lipicar a392301701 bump logos-package-manager (#116) 2026-04-16 18:26:08 -03:00
Iuri Matias ed5924ef1c use logos-cpp-sdk apis without qt types (#114) 2026-04-16 13:22:41 -04:00
Dario Lipicar 522c56b4fa introduce instance persistence path for modules (#106) 2026-04-09 16:59:03 -03:00
Iuri Matias 608a11394f Replace process stats + fix existing issue with process stats + add regression test (#105)
* update process stats

* fix issue with module state disapearing on discovery refresh

* update flake
2026-04-09 10:30:33 -04:00
Khushboo-dev-cpp da6ba7210e chore: bump logos-cpp-sdk to latest master (#95) 2026-03-31 16:27:01 +02:00
Dario Lipicar 4af6ae839b fix support for more than 2 module dirs (#91) 2026-03-27 15:28:47 -03:00
Iuri Matias 0d1e47f123 use new logos module methods to simplify getting name and dependencies (#90) 2026-03-27 14:22:00 -04:00
Dario Lipicar 0ed7848d11 use package manager lib (#86) 2026-03-26 18:53:05 -03:00
Iuri MatiasandLogos Workspace a3d52477c0 remove proxy api (#84)
* remove proxy api (moved to logos-module-client)

* remove logos module client (shouldn't be needed here)

* update flake

---------

Co-authored-by: Logos Workspace <logos@workspace.local>
2026-03-25 15:38:26 -04:00
Iuri MatiasandLogos Workspace 9a17418613 Abstract proxy api (#83)
* abstract/move some of proxy api logic to cpp-sdk

* use qFatal

* remove jsonParamToQVariant

* simplify using qFatal

* remove old interface.h use logos-module

* remove local code for now (will be re-added later)

* remove unnecessary methods and qDebugs

* update flake

---------

Co-authored-by: Logos Workspace <logos@workspace.local>
2026-03-25 09:31:06 -04:00
Iuri MatiasandLogos Workspace c21f814789 move process stats out of liblogos (#82)
Co-authored-by: Logos Workspace <logos@workspace.local>
2026-03-24 16:50:23 -04:00
Iuri Matias 39b3711a83 remove outdated scripts and folders; simplify cmakliests; remove old static module methods (#80)
* remove outdated scripts and folders

* simplify cmakelists

* remove old static module methods
2026-03-24 13:55:09 -04:00
Iuri MatiasandLogos Workspace 4af040e19c Finish Abstraction & Refactor (Ongoing) - part 1 (#72)
* use abstracted logos registry isntead of qt registry

* clean: remove for now Q_OS_WIn and Q_OS_IOS

* use LogosObject instead of QObject

* remove core manager

* remove annoying recurrent logs

* update flake

---------

Co-authored-by: Logos Workspace <logos@workspace.local>
2026-03-23 13:55:48 -04:00
Iuri Matias 52959151d2 update flake (#76) 2026-03-19 19:42:40 -04:00
Iuri Matias 501867aadc follow logos-nix for nix packages (#75) 2026-03-19 19:13:38 -04:00
Iuri Matias 39434d13da update flake logos-cpp-sdk (#74) 2026-03-19 16:04:15 -04:00
Dario Lipicar e318b6a494 discriminate dev and portable variants (#73) 2026-03-19 11:37:52 -03:00
Iuri Matias 5030aaaf86 update flake (#71) 2026-03-16 17:30:45 -04:00
Iuri Matias da3bea891b update logos-cpp-sdk flake 2026-03-16 10:56:48 -04:00
Eric 8e2ffba609 Add logos instance id (#64)
Allows multiple Logos core instances to run on the same machine by giving appending a unique instance identifier to each registry url.

Bump logos-cpp-sdk to support the instance id and fix bad url in gitmodules.

# Conflicts:
#	flake.lock
#	flake.nix
2026-03-16 10:42:54 -04:00
Dario Lipicar af9670c676 add bundle derivations (#62)
* add bundle derivations

* add ci job
2026-02-25 19:19:19 -05:00
Iuri Matias 55b0c24903 use updated logos module api 2026-02-02 15:01:10 -05:00
Iuri Matias 4fb6736441 update flake 2026-01-29 17:06:22 -05:00
Iuri Matias 63c52acd76 use logos-module 2026-01-29 16:51:11 -05:00
Iuri Matias ac47959026 include modules so capability module is there by default
include modules so capability module is there by default

fix tests
2026-01-28 17:41:42 -05:00
Iuri Matias feb8c192a9 support local mode and loading modules statically, required for some platforms such as mobile
support local mode and loading modules statically, required for some platforms such as mobile

simple working app

get app to compile and work on ios sim

use new sdk and lib

add methods required to support platforms that need the modules loaded statically

small refactor

small refactor

small refactor

remove example app

remove example app

some refactor
2025-12-02 14:52:45 -05:00
Iuri Matias d3946f80a9 update nix flake 2025-10-23 13:34:48 -04:00
Iuri Matias 00956abf8f fix: use correct logos-cpp-sdk veresion in the flake; update README 2025-10-08 16:27:42 -04:00
Iuri Matias bfac2e815f feat: add nix flake
feat: add nix flake

test
2025-10-02 18:21:19 -04:00