@tomismeta/paperclip-aperture 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -46,6 +46,12 @@ Then install the plugin with the command above.
46
46
 
47
47
  After install, open Paperclip and use the `Focus` entry in the sidebar.
48
48
 
49
+ ## Troubleshooting
50
+
51
+ - If the sidebar shows a bordered placeholder instead of the `Focus` entry, upgrade to Paperclip `2026.525.0` or newer and reinstall this plugin. `0.4.5` preserves the original Focus sidebar icon and uses the current host invocation scope.
52
+ - `paperclipApiBase` is only needed for approval overlays. Use the Paperclip origin such as `https://HOST` or `http://127.0.0.1:3100`; leaving it empty disables approval overlay reads without disabling Focus.
53
+ - On Windows, `spawn npm ENOENT` during `npx paperclipai plugin install @tomismeta/paperclip-aperture` comes from the Paperclip host installer failing to spawn npm. This package does not spawn npm during install. Make sure the Paperclip process can resolve `npm.cmd`, or upgrade Paperclip once the Windows installer fix is available.
54
+
49
55
  ## Napkin Diagram
50
56
 
51
57
  ```text
@@ -126,9 +132,9 @@ For `0.4.x`, the boundary works like this:
126
132
  - `activity.logged` document events invalidate stale reconciled state so document-backed review blockers refresh promptly without a full browser-side merge layer
127
133
  - Focus exports the live Core snapshot, the reconciled/plugin-composed display snapshot, and bounded Core traces so replay/debug flows can inspect both the engine substrate and the final operator view
128
134
 
129
- The plugin has been validated against [`@tomismeta/aperture-core@0.7.0`](https://www.npmjs.com/package/@tomismeta/aperture-core) and [`@paperclipai/plugin-sdk@2026.428.0`](https://www.npmjs.com/package/@paperclipai/plugin-sdk).
135
+ The plugin requires Paperclip `2026.525.0` or newer and has been validated against [`@tomismeta/aperture-core@0.7.0`](https://www.npmjs.com/package/@tomismeta/aperture-core) and [`@paperclipai/plugin-sdk@2026.525.0`](https://www.npmjs.com/package/@paperclipai/plugin-sdk).
130
136
 
131
- If your Paperclip host is not running at the default local address, set the plugin config field `paperclipApiBase` so the worker-side approval adapter can reach the correct host API.
137
+ Approval overlay transport is opt-in until the Paperclip plugin SDK exposes a first-class approval client. Set the plugin config field `paperclipApiBase` when the worker can reach the host approval API; leave it empty to run Focus without approval overlays in hosted or restricted-network environments.
132
138
 
133
139
  ## Development
134
140
 
@@ -161,12 +167,14 @@ npx paperclipai plugin uninstall tomismeta.paperclip-aperture --force
161
167
  npx paperclipai plugin install --local .
162
168
  ```
163
169
 
170
+ If you want to smoke test approval overlays locally, set the plugin config field `paperclipApiBase` to `http://127.0.0.1:3100` before creating approval fixtures. Without that config, Focus intentionally skips approval API reads and stays quiet.
171
+
164
172
  Then open `http://127.0.0.1:3100/APE/aperture` and verify:
165
173
 
166
174
  - `Acknowledge` hides the active card and survives refresh
167
175
  - `Next` promotes into `Now`
168
176
  - issue comments post successfully from Focus
169
- - approval actions update Focus correctly
177
+ - approval actions update Focus correctly when `paperclipApiBase` is configured
170
178
  - resolved blocker comments downgrade stale `Now` items
171
179
  - attached issue documents downgrade stale `share the memo/spec` review blockers into monitor-only follow-up
172
180
  - the active card exposes `Why now`
package/dist/manifest.js CHANGED
@@ -1 +1 @@
1
- const e={id:"tomismeta.paperclip-aperture",apiVersion:1,version:"0.4.3",displayName:"Paperclip Aperture",description:"The live attention layer for Paperclip, combining Aperture Core continuity with Paperclip-native operator policy.",author:"@tomismeta",categories:["automation","ui"],capabilities:["events.subscribe","http.outbound","agents.read","issues.read","issue.relations.read","issue.comments.read","issue.comments.create","issue.documents.read","activity.log.write","plugin.state.read","plugin.state.write","telemetry.track","ui.dashboardWidget.register","ui.page.register","ui.sidebar.register"],entrypoints:{worker:"./dist/worker.js",ui:"./dist/ui"},instanceConfigSchema:{type:"object",properties:{captureIssueLifecycle:{type:"boolean",title:"Capture Issue Lifecycle",default:!0,description:"Turn issue creation and update events into Aperture status signals."},captureRunFailures:{type:"boolean",title:"Capture Run Failures",default:!0,description:"Turn failed agent runs into high-salience attention events."},paperclipApiBase:{type:"string",title:"Paperclip API Base",default:"http://127.0.0.1:3100",description:"Base URL the worker should use for Paperclip approval reads and writes when the plugin SDK lacks a first-class approval client."}}},ui:{slots:[{type:"page",id:"attention-page",displayName:"Focus",exportName:"AttentionPage",routePath:"aperture"},{type:"sidebar",id:"attention-sidebar-link",displayName:"Focus",exportName:"AttentionSidebarLink"},{type:"dashboardWidget",id:"attention-widget",displayName:"Focus",exportName:"DashboardWidget"}]}};var t=e;export{t as default};
1
+ var e={id:"tomismeta.paperclip-aperture",apiVersion:1,version:"0.4.5",minimumHostVersion:"2026.525.0",displayName:"Paperclip Aperture",description:"The live attention layer for Paperclip, combining Aperture Core continuity with Paperclip-native operator policy.",author:"@tomismeta",categories:["automation","ui"],capabilities:["events.subscribe","http.outbound","agents.read","issues.read","issue.relations.read","issue.comments.read","issue.comments.create","issue.documents.read","activity.log.write","plugin.state.read","plugin.state.write","telemetry.track","ui.dashboardWidget.register","ui.page.register","ui.sidebar.register"],entrypoints:{worker:"./dist/worker.js",ui:"./dist/ui"},instanceConfigSchema:{type:"object",properties:{captureIssueLifecycle:{type:"boolean",title:"Capture Issue Lifecycle",default:!0,description:"Turn issue creation and update events into Aperture status signals."},captureRunFailures:{type:"boolean",title:"Capture Run Failures",default:!0,description:"Turn failed agent runs into high-salience attention events."},paperclipApiBase:{type:"string",title:"Paperclip API Base",default:"",description:"Optional base URL for Paperclip approval reads and writes. Leave empty to disable approval API fetches when the plugin SDK lacks a first-class approval client."}}},ui:{slots:[{type:"page",id:"attention-page",displayName:"Focus",exportName:"AttentionPage",routePath:"aperture"},{type:"sidebar",id:"attention-sidebar-link",displayName:"Focus",exportName:"AttentionSidebarLink"},{type:"dashboardWidget",id:"attention-widget",displayName:"Focus",exportName:"DashboardWidget"}]}},t=e;export{t as default};