Skip to content

feat: calendar persistence via kv_module FileBackend#73

Merged
jimmy-claw merged 7 commits intomainfrom
jimmy/issue-72-persistence
Mar 13, 2026
Merged

feat: calendar persistence via kv_module FileBackend#73
jimmy-claw merged 7 commits intomainfrom
jimmy/issue-72-persistence

Conversation

@jimmy-claw
Copy link
Copy Markdown
Owner

Summary

  • Calls kv_module.setDataDir() after setClient() in CalendarStore to enable file-backed persistence
  • Calendars are persisted to ~/.local/share/Logos/LogosApp/kv-data/scala/store.json
  • Data survives app restarts — verified by creating a calendar, killing LogosApp, restarting, and confirming the calendar is still present

Dependencies

Test plan

  • Build kv_module with Q_INVOKABLE setDataDir fix
  • Build scala_ui from this branch
  • Launch logos-app, click scala, create "Persistence Test" calendar
  • Verify kv-data/scala/store.json appears on disk with calendar JSON
  • Kill and restart logos-app, confirm calendar persists across restart

Closes #72

🤖 Generated with Claude Code

Jimmy Claw and others added 7 commits March 13, 2026 15:15
Guard Q_PLUGIN_METADATA in calendar_module.h and scala_plugin.h with
#ifndef SCALA_UI_BUILD so only ScalaUIComponent exports the plugin entry
point when building libscala_ui.so.

- Use LogosCalendar directly in scala_ui_component.cpp (drop ScalaPlugin wrapper)
- Remove scala_plugin.cpp from BUILD_UI_PLUGIN sources in CMakeLists.txt
- Add LOGOS_CORE_AVAILABLE guard around initLogos() call
- Add run-app Makefile target to launch logos-app-poc with scala_ui plugin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds logos-cpp-sdk and logos-liblogos as flake inputs and exposes a
ui-plugin package that builds libscala_ui.so via cmake with
BUILD_UI_PLUGIN=ON, using the workspace Qt/SDK dependencies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…i .so

The BUILD_UI_PLUGIN target listed qml/scala_ui.qrc in sources but
CMAKE_AUTORCC was not enabled, so the .qrc was never processed by rcc —
resulting in a blank white UI when loading qrc:/scala/CalendarView.qml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add scala_module dependency to scala_ui manifest so logos-app loads the
full dependency chain: scala_ui → scala_module → kv_module. This enables
persistent calendar storage via kv_module when running inside logos-app.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
After setClient(), invoke kv_module.setDataDir() with the app's data
directory so calendars are persisted to disk via the FileBackend.
This requires logos-kv-module PR#28 (Q_INVOKABLE setDataDir).

Closes #72

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jimmy-claw jimmy-claw merged commit ebd5606 into main Mar 13, 2026
1 of 2 checks passed
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.

feat: wire up kv_module persistence — scala_ui → scala_module → kv_module dependency chain

1 participant