Skip to content

docs: 2025.x version coverage, ConfigUiValues callbacks, audit fixes (v1.9.0)#37

Merged
simons-plugins merged 2 commits into
mainfrom
claude/create-github-issues-3MG2A
May 3, 2026
Merged

docs: 2025.x version coverage, ConfigUiValues callbacks, audit fixes (v1.9.0)#37
simons-plugins merged 2 commits into
mainfrom
claude/create-github-issues-3MG2A

Conversation

@simons-plugins
Copy link
Copy Markdown
Owner

@simons-plugins simons-plugins commented May 3, 2026

Summary

Documentation refresh for Indigo 2025.x developers, plus an audit-fix follow-up. Bumps to v1.9.0.

Commit 1 (4b7a5b6)closes #32, #33, #34, #35

  • quick-start.md: expanded version reference table covering 2025.2 / 2025.1 / 2023.2 (paths, Python, Runtime API), with a note that ServerApiVersion is a minimum
  • quick-start.md + common-issues.md: documented the version-keyed pip success marker (3.13-pip-install-log-success.txt on 2025.2, pip-install-log-success.txt on older)
  • common-issues.md: new "Upgrading to Indigo 2025.2 / Python 3.13" section covering telnetlib removal, websockets v14+ rename, matplotlib legendHandles and plot_date
  • plugin-lifecycle.md: new ConfigUI pre-population callbacks reference covering all five get*ConfigUiValues callbacks (incl. previously undocumented getMenuActionConfigUiValues and getActionConfigUiValues), plus menu-item date-default and device-token examples
  • Cross-links from menu-items.md, actions.md, devices.md, configui.md, events.md, plugin-preferences.md

Commit 2 (3caa6f1) — closes 6 of 7 in #36

  • snippets/plugin-base-template.py: docstring reflects 3.10–3.13 range
  • scripting-shell.md: CLI path examples switched to 2025.2 with substitute-your-version note
  • skills/dev/SKILL.md: replaced "bundle in Contents/Packages/" with requirements.txt guidance; updated Python version line
  • docs/api/README.md + overview.md: fixed broken indigo-object-model.md links and two adjacent broken links
  • docs/plugin-dev/concepts/README.md: dead CONTRIBUTING.md link replaced with a GitHub repo pointer

The remaining item in #36 (menu-item validate*/closed* ConfigUI callbacks) is deferred pending plugin_base.py verification.

