Skip to content

docs: close and retire the handover — refs removed, HANDOVER.md gitignored - #171

Merged
simons-plugins merged 5 commits into
mainfrom
docs/handover-136-hardening
Aug 10, 2026
Merged

docs: close and retire the handover — refs removed, HANDOVER.md gitignored#171
simons-plugins merged 5 commits into
mainfrom
docs/handover-136-hardening

Conversation

@simons-plugins

@simons-plugins simons-plugins commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Updated the plugin release to version 2026.9.3.
    • Added guidance for publishing and locally testing bridge releases.
  • Documentation

    • Updated installation, validation, testing, and implementation references.
    • Clarified npm bridge availability and synchronized release-version requirements.
    • Documented that commands received while the plugin is unavailable do not generate protocol frames.
    • Refreshed handover and release-status information, including merged bridge and hardening work.

…ning landed

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Unpt5UPRdLoZkahH6a4gL
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@simons-plugins, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 53 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 80ca6e00-3733-4e64-9ba4-d2ef8c2d64aa

📥 Commits

Reviewing files that changed from the base of the PR and between a7c5b69 and 4fc0d97.

📒 Files selected for processing (15)
  • README.md
  • bridge-node/README.md
  • bridge-node/src/endpoints.ts
  • docs/INSTALL.md
  • docs/MATTER.md
  • docs/PRD-indigo-matter-export.md
  • indigo-matter.indigoPlugin/Contents/Server Plugin/bridge_agent.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/device_sync.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/matter_handlers/base.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/matter_handlers/color_control.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/matter_handlers/door_lock.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/matter_handlers/electrical.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/matter_handlers/level_control.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/matter_handlers/on_off.py
  • tests/test_door_lock.py
📝 Walkthrough

Walkthrough

The PR updates release and handover documentation, documents bridge-node publication and local installation, removes retired HANDOVER.md references, and increments the plugin version from 2026.9.2 to 2026.9.3.

Changes

Release documentation

Layer / File(s) Summary
Handover status and completed work
docs/HANDOVER.md
The handover records release status, completed bridge restore and commissioning work, remaining validation notes, and the revised next-up list.
Release version and bridge publication
indigo-matter.indigoPlugin/Contents/Info.plist, bridge-node/README.md, docs/PRD-indigo-matter-export.md, indigo-matter.indigoPlugin/Contents/Server Plugin/bridge_agent.py
The plugin version is updated to 2026.9.3. Bridge publication, synchronized versions, local installation, and release procedures are documented and referenced.
Documentation reference cleanup
.gitignore, README.md, bridge-node/src/endpoints.ts, docs/IMPLEMENTATION.md, docs/PRD-indigo-matter-plugin.md, docs/TESTING.md, docs/testing.html, indigo-matter.indigoPlugin/Contents/Server Plugin/export_handlers.py, indigo-matter.indigoPlugin/Contents/Server Plugin/http_api_mixin.py, tests/test_launch_agent.py, tests/test_plugin_module.py
Active documentation and code references to HANDOVER.md are removed or redirected. The documentation scan list is updated accordingly.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main changes: retiring the handover, removing references, and adding HANDOVER.md to .gitignore.
✨ 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 docs/handover-136-hardening

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

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

…es-driven from here

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Unpt5UPRdLoZkahH6a4gL
@simons-plugins simons-plugins changed the title docs(handover): #136 restore + quartet hardening arc landed docs(handover): close the handover as the build record — evening arc landed, issues-driven from here Aug 9, 2026
simons-plugins and others added 2 commits August 10, 2026 12:24
…nt rehomed (#136 arc close)

The handover was the build record; work is issues-driven now. The file
leaves the repo (gitignored, kept locally) and every reference follows:
README's two Pages links, the IMPLEMENTATION/PRD companion pointers,
TESTING.md + testing.html war-story links, and the five code-comment
pointers. The one live runbook it held — the bridge-node release steps
and local-install recipe — moves to bridge-node/README.md § Releasing,
and the export PRD's E7 row now states the package IS published (it
said publishing was pending, which bridge_agent.py contradicted).
SCANNED_DOCS drops the entry so the retired-menu guard doesn't chase a
file fresh clones don't have.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Unpt5UPRdLoZkahH6a4gL
@simons-plugins simons-plugins changed the title docs(handover): close the handover as the build record — evening arc landed, issues-driven from here docs: close and retire the handover — refs removed, HANDOVER.md gitignored Aug 10, 2026
…shed-status claims

/review-pr on #171: the eight dated 'HANDOVER 2026-06-09 item 4' lesson
citations now cite issue #56 (the lesson text was already inline); the
repo no longer references the document anywhere. The retirement also
surfaced now-false publish claims the handover used to reconcile:
INSTALL.md's 'You cannot install this yet' block and its troubleshooting
row, MATTER.md's 'not installable yet', README's local-install-only
framing, and the export PRD's §266/E8 rows — indigo-matter-bridge is on
npm (0.5.0 onward, pin 0.8.0). bridge-node/README's § Releasing now
states honestly that test_bridge_agent only catches a pin AHEAD of
package.json; the in-step bump is manual discipline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Unpt5UPRdLoZkahH6a4gL

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
indigo-matter.indigoPlugin/Contents/Server Plugin/http_api_mixin.py (3)

