feat(profile): add streamdeck_find_actions for plugin reuse discovery - #61
Conversation
Make configured plugin buttons/dials the default authoring path by searching existing profiles and retargeting tools and skills toward find → synthesize → scripts.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 451289f649
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 13d1c37bd4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Absolutize and copy page-local assets on paste, skip corrupt page refs, mint ActionIDs per materialized raw action, and tolerate malformed position keys while scanning.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3f7f7d7ea0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Skip bad profile manifests and malformed action keys during find/layout inference, and require mcp>=1.25.0 so CallToolResult isError paths work.
|
@codex review |
1 similar comment
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c2551630a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Add paste-ready hit.button with controller for dials, soft-walk pages only in find_actions, skip corrupt profiles in resolve_profile, and tolerate bad slots in read_page while preserving strict manifest errors for targeted reads.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2f4813effc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Raise on targeted corrupt profile_id, skip actions with bad State values during find/read, and absolutize read_page raw assets so cross-page raw pastes copy icons.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2370c2b47d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Skip malformed Actions values during find/read scans, and only absolutize page-local assets that resolve under the source page Images/ directory.
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
streamdeck_find_actionsto scan configured keypad/encoder actions across profiles and return paste-ready nativeactionblocks (freshActionID) forstreamdeck_write_page.isError:trueso clients do not treat rejected profile edits as successful writes.Closes #62
Verification Evidence
uv run pytest tests/test_profile_server.py -q→5 passed in 0.18suv run pytest tests/ -q→104 passed, 1 warning in 0.36suv run ruff format profile_server.py tests/test_profile_server.py && uv run ruff check profile_server.py tests/test_profile_server.py→All checks passed!CallToolRequest(streamdeck_read_page, {directory_id:"missing-page"})with stubbed missing profile → observedisError=Trueand❌ Profile not found: <unspecified>❌profile/write failures asstatus='success'andisError:false; the patched handler now returns aCallToolResultwithisError:truefor those failure paths.Test plan
uv run pytest tests/test_profile_server.py -quv run pytest tests/ -quv run ruff format profile_server.py tests/test_profile_server.py && uv run ruff check profile_server.py tests/test_profile_server.pystreamdeck_read_pagefailureRisk
Read-only scan over local profile manifests; write path behavior is unchanged for successful writes. Failure/refusal branches now use the MCP protocol's error flag instead of encoding errors only as text content.