Test plan

  • CI version-bump check passes (1.8.0 → 1.9.0, both files in sync)
  • Spot-check rendered Markdown in GitHub for new tables in quick-start.md, common-issues.md, plugin-lifecycle.md
  • Verify all newly-touched cross-links resolve (plugin-lifecycle.md#configui-pre-population-callbacks from each concepts file; fixed object-model links from docs/api/)
  • Confirm 2025.2 path examples in scripting-shell.md are accurate for your install

https://claude.ai/code/session_01PBR2a67rzj9NsZ8Vpmat6H


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Added ConfigUI pre-population callbacks documentation, enabling plugin developers to seed dialog fields with computed values before dialogs open.
  • Documentation

    • Updated Python support to 3.10–3.13; Indigo 2025.2 now recommended.
    • Enhanced troubleshooting guide with Indigo 2025.2 upgrade compatibility notes and dependency resolution steps.
    • Reorganized documentation links and expanded quick-start prerequisites guidance.
  • Chores

    • Bumped plugin version to 1.9.0.

claude added 2 commits May 3, 2026 08:41
…tes, ConfigUiValues callbacks

- quick-start.md: expand version reference table (paths, Python, Runtime API)
  to cover 2025.2 / 2025.1 / 2023.2 and clarify ServerApiVersion is a minimum
- common-issues.md + quick-start.md: document version-keyed pip success marker
  (3.13-pip-install-log-success.txt on 2025.2)
- common-issues.md: add "Upgrading to Indigo 2025.2 / Python 3.13" section
  covering telnetlib removal, websockets v14+ rename, matplotlib legendHandles
  and plot_date deprecations
- plugin-lifecycle.md: add ConfigUI pre-population callbacks reference covering
  all five get*ConfigUiValues callbacks (incl. previously undocumented
  getMenuActionConfigUiValues and getActionConfigUiValues), with menu-item
  date-default and device-token examples
- cross-link new reference from menu-items.md, actions.md, devices.md,
  configui.md, events.md, plugin-preferences.md
- bump plugin.json + marketplace.json to 1.9.0

Closes #32, #33, #34, #35

https://claude.ai/code/session_01PBR2a67rzj9NsZ8Vpmat6H
Fixes 6 of 7 findings in #36; deferred item is the menu-item validation/closed
ConfigUI callbacks pending plugin_base.py verification.

- snippets/plugin-base-template.py: docstring now reflects 3.10–3.13 range
- docs/plugin-dev/concepts/scripting-shell.md: switch CLI path examples to
  Indigo 2025.2 with a substitute-your-version note linking the version table
- skills/dev/SKILL.md: replace "bundle in Contents/Packages/" with the
  requirements.txt-based guidance, and update the Python version line
- docs/api/README.md: fix broken link to indigo-object-model.md (correct path
  is plugin-dev/api/), and fix two adjacent broken links to concepts/ and
  examples/ that pointed to non-existent repo-root paths
- docs/api/overview.md: same indigo-object-model.md path fix
- docs/plugin-dev/concepts/README.md: replace dead link to non-existent
  CONTRIBUTING.md with a pointer to the GitHub repo

https://claude.ai/code/session_01PBR2a67rzj9NsZ8Vpmat6H
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 3, 2026

📝 Walkthrough

Walkthrough

Version 1.9.0 release updates plugin manifests and documentation. Adds ConfigUI pre-population callback documentation across multiple concept guides and plugin lifecycle reference. Updates version examples to Indigo 2025.2 with Python 3.10–3.13 support, adds 2025.2/Python 3.13 upgrade troubleshooting, and maintains consistent path and API references throughout.

Changes

Plugin Version Bump & Documentation Updates

Layer / File(s) Summary
Version Bump
.claude-plugin/marketplace.json, .claude-plugin/plugin.json
Plugin version updated from 1.8.0 to 1.9.0 in both manifest files.
Feature Documentation
docs/plugin-dev/concepts/plugin-lifecycle.md, docs/plugin-dev/concepts/configui.md
New "ConfigUI Pre-population Callbacks" sections added, documenting five callback hooks and their signatures with behavioral notes and code examples.
Cross-Concept References
docs/plugin-dev/concepts/actions.md, docs/plugin-dev/concepts/devices.md, docs/plugin-dev/concepts/events.md, docs/plugin-dev/concepts/menu-items.md, docs/plugin-dev/concepts/plugin-preferences.md
Individual concept guides now reference the pre-population callbacks with method signatures and link to the central plugin-lifecycle documentation.
Version & Path Updates
docs/plugin-dev/concepts/scripting-shell.md, docs/plugin-dev/quick-start.md, skills/dev/SKILL.md, snippets/plugin-base-template.py
Python version range narrowed to 3.10–3.13, Indigo 2025.2 paths and examples added, requirements.txt dependency workflow clarified.
Troubleshooting & Upgrade Guidance
docs/plugin-dev/troubleshooting/common-issues.md, docs/plugin-dev/quick-start.md
Added "Upgrading to Indigo 2025.2 / Python 3.13" section documenting breaking changes (telnetlib removal, websockets header kwarg rename, matplotlib API changes) with code fixes; clarified marker-file version-keying for dependency reinstalls.
Documentation Path Updates
docs/api/README.md, docs/api/overview.md, docs/plugin-dev/concepts/README.md
Related documentation links reorganized to point to ../plugin-dev/ paths; contributing guidance redirected to GitHub PR/issue workflow.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

  • Objective from linked issue #32 is directly addressed: added version reference table to quick-start.md with Indigo 2025.2 and 2025.1 Python/API/path rows.

Possibly related PRs

  • PR #28: Both modify .claude-plugin/plugin.json and .claude-plugin/marketplace.json version fields for release management.
  • PR #12: Both expand ConfigUI documentation (plugin-lifecycle.md, configui.md, actions.md, menu-items.md) and add pre-population callback guidance.
  • PR #15: Both update docs/plugin-dev/quick-start.md and docs/plugin-dev/troubleshooting/common-issues.md to document requirements.txt workflow and marker-file behavior.

Poem

🐰 Version nine hops forth with care,
ConfigUI fields now bloom everywhere—
Pre-populate callbacks dance in the light,
Python 3.13 shines oh-so-bright!
Plugin paths leap to 2025,
Docs and dreams all come alive. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the three main changes: documentation updates for 2025.x versions, ConfigUiValues callbacks documentation, audit fixes, and version bump to 1.9.0.
Linked Issues check ✅ Passed The pull request comprehensively addresses issue #32 by adding a version reference table in quick-start.md mapping Indigo versions to Python versions, plugin paths, and Runtime API versions, with clarification on ServerApiVersion semantics.
Out of Scope Changes check ✅ Passed All changes are directly related to documented objectives: version bumps (1.9.0), documentation updates for 2025.x coverage, ConfigUI callbacks references, and audit fixes from linked issues—no unrelated changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/create-github-issues-3MG2A

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
docs/plugin-dev/troubleshooting/common-issues.md (1)

348-348: ⚡ Quick win

Capitalize “Plugins” when referring to Indigo Plugins.

Use Plugins (capitalized) for Indigo Plugin references to match repository terminology rules.

As per coding guidelines, "Use 'Plugin' (capitalized) when referring to Indigo plugins (the tools this project helps build)".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plugin-dev/troubleshooting/common-issues.md` at line 348, The sentence
"Indigo 2025.2 ships Python 3.13.9. Several stdlib and popular-library changes
between 3.11 and 3.13 break plugins that worked on 2025.1." should use the
repository's terminology by capitalizing "Plugins" when referring to Indigo
Plugins; update the word "plugins" to "Plugins" to comply with the guideline
(use 'Plugin'/'Plugins' capitalized when referring to Indigo plugins) so the
phrase reads "...break Plugins that worked on 2025.1."
docs/plugin-dev/quick-start.md (1)

317-317: ⚡ Quick win

Use “Plugin” capitalization for Indigo Plugin references.

In this sentence, capitalize plugin to Plugin for consistency with the project’s terminology rule.

As per coding guidelines, "Use 'Plugin' (capitalized) when referring to Indigo plugins (the tools this project helps build)".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plugin-dev/quick-start.md` at line 317, Update the capitalization of the
word "plugin" to "Plugin" in the sentence referencing `ServerApiVersion` and
`Info.plist`; locate the sentence containing the phrases `ServerApiVersion` and
`Info.plist` and change "plugin" to "Plugin" so it follows the project's
terminology rule for Indigo Plugin references.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/plugin-dev/troubleshooting/common-issues.md`:
- Around line 352-378: Update the new fenced code blocks that show error output
to include a language identifier (use "text") so Markdown lint MD040 is
satisfied; specifically add ```text to the blocks containing the strings
"ModuleNotFoundError: No module named 'telnetlib'", "TypeError: connect() got
unexpected keyword argument 'extra_headers'", "AttributeError: 'Legend' object
has no attribute 'legendHandles'", and "MatplotlibDeprecationWarning: plot_date
was deprecated in 3.9 and will be removed in 3.11. Use plot() instead." so each
error-output fence is ```text ... ``` instead of just ``` ... ```.

In `@snippets/plugin-base-template.py`:
- Line 13: Docstring version range uses an en dash (Unicode “–”) causing RUF002;
replace it with an ASCII hyphen "-" in the docstring text "Indigo 2023.2+
(Python 3.10–3.13; 2025.2 recommended)" so it becomes "Indigo 2023.2+ (Python
3.10-3.13; 2025.2 recommended)"; update the top-level docstring literal in
snippets/plugin-base-template.py (the line containing that version string)
accordingly.

---

Nitpick comments:
In `@docs/plugin-dev/quick-start.md`:
- Line 317: Update the capitalization of the word "plugin" to "Plugin" in the
sentence referencing `ServerApiVersion` and `Info.plist`; locate the sentence
containing the phrases `ServerApiVersion` and `Info.plist` and change "plugin"
to "Plugin" so it follows the project's terminology rule for Indigo Plugin
references.

In `@docs/plugin-dev/troubleshooting/common-issues.md`:
- Line 348: The sentence "Indigo 2025.2 ships Python 3.13.9. Several stdlib and
popular-library changes between 3.11 and 3.13 break plugins that worked on
2025.1." should use the repository's terminology by capitalizing "Plugins" when
referring to Indigo Plugins; update the word "plugins" to "Plugins" to comply
with the guideline (use 'Plugin'/'Plugins' capitalized when referring to Indigo
plugins) so the phrase reads "...break Plugins that worked on 2025.1."
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a0e8b227-42ac-4bbd-ad7d-e2d479f9891a

📥 Commits

Reviewing files that changed from the base of the PR and between f0397a2 and 3caa6f1.

📒 Files selected for processing (17)
  • .claude-plugin/marketplace.json
  • .claude-plugin/plugin.json
  • docs/api/README.md
  • docs/api/overview.md
  • docs/plugin-dev/concepts/README.md
  • docs/plugin-dev/concepts/actions.md
  • docs/plugin-dev/concepts/configui.md
  • docs/plugin-dev/concepts/devices.md
  • docs/plugin-dev/concepts/events.md
  • docs/plugin-dev/concepts/menu-items.md
  • docs/plugin-dev/concepts/plugin-lifecycle.md
  • docs/plugin-dev/concepts/plugin-preferences.md
  • docs/plugin-dev/concepts/scripting-shell.md
  • docs/plugin-dev/quick-start.md
  • docs/plugin-dev/troubleshooting/common-issues.md
  • skills/dev/SKILL.md
  • snippets/plugin-base-template.py

Comment on lines +352 to +378
```
ModuleNotFoundError: No module named 'telnetlib'
```

**Fix**: add `telnetlib-313-and-up` to your `requirements.txt`. The shim restores the same import path so existing code keeps working.

### `websockets` v14+ — `extra_headers` renamed

```
TypeError: connect() got unexpected keyword argument 'extra_headers'
```

**Fix**: rename `extra_headers=` to `additional_headers=` in `websockets.connect()`. This is a `websockets` library change (v14+), not Python 3.13 itself — pinning `websockets<14` in `requirements.txt` is the alternative.

### `matplotlib` — `legendHandles` removed

```
AttributeError: 'Legend' object has no attribute 'legendHandles'
```

**Fix**: use `legend_handles` (snake_case) instead — e.g. `ax.legend().legend_handles`.

### `matplotlib` — `plot_date` deprecated

```
MatplotlibDeprecationWarning: plot_date was deprecated in 3.9 and will be removed in 3.11. Use plot() instead.
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add language identifiers to the new fenced code blocks.

The new error-output fences in this section omit language tags, which triggers MD040.

Suggested fix
-```
+```text
 ModuleNotFoundError: No module named 'telnetlib'

...
- +text
TypeError: connect() got unexpected keyword argument 'extra_headers'

...
-```
+```text
AttributeError: 'Legend' object has no attribute 'legendHandles'

...
- +text
MatplotlibDeprecationWarning: plot_date was deprecated in 3.9 and will be removed in 3.11. Use plot() instead.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 352-352: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 360-360: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 368-368: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 376-376: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plugin-dev/troubleshooting/common-issues.md` around lines 352 - 378,
Update the new fenced code blocks that show error output to include a language
identifier (use "text") so Markdown lint MD040 is satisfied; specifically add
```text to the blocks containing the strings "ModuleNotFoundError: No module
named 'telnetlib'", "TypeError: connect() got unexpected keyword argument
'extra_headers'", "AttributeError: 'Legend' object has no attribute
'legendHandles'", and "MatplotlibDeprecationWarning: plot_date was deprecated in
3.9 and will be removed in 3.11. Use plot() instead." so each error-output fence
is ```text ... ``` instead of just ``` ... ```.

Requirements:
- Indigo 2023.2+ (Python 3.10+)
- ServerApiVersion 3.0 in Info.plist
- Indigo 2023.2+ (Python 3.10–3.13; 2025.2 recommended)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Replace EN DASH with ASCII hyphen in docstring version range.

Line 13 uses , which Ruff flags as ambiguous Unicode punctuation (RUF002).

Suggested fix
-    - Indigo 2023.2+ (Python 3.10–3.13; 2025.2 recommended)
+    - Indigo 2023.2+ (Python 3.10-3.13; 2025.2 recommended)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Indigo 2023.2+ (Python 3.103.13; 2025.2 recommended)
- Indigo 2023.2+ (Python 3.10-3.13; 2025.2 recommended)
🧰 Tools
🪛 Ruff (0.15.12)

[warning] 13-13: Docstring contains ambiguous (EN DASH). Did you mean - (HYPHEN-MINUS)?

(RUF002)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@snippets/plugin-base-template.py` at line 13, Docstring version range uses an
en dash (Unicode “–”) causing RUF002; replace it with an ASCII hyphen "-" in the
docstring text "Indigo 2023.2+ (Python 3.10–3.13; 2025.2 recommended)" so it
becomes "Indigo 2023.2+ (Python 3.10-3.13; 2025.2 recommended)"; update the
top-level docstring literal in snippets/plugin-base-template.py (the line
containing that version string) accordingly.

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.

docs: add version reference table (paths, Python, API) for 2025.1 and 2025.2

2 participants