205-208: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Prevent caching of the pairing response.

The pairing page returns a live manual pairing code and raw MT: payload. The response currently sets only Content-Type. A browser or intermediary can retain this authenticated GET response and expose commissioning credentials to another user of the cache. Add Cache-Control: no-store.

Proposed header
reply["headers"] = indigo.Dict({
    "Content-Type": "text/html; charset=utf-8",
+   "Cache-Control": "no-store",
})
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@indigo-matter.indigoPlugin/Contents/Server` Plugin/http_api_mixin.py around
lines 205 - 208, Update the response headers in the pairing-page handler that
calls _pairing_page() to include Cache-Control: no-store alongside the existing
Content-Type header, ensuring the live pairing credentials are not cached.

141-142: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Route decommission deletes through the loop-to-Indigo handoff.

delete_node(node_id, ...) calls indigo.device.delete(...) directly. When callers submit _decommission on the asyncio runtime thread, Indigo device deletion also runs on that thread, so route this removal through the approved thread-safe device-sync handoff or add a thread-safe deletion wrapper that performs direct deletion.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@indigo-matter.indigoPlugin/Contents/Server` Plugin/http_api_mixin.py around
lines 141 - 142, Update the _decommission flow around device_sync.delete_node so
deletion is dispatched through the approved loop-to-Indigo thread-safe handoff
when invoked from the asyncio runtime thread. If needed, add and use a
thread-safe deletion wrapper rather than calling indigo.device.delete directly,
while preserving the existing removed_ids, fabric_removed, and known checks.

Source: Coding guidelines


45-62: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Suppress unused-argument on these HTTP callback signatures.

The configured lint rules do not disable unused-argument, and the shown # noqa: N802 does not suppress W0613/ARG002. Mark the unused callback parameters with ARG002/unused-argument, or rename the unused ones with _/None names. Use the same approach for http_status, http_commission, http_decommission, and http_diagnostics.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@indigo-matter.indigoPlugin/Contents/Server` Plugin/http_api_mixin.py around
lines 45 - 62, Update the callback signatures of http_status, http_commission,
http_decommission, and http_diagnostics to suppress unused-argument lint
warnings by adding the appropriate ARG002/unused-argument suppression or
renaming unused parameters with the project’s accepted underscore convention,
while preserving the callback API.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/PRD-indigo-matter-export.md`:
- Line 382: Update the E8 release-status row adjacent to E7 so it no longer
states that the indigo-matter-bridge npm package is unpublished; align its
wording with the published 0.5.0+ status already recorded in the E7 row, without
changing unrelated E8 details.

---

Outside diff comments:
In `@indigo-matter.indigoPlugin/Contents/Server` Plugin/http_api_mixin.py:
- Around line 205-208: Update the response headers in the pairing-page handler
that calls _pairing_page() to include Cache-Control: no-store alongside the
existing Content-Type header, ensuring the live pairing credentials are not
cached.
- Around line 141-142: Update the _decommission flow around
device_sync.delete_node so deletion is dispatched through the approved
loop-to-Indigo thread-safe handoff when invoked from the asyncio runtime thread.
If needed, add and use a thread-safe deletion wrapper rather than calling
indigo.device.delete directly, while preserving the existing removed_ids,
fabric_removed, and known checks.
- Around line 45-62: Update the callback signatures of http_status,
http_commission, http_decommission, and http_diagnostics to suppress
unused-argument lint warnings by adding the appropriate ARG002/unused-argument
suppression or renaming unused parameters with the project’s accepted underscore
convention, while preserving the callback API.
🪄 Autofix

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 Plus

Run ID: f6491937-6f41-41c7-962b-9dec7c434e9d

📥 Commits

Reviewing files that changed from the base of the PR and between 30146d7 and a7c5b69.

📒 Files selected for processing (16)
  • .gitignore
  • README.md
  • bridge-node/README.md
  • bridge-node/src/endpoints.ts
  • docs/HANDOVER.md
  • docs/IMPLEMENTATION.md
  • docs/PRD-indigo-matter-export.md
  • docs/PRD-indigo-matter-plugin.md
  • docs/TESTING.md
  • docs/testing.html
  • indigo-matter.indigoPlugin/Contents/Info.plist
  • indigo-matter.indigoPlugin/Contents/Server Plugin/bridge_agent.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/export_handlers.py
  • indigo-matter.indigoPlugin/Contents/Server Plugin/http_api_mixin.py
  • tests/test_launch_agent.py
  • tests/test_plugin_module.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • indigo-matter.indigoPlugin/Contents/Info.plist

Comment thread docs/PRD-indigo-matter-export.md
@simons-plugins
simons-plugins merged commit 583b408 into main Aug 10, 2026
3 checks passed
@simons-plugins
simons-plugins deleted the docs/handover-136-hardening branch August 10, 2026 15:58
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