Commit Graph
35 Commits
Author SHA1 Message Date
Dario Gabriel LipicarandClaude Opus 5 5002816546 ci: run the test suite on every push and pull request
This repo had no CI at all. Both open PRs (#20, #21) report "no checks
reported on the branch", so every green result claimed for the QML bridge
changes came from a local run on one machine, on one platform -- which is
how several defects in that change set shipped green in the first place.

The suite is already a nix derivation whose checkPhase runs ctest over
every test target (nix/test.nix), so building the check IS running the
tests; there is no separate run step to keep in sync. Both platforms run
because the bridge coordinates processes and sockets, and the two OSes
have already disagreed about exactly that elsewhere in the stack.

Modelled on logos-protocol's workflow, including the DeterminateSystems
installer (cachix/install-nix-action trips over pre-existing nix build
users on the macOS runners) and a non-fatal cachix push.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 16:51:14 -03:00
Dario LipicarandClaude Opus 5 2b178f74ad chore(deps): pin logos-protocol 0f26ffd (#19)
Moves this repo's own logos-protocol pin from 1e96004 (Jul 17) to
0f26ffd (Aug 6), the current protocol master.

ui-host statically links logos-protocol, so on macOS an ui-host built
against a stale protocol and a ui_qml plugin built against current
protocol get their weak definitions coalesced by dyld — one image's
protocol code silently binds to the other's, across a real ABI change.
Pinning current protocol here is the fix; no `follows` override needed.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 11:46:18 -03:00
Khushboo-dev-cpp 049978f144 Merge pull request #18 from logos-co/feat/addPrefetchToModel
feat: add pre fetch to model
2026-07-23 07:35:49 +00:00
Khushboo Mehta 8085c22a18 feat: add pre fetch to model 2026-07-23 09:34:58 +02:00
Dario LipicarandClaude Opus 4.8 a644be2669 fix(qml-bridge): serialize results via the canonical converter (#17)
serializeResultForTesting used QJsonValue::fromVariant, which cannot
convert the custom LogosResult metatype and silently degraded a
`result`-type return to the literal "null". A QML-only ui_qml plugin
calling a result-returning method through logos.callModule therefore
received null instead of {success, value, error}.

Replace the bespoke serialization with logos-protocol's canonical
logos::qvariantToNlohmann — the same converter every transport
(lp/std/cdylib) already uses. Now ALL types round-trip to QML/JS
identically: scalars as bare literals, containers preserved, integers
kept as integers (QJsonValue::fromVariant degraded them to double),
bytes in the tagged {"_bytes":...} form, and LogosResult as
{success, value, error} (empty error -> null). Fixes both sync
callModule and async callModuleAsync.

Adds test_logos_qml_bridge_result.cpp (regression) plus the
reproduction/isolation harnesses (e2e, gui, handshake, 2-process) built
while proving the long-suspected QML "sequential-call stall" is NOT an
SDK defect: every layer round-trips correctly under isolation, and the
only real bug was this result serialization.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 14:37:24 -03:00
Khushboo-dev-cpp 42729dc271 Merge pull request #16 from logos-co/fix/bridgeSourceUnavailable
fix: distinguish source-unavailable from invalid response
2026-07-17 20:02:13 +00:00
Khushboo Mehta ca1cab2d00 fix: distinguish source-unavailable from invalid response 2026-07-17 22:01:53 +02:00
Khushboo Mehta b2316faac2 chore: add license files 2026-07-14 15:41:18 +02:00
Khushboo-dev-cpp 7cb2332772 Merge pull request #15 from logos-co/fix/gracefullyHandleDestroy
fix: add handling for a graceful shutdown of backends
2026-07-01 13:12:30 +05:30
Khushboo Mehta 6ab493778d fix: add handling for a greceful shutdown of backends 2026-06-30 18:13:55 +02:00
Khushboo-dev-cpp 70f219a248 Merge pull request #14 from logos-co/chore/bump-logos-protocol
chore: bump logos-protocol
2026-06-26 22:44:09 +05:30
Khushboo Mehta 118ab4aae1 chore: bump logos-protocol 2026-06-26 19:13:03 +02:00
Dario LipicarandClaude Opus 4.8 39efe5792d chore: bump logos-protocol/cpp-sdk/qt-sdk to concurrent-dispatch (c6234940) (#13)
The ViewModuleHost QtRO peer linked the pre-concurrent-dispatch protocol, so a
c6234940 UI plugin's capability-token handshake was rejected inside it. Align
protocol + SDKs to current master. No source changes (signature-stable API).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 09:47:29 -03:00
Dario LipicarandClaude Opus 4.8 2374fce796 fix(ui-host): isolate the view-module host's process group + tie lifetime to parent (#12)
The out-of-process ui-host (spawned by Basecamp / any app embedding the view
runtime) inherited the parent's process group and had no parent-death cleanup,
so a parent crash could (a) leak a teardown signal into the parent's process
group and (b) leave the host running as an orphan. Mirror logos_host: setsid()
to lead our own group (parent stays foreground/manageable), plus
PR_SET_PDEATHSIG (Linux) + a portable getppid() watchdog so we exit when the
parent dies. Compare against the parent's actual pid (not pid 1) so a parent
that is itself PID 1 (a container) is handled correctly.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 21:16:06 -03:00
Dario LipicarandClaude Opus 4.8 710270c193 Retarget to the qt-split SDK stack (logos-qt-sdk + logos-protocol) (#11)
* Retarget to the qt-split SDK stack (logos-qt-sdk + logos-protocol)

logos-cpp-sdk::logos_sdk no longer exists after the Qt split: the Qt
developer layer (LogosAPI, provider objects) moved to logos-qt-sdk and
the transport/consumer core into the logos-protocol library. Both
targets (the static runtime lib and ui-host) now link
logos-qt-sdk::logos_qt_sdk (which carries logos-protocol transitively)
plus the header-only logos-cpp-sdk::logos_headers.

flake.nix gains logos-protocol/logos-qt-sdk inputs threaded through
nix/{default,test}.nix; the lock pins the extraction-chain branch revs
(temporary — re-lock against masters when the chain merges).

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

* lock: bump cpp-sdk to the qt-free branch head with the protocol lock fix

This flake declares no follows between logos-cpp-sdk and logos-protocol,
so cpp-sdk's OWN lock governs its nested protocol; b86ff877 still pinned
the P1 protocol rev, which no longer compiles (LogosProviderPlugin moved
in the qt split). 7272c73 carries the corrected pin. Temporary — drop
when the chain merges.

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

* fix(tests): retarget the unit-test link to the qt-split SDK targets

tests/CMakeLists.txt still linked bare logos_sdk (only built with
LOGOS_VIEW_RUNTIME_BUILD_TESTS=ON, so the package build verified earlier
missed it). The runtime lib's PUBLIC link interface already carries the
qt-sdk/protocol targets; the explicit entries replace the dead archive.

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

* lock: qt-split chain fully merged — pins advance to masters (cpp-sdk 87abcd8, protocol 9de4165, qt-sdk 8d0e5d9)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 23:58:19 -03:00
Khushboo-dev-cpp bec7d3e604 Merge pull request #10 from logos-co/fix/passAuthToken
fix: Pass per-spawn auth token to ui-host via private socket
2026-06-10 21:48:23 +02:00
Khushboo Mehta 96735cb9c8 fix: Pass per-spawn auth token to ui-host via private socket 2026-06-10 21:00:03 +02:00
Iuri Matias 21dddc380e Merge pull request #9 from igor-sirotin/chore/bump-cpp-sdk-event-thread-fix
chore: bump logos-cpp-sdk (provider event threading fix)
2026-05-25 11:31:54 -04:00
Igor Sirotin df7b5b9f8d chore: bump logos-cpp-sdk (provider event threading fix)
Picks up logos-co/logos-cpp-sdk#68 — marshals provider event emission onto the
remoting source thread. Part of propagating the fix to the host runtime.
2026-05-25 16:28:38 +01:00
Dario Gabriel Lipicar 4724ded2b3 bump dependencies 2026-05-08 10:03:08 -03:00
Dario Lipicar 3c3735c25c fix cpp-sdk dependency (#6) 2026-05-07 12:43:11 -03:00
Khushboo Mehta a00a2500ba feat/addOrganizationName 2026-04-30 17:45:36 +05:30
Khushboo Mehta d611d697bf Revert "fix: handle long module names"
This reverts commit 1b35afb543.
2026-04-17 15:09:42 +02:00
Khushboo-dev-cpp 1c8dd07c8c Merge pull request #5 from logos-co/fix/handleLongModuleNames
fix: handle long module names
2026-04-17 14:13:08 +02:00
Khushboo Mehta 1b35afb543 fix: handle long module names 2026-04-17 13:56:59 +02:00
Khushboo-dev-cpp 5dc32e0131 Merge pull request #4 from logos-co/fix/returnType
fix: return qml preserving types
2026-04-16 22:45:08 +02:00
Khushboo Mehta 0e1540b44f fix: return qml preserving types 2026-04-16 22:44:23 +02:00
Khushboo-dev-cpp 1fde7d43bb Merge pull request #3 from logos-co/feat/supportLIsteningToSignals
feat: let qml only apps subscribe and listen to events from core modules
2026-04-14 15:10:18 +02:00
Khushboo Mehta 5fcf427b49 feat: let qml only apps subscribe and listen to events from core modules 2026-04-14 15:04:35 +02:00
Khushboo Mehta b5799b743e bump cpp-sdk 2026-04-10 17:45:02 +02:00
Khushboo Mehta b4d5cb70f0 move watch as function in bridge so qml doesnt need to make new imports 2026-04-10 16:02:21 +02:00
Khushboo Mehta 1813bc545f fix: plugin 2026-04-09 17:44:12 +02:00
Khushboo-dev-cpp 681facd3b5 Merge pull request #1 from logos-co/feat/addLogic
feat: add src headers and flake files needed
2026-04-08 22:31:01 +02:00
Khushboo Mehta d9fa197f87 feat: add src headers and flake files needed 2026-04-08 22:27:19 +02:00
Khushboo Mehta 12d7eb2b34 first commit 2026-04-07 19:36:19 +02:00