29 Commits
Author SHA1 Message Date
Dario Gabriel Lipicar 13665a5e34 feat(host-core): adopt the SDK core facade, and delete both C ABI mirrors
CoreModuleManager and main.cpp each carried a hand-written `extern "C"` mirror
of liblogos' core-management ABI -- two blocks declaring the same symbols in
one image, an ODR hazard with no diagnostic. Both are replaced by
logos::qt::QtLogosCore over logos::host::LogosCore, which owns the
char*/char** marshalling, the `delete[]`-not-`free()` rule, and the pre-start
ordering constraint -- the last as constructor arguments, so the illegal order
stops being expressible.

Four things about the stats path that fail INVISIBLY, all preserved:
  * "cpu"/"memory" stay 1-decimal STRINGS -- QML and ModuleInstanceModel bind
    those names, so the facade's cpuPercent/memoryMb spelling stops here
  * allStats() is called ONCE per tick; each moduleStats(name) repeats the
    full C call and parse, and the snapshot walks every known module
  * the three-way back-compat fallbacks are kept for older runtimes
  * memoryMb (double), never memoryBytes

The cpp-sdk lock moves for that last point: the pin predated the rename, and
that pair does not compile -- qt-sdk's header reads s.memoryMb while the
pinned cpp-sdk struct still called it memoryBytes.

Also drops a QTimer in main.cpp that was started and stopped with no
connect() at all.
2026-08-22 16:42:13 -03:00
Dario Gabriel Lipicar 7851bf9f46 feat(host): per-plugin identities, an opt-in access policy, and the source split
Each loaded plugin -- including pure-QML ones -- gets its own LogosAPI identity
rather than sharing the host's, so a plugin's calls are attributable and can be
refused independently. The host-services grant is wired through to
capability_module, and its trust root is guarded on an OUTCOME rather than a
log line.

Inter-module access policy stays OFF by default: enforce mode's derived
deny-by-default gates every ui_qml app's calls to its own backend module,
because UI plugins load out-of-process and are not tracked as dependents in the
core ModuleRegistry. Operators opt in per launch with --access-policy enforce
or LOGOS_ACCESS_POLICY.

Takes the Qt host runtime from logos-plugin-qt rather than logos-qt-sdk, which
keeps only the Qt<->lp seam headers, and moves logos-protocol onto the rev that
split host needs. On Windows logos_core must come LAST on the link line: GNU ld
resolves an archive left to right, so the view runtime's references have to be
undefined already when it reaches the import library.

