Skip to content

skill: document QML_PATH and QPluginLoader UI plugin pattern - #59

Open
vpavlin wants to merge 1 commit into
masterfrom
skill/qml-path-note
Open

skill: document QML_PATH and QPluginLoader UI plugin pattern#59
vpavlin wants to merge 1 commit into
masterfrom
skill/qml-path-note

Conversation

@vpavlin

@vpavlin vpavlin commented Apr 24, 2026

Copy link
Copy Markdown

Summary

  • Adds new section "UI plugins via QPluginLoader (non-module-builder path)" to the logos-module-development skill
  • Documents the plugins/ install directory vs modules/, manifest.json format, and IComponent interface requirement
  • Key addition: QML_PATH=<dir> env var to load QML from filesystem instead of embedded QRC — essential for QML iteration without full rebuilds

Context

Discovered while building the WhisperWall Basecamp UI plugin. Without QML_PATH, any .qml file changes on disk are silently ignored because the plugin loads QML from the baked-in Qt resource. This tripped us up multiple times before finding the override mechanism.

Test plan

  • Verify skill renders correctly in Claude Code with expected sections
  • Confirm the QML_PATH example command is copy-paste-ready

🤖 Generated with Claude Code

Add notes on UI plugins that use QPluginLoader + IComponent (installed
to plugins/ not modules/), the manifest.json format, and the QML_PATH
env var needed to load QML from filesystem instead of embedded QRC.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dlipicar added a commit that referenced this pull request Aug 19, 2026
    logos-protocol   0af8e0c -> 988e0ba   (#59)
    logos-rust-sdk   571d570 -> 671bcc6   (#39)
    logos-dev-boost  31cbcd3 -> 4fb867a   (#17)

logos-tutorial (#81) also merged but is not a rev-pinned root input, so nothing
to move for it.

All three were SQUASH-merged, so the branch commits are not ancestors of master
and `origin/master..HEAD` still counted them as ahead — the pins move to the new
master SHAs rather than to anything recognisable from the branches. Checked by
CONTENT rather than by topology before moving: master carries
jsonRequireArray/jsonRequireObject, TokenManager::forIdentity/isolateIdentity,
lp_grant_host_services and lp_token_keys; rust-sdk's dead gen_provider example
is gone; dev-boost's guidelines name logos-qt-host-generator.

Both platforms evaluate: aarch64-darwin 641, x86_64-windows 399 — unchanged, as
expected for a pin move whose content was already in the closure via the
branches.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
dlipicar added a commit that referenced this pull request Aug 19, 2026
    logos-protocol   988e0ba -> f4407ff   (#59 then #60)
    logos-rust-sdk   671bcc6 -> 7c65d31   (#39 then #40)
    logos-dev-boost  4fb867a -> a915699   (#17 then #18)

Set 1 merged in two waves, which is why this moves a second time. The first four
PRs were squash-merged at their pre-CI heads, so the CI conversions that had been
pushed to those same branches afterwards were not included and needed their own
PRs; those have now merged too. logos-tutorial (#81, #83) merged in both waves as
well but is not a rev-pinned root input.

Every SHA here came from `git ls-remote`, not from a local ref: an explicit
`git fetch origin master` in these submodules left origin/master at the PRE-merge
tip, and repinning off that would have quietly pinned stale revisions while
reporting success.

Both platforms evaluate: aarch64-darwin 641, x86_64-windows 399.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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