Commit Graph
5 Commits
Author SHA1 Message Date
Dario Gabriel LipicarandClaude Opus 4.8 51b503b32b feat: rewrite as Qt-free universal concurrency:multi module
capability_module's requestModule was a Q_INVOKABLE that blocked on a
nested outbound IPC inside the QtRO source read loop; when the caller's
connection dropped during that nested pump, the source-side reply crashed
(SIGSEGV in CodecBase::send on a dangling connection).

Rewrite it as a Qt-free universal impl (CapabilityModuleImpl on
LogosTokenManagerContext) with interface:"universal" + concurrency:"multi",
so each call runs on a worker off the read stack and replies via a deferred
completion — eliminating the re-entrancy. The wire API is unchanged
(requestModule/registerRestriction), so it stays a drop-in broker.

The token store reads and arbitrary-module inform now go through the
LogosTokenManagerContext bridge (host-backed). m_restrictions is guarded by
a std::mutex (multi dispatch runs handlers concurrently) and the token is
minted from std entropy instead of QUuid. Unit tests reworked to drive the
impl directly with injected bridge stubs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 23:27:37 -03:00
Iuri Matias 22e54ffc79 refactor capability module to work as an internal module proper instead of cosplaying as a app layer module
refactor capability module to work as an internal module proper instead of cosplaying as a app layer module

refactor capability module to work as an internal module proper instead of cosplaying as a app layer module

update flake

update flake
2026-06-11 16:31:00 -04:00
Iuri Matias 948f0cb95d add registerRestriction to support restricting what modules can talk to which modules 2026-06-10 15:44:36 -04:00
Iuri Matias 684c8dea17 fix: F-001: reject if token is empty or is coming from an unknown module 2026-06-08 14:59:57 -04:00
Dario Lipicar e675e9e3a9 migrate to logos-module-builder (#10)
* migrate to logos-module-builder

* add CI job
2026-05-07 16:36:38 -03:00