Skip to content

feat!: LogosCore is a shell over core_service, never the C API - #170

Draft
dlipicar wants to merge 4 commits into
feat/core-service-clientfrom
feat/drop-legacy-mode
Draft

dlipicar wants to merge 4 commits into
feat/core-service-clientfrom
feat/drop-legacy-mode

Conversation

@dlipicar

@dlipicar dlipicar commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #169. Part of the runtime-control wave's cleanup. It deletes legacy mode, the token listener, and liblogos' deprecated lifecycle C API (load_module, unload_module, refresh_modules, the get_* queries, get_module_stats, optional_load_report, get_token, set_token_listener). Every consumer migrates to core_service through the shell binding.

logos::host::LogosCore

  • shellName is required. Construction throws without one, before anything is initialised.

  • start() throws when no shell binding comes back. That means liblogos has no token authority (capability_module isn't bundled or didn't run in-process), and nothing would load.

  • Every lifecycle call and query goes through core_service, with no C API fallback. The ones that were C-only now map onto core_service's new read methods, added to core_service.lidl. Each answers the JSON the C function did:

    Method core_service
    dependencies getModuleDependencies
    dependents getModuleDependents
    optionalDependencies getModuleOptionalDependencies
    modulesInfoJson getModulesInfo
    optionalLoadReportJson getOptionalLoadReport
  • Before start(), calls return false or empty; nothing is dialled.

  • Removed: Config::tokenListener, token(), and the C declarations of every removed function. processModule stays on the C API: it's the embedder's alone.

Other changes

  • logos::host::tokenKeys stays as a retired shim (feat(tokens): retire the token registry logos-protocol#98 retires the registry): on protocol 0.13 it answers empty with an ungranted status, and a module that still calls it (capability_module on master) keeps compiling. The cdylib generator's emitted comments no longer describe the registry carve-out.
  • Tests: test_logos_host_core.cpp answers each core_service method from a stub binding. It asserts:
    • the call shapes;
    • a required shell name;
    • start() throwing without a binding;
    • nothing reaching core_service before start().
  • README: the LogosCore section describes the shell-only core.
  • Relock: logos-protocol moves onto feat(tokens): retire the token registry logos-protocol#98.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

📊 cpp-sdk doc-test report

The real accounts module, run through a logoscore daemon with the whole stack built against this commit of the C++ SDK — rendered alongside the commands actually run and their output (updated each run, commit 4226d31):

Pages can take a minute to update after the run finishes.

dlipicar and others added 2 commits October 3, 2026 09:43
liblogos drops its lifecycle C API and the token listener, so LogosCore
stops falling back to them:

- shellName is required, and start() throws when no shell binding comes
  back: liblogos then has no token authority and loads nothing.
- Every lifecycle call and query goes through core_service. The queries
  that were C-only map onto its new read methods: getModuleDependencies,
  getModuleDependents, getModuleOptionalDependencies, getModulesInfo and
  getOptionalLoadReport, now in core_service.lidl.
- tokenListener and token() are gone; processModule stays on the C API.
- logos::host::tokenKeys goes with the protocol's token registry.

Tests answer each core_service method from a stub binding.
Relocks logos-protocol onto the token-registry retirement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A module that still calls it (capability_module on master, until its
registry mode goes) must keep compiling against this SDK, or the SDK's
doc-tests, which build master modules, fail. On protocol 0.13 it answers
empty with an ungranted status.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dlipicar
dlipicar force-pushed the feat/core-service-client branch from 5e3245d to 18c224c Compare October 3, 2026 12:47
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dlipicar
dlipicar force-pushed the feat/drop-legacy-mode branch from b389bd4 to 0dc0adc Compare October 3, 2026 12:47
…; this branch's flake.lock stands)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant