Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# CLAUDE.md — Logs Over Reflector

Indigo plugin that exposes the event log as a JSON REST API over the Indigo Reflector.

## Versioning & Release

### Version bump is required for every PR

The `PluginVersion` in `LogsOverReflector.indigoPlugin/Contents/Info.plist` must be bumped in every PR. CI runs a version-check that fails if the version already exists as a git tag. **Do not merge with failing checks.**

Version format: `YYYY.R.patch` (e.g. `2026.0.4`). Bump the patch for fixes/docs, minor for features.

On merge to main, the `create-release` workflow automatically creates a GitHub release with a `.zip` bundle of the plugin.

### PR checklist

1. Bump `PluginVersion` in `Info.plist`
2. Push and create PR
3. Wait for version-check CI to pass
4. Merge only after all checks are green

## Plugin Overview

- **Bundle ID**: `com.simons-plugins.logs-over-reflector`
- **Plugin ID**: `com.simons-plugins.logs-over-reflector`
- **Python**: 3.10+ (Indigo 2023+)

### Endpoints

All endpoints served via Indigo Reflector message API:

| Endpoint | Description |
|----------|-------------|
| `log` | Current event log with pagination and filtering |
| `sources` | Distinct log source names |
| `history` | Historical entries from dated log files |
| `dates` | List of available log dates |

### Query Parameters

- `lines` — number of entries (default 500, max 5000)
- `offset` — skip N most-recent entries (pagination)
- `source` — filter by source name
- `search` — text search in message field
- `date` — (history only) date in `YYYY-MM-DD` format

## Plugin Structure

```
LogsOverReflector.indigoPlugin/
└── Contents/
├── Info.plist
└── Server Plugin/
├── plugin.py # HTTP handlers (log, sources, history, dates)
├── Actions.xml # Action definitions for HTTP endpoints
└── PluginConfig.xml # Plugin preferences
```

## Testing

```bash
# Copy to Indigo server
cp -r "LogsOverReflector.indigoPlugin" "/Volumes/Macintosh HD-1/Library/Application Support/Perceptive Automation/Indigo 2025.1/Plugins/"
```

Then reload via MCP: `mcp__indigo__restart_plugin(plugin_id="com.simons-plugins.logs-over-reflector")`
4 changes: 2 additions & 2 deletions LogsOverReflector.indigoPlugin/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
<plist version="1.0">
<dict>
<key>PluginVersion</key>
<string>2026.0.3</string>
<string>2026.0.4</string>

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 | 🔴 Critical

Version bump is still invalid and currently blocks release.

CI is failing because 2026.0.4 already exists as a git tag. Update both Line 6 (PluginVersion) and Line 14 (CFBundleVersion) to a new unused version (for example, 2026.0.5).

Proposed fix
-    <string>2026.0.4</string>
+    <string>2026.0.5</string>
...
-    <string>2026.0.4</string>
+    <string>2026.0.5</string>

Also applies to: 14-14

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

In `@LogsOverReflector.indigoPlugin/Contents/Info.plist` at line 6, The plugin
version bump is invalid because the value "2026.0.4" already exists as a git
tag; update both the PluginVersion entry and the CFBundleVersion entry in
Info.plist (the <string> values for PluginVersion and CFBundleVersion) to a new
unused version (e.g., "2026.0.5") ensuring both fields match the same new
version before committing.

<key>ServerApiVersion</key>
<string>3.6</string>
<key>CFBundleDisplayName</key>
<string>LogsOverReflector</string>
<key>CFBundleIdentifier</key>
<string>com.simons-plugins.logs-over-reflector</string>
<key>CFBundleVersion</key>
<string>2026.0.3</string>
<string>2026.0.4</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
Expand Down
Loading