Separates the two source trees -- app/ is the host, src/ is the UI shell -- and
brings the CI onto setup-nix-cache-action. Merges master.
2026-08-22 16:42:13 -03:00
Khushboo Mehta d68173f73c feat: when no release repositories are confirgured or no internet or simplay locally installed modules, show them in app manager and package manager as local 2026-07-28 20:06:44 +00:00
Khushboo Mehta aa6bd126b9 feat: fix Cmd+Q on macos and Linux behavior expected as well 2026-07-27 14:50:49 +00:00
Khushboo Mehta 5a64db2ec9 fix: lets disable qml cache for ui plugins loaded into basecamp 2026-07-24 15:04:48 +00:00
Dario Gabriel LipicarandClaude Opus 4.8 6188dd7e12 fix: disable access policy (allow all) until ui_qml callers are handled
Pass NULL to logos_core_set_access_policy so no enforcement runs. With the
protocol json-convert fix, registerRestriction now actually applies (it used
to fail-open on its QJsonArray arg), which activated enforce mode's derived
deny-by-default. That gates every ui_qml app's calls to its own backend
module: UI plugins load out-of-process and aren't tracked as dependents in
the core ModuleRegistry, so they're never in a module's derived
allowed-caller set (e.g. accounts_ui -> accounts_module is denied). Disable
the policy for now; revisit the design to account for ui_qml callers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 15:10:34 -03:00
Logos Workspace 5062a084d4 set access policy 2026-06-10 12:43:48 -04:00
Khushboo Mehta 1993994738 feat: add new App Manager UI- Initial commit 2026-06-08 14:49:33 +02:00
Iuri Matias f65db317a6 update liblogos; use new APIs 2026-05-19 16:24:35 -04:00
Dario Lipicar 20a3ce3beb switch to new liblogos function names (#173)
* switch to new liblogos function names

* pr comments
2026-04-24 11:00:06 -03:00
Dario Lipicar 9bc91145b9 allow overriding user directory via launch argument (#164)
* allow overriding user directory via launch argument

* pr comments
2026-04-22 12:43:00 -03:00
Dario Lipicar f4b84ac76e show build info in Dashboard (#162)
* show build info in Dashboard

* fixes

* pr comments

* print to log
2026-04-22 08:47:28 -03:00
Dario Lipicar 009284a22c write console output to files (#159)
* write console output to files

* PR comments
2026-04-20 17:45:41 -03:00
Dario Lipicar 789b1ccd55 even more graceful shutdown (#147) 2026-04-13 17:20:43 -03:00
Logos Workspace 059c48450e remove unnecessary constant log 2026-04-13 14:55:00 -04:00
Dario Lipicar b3c724df9e graceful shutdown (#140) 2026-04-13 10:30:55 -03:00
Dario Lipicar d30adf0142 introduce persistence directory for modules and ui plugins (#133) 2026-04-09 17:17:16 -03:00
Dario Lipicar 113b67c733 leverage package-manager-module for module/ui-plugin detection (#110) 2026-03-27 10:57:53 -03:00
Iuri Matias 58d958a8fd use new api to talk to package manager 2026-03-23 15:28:34 -04:00
Iuri Matias a746a4216f Add MCP server; add integration tests; run integration tests on the CI
Add MCP server; add integration tests; run integration tests on the CI

test mcp server

improve mcp functions; add test framework

support running headless tests

restructure to prepare to move repos

add agents.md with instructions on how to run and test app

use logos-qt-mcp flake

run integration tests in the CI

use flake mcp server from logos-qt-mcp

update ui tests to fetch from the right location

use test app when running integration tests

run integration tests as separate checks

re-add smoke test just for builds

increase timeout

output tests as they are running

use --verbose

fix mac tests
2026-03-22 18:00:01 -04:00
Khushboo Mehta 17ef99cb28 chore: rename repo to logos-basecamp 2026-03-18 14:36:41 +01:00
Dario Lipicar ccb4cdba1a properly handle portable modules (#71)
* properly handle portable modules

* preinstall modules on startup instead of bundling them at build time

* get icons from manifest

* consistent user dir

* revert to main branch of dependencies

* add release derivations

* add appimage release job

* fix app icon on Linux
2026-02-26 11:05:34 -03:00
Iuri Matias 0d057b5ef2 fix support for both nix paths and app support paths
fix support for both nix paths and app support paths

cleanup
2026-01-13 17:27:49 -05:00
Iuri Matias 2c29fe4201 support application support paths to find modules and plugis 2026-01-13 16:35:49 -05:00
Iuri Matias c68171fa83 qt ios app using liblogos and capability-module/package-manager modules; wip
qt ios app using liblogos and capability-module/package-manager modules; wip

qt ios app using liblogos and capability-module/package-manager modules; wip

working including modules (but not loading)

working ios app

fix get plugins method

update flake

update flake

rename dir

refactor/cleanup

refactor/cleanup

update title

support icon

refactor

fix so it works correctly with new packages

fix app name

simplify plugin loading

update flake
2025-12-03 14:04:12 -05:00
Iuri Matias adee7bb000 display mem & cpu usage 2025-11-26 16:09:24 -05:00
Iuri Matias 827dc485d2 support systray 2025-11-25 11:36:34 -05:00
Iuri Matias ebf9cf7cfe add nix build
add nix build

chore: update cmakelists (wip)

chore: update cmakelists (wip)

working nix config

fix issues building app

fix path issue

working app

fix issue with paths
2025-10-28 15:41:52 -04:00
Iuri Matias 58c4b16c5a chore: move logos_app to its own repo 2025-10-08 13:38:08 -04:00