8 Commits
Author SHA1 Message Date
Dario Gabriel LipicarandClaude Opus 5 f05ed5a899 fix(doctests): unpin logoscore-cli, and retire the archived accounts module
The macOS doc-test job has been red since 2026-08-21: every module call came
back {"__logos_rpc_status__":"unauthorized"}, preceded in the daemon log by
capability_module rejecting the CLI's own requestModule handshake. Linux was
green throughout.

NOT MODULE ROT. A freshly-built test_basic_module failed identically to
accounts_module. Bisected on one macOS box, one variable, same CLI, same module:

    liblogos 3893c833 (parent)   ->  "result":42
    liblogos b2a9a0ba (#182)     ->  unauthorized

MECHANISM, from `nm -mu` on the logoscore binary:

    pre-#182:  TokenManager::instance()  (from liblogos_core)
    at-#182:   TokenManager::instance()  (from liblogos_module_client)

#182 made liblogos_core export ZERO TokenManager symbols -- they moved to
liblogos_protocol. macOS two-level namespace then rebound the CLI's imports to
the next image still statically absorbing a copy, so the CLI wrote its token
into one singleton while the runtime authorized against another. ELF cannot
show this: flat namespace collapses every definition onto the first-loaded
image, so Linux held the invariant by accident.

THE PIN IS THE BUG, not the linkage. The shared-runtime split landed as one pin
SET -- logos-protocol 2e3344a, logos-plugin-qt 1aa3e31, logos-liblogos b2a9a0b
(#182), logoscore-cli 2312a3a. This spec pinned the CLI at b92ade06
(2026-06-10) and overrode only logos-liblogos, manufacturing exactly the
half-migrated pairing the set exists to prevent. That pin's own commit (050f2d3)
called it "Temporary -- drop when the chain PRs merge"; nobody did. Dropping the
rev is the fix. logoscore master had already shed the deprecated
logos-module-client in its #48, so nothing there needs changing.

WHY THIS READ AS ONE FLAKY STEP rather than a total auth outage: "Call a method"
asserted on the bare string '"result"', which the unauthorized envelope also
contains. Both calls now assert values -- '"result":"hello"' and '"result":42'.

ALSO RETIRED: logos-accounts-module was archived on 2026-07-22. Both specs now
drive test_basic_module from logos-test-modules, via the
`#modules.$SYSTEM.<name>.lgx` attribute path the logoscore-cli doc-tests already
use. The module-runtime spec no longer clones a repo at all, so it loses its git
prerequisite and one step.

VERIFIED on aarch64-darwin against 959d11d9 -- the exact commit CI failed on:
34 passed, 0 failed (was 34 passed, 1 failed of 35), and zero "rejecting
unauthorized call" lines in the daemon log.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 23:32:20 -03:00
Dario LipicarandClaude Opus 5 2f4162a97f chore: pin logos-protocol 0f26ffd, and move CI off Nix 2.22 (#174)
liblogos pinned logos-protocol at 3a31c91 (Jul 31). Bring the root pin to
master, 0f26ffd (Aug 6) — the span is exactly two commits, protocol #40
(lp_invoke_async can report a failure) and #41 (report failures that happen
after acquire, without moving the ABI).

Why per-repo pins rather than `follows` overrides: logos-protocol is
statically linked (`nix path-info -r` on the tests output shows zero
protocol store paths), and liblogos_core.dylib alone carries 299 weak
external definitions. On macOS, when two images built against different
protocol revisions land in one process, dyld coalesces those weak
definitions and one image's protocol code silently binds to the other's —
across a real ABI change, since #41 moved
PlainLogosObject::awaitCompletion from (QString const&, int) to
(QString const&, int, QString const&, logos::CallError*). Every repo in
the chain pinning the same protocol is what makes that a non-issue; no
override is needed anywhere.

The CI installer bump is hygiene bundled in, not a requirement for the
pin: cachix/install-nix-action@v27 installs Nix 2.22.1, which mis-handles
several flake locking features. @v31 installs 2.35.1, matching what
logos-standalone-app's CI already uses (and its inline comment already
explains why v27 was not good enough there either).

Verified on aarch64-darwin: `.#logos-liblogos-tests` builds and
logos_core_tests reports 181 run / 176 passed / 5 skipped — byte-identical
to the pre-bump baseline at f63cda3, and the 5 skips are the pre-existing
"set TEST_PLUGIN" environment skips. A from-scratch re-lock (flake.lock
deleted) succeeds and lands back on 0f26ffd under Nix 2.22.1, 2.32.4 and
2.35.1, and all three evaluate the tests package to the same derivation.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 11:46:09 -03:00
Iuri Matias f463512ed3 add draft doctest showing how to use liblogos as a library (#150) 2026-06-16 18:47:47 -04:00
Iuri Matias 51313eb58f add doctest (#134) 2026-06-01 10:33:03 -04:00
Iuri MatiasandLogos Workspace 9c006df0cf extract logoscore cli (#79)
Co-authored-by: Logos Workspace <logos@workspace.local>
2026-03-24 13:07:46 -04:00
Iuri Matias 7df6195485 use cachix cache for logos-co (#77) 2026-03-20 08:33:47 -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 702d6dac79 add ci workflow to run liblogos tests
- also revert for now asserts changes on proxy api

add ci workflow to run liblogos tests

ci fix

revert for now asserts changes on proxy api

ci fix

ci fix

ci fix

ci fix

ci fix
2026-01-22 17:57:27 -05:00