paperclip-github-plugin 0.9.7 → 0.9.9
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 +5 -4
- package/dist/manifest.js +1 -1
- package/dist/ui/index.js +3 -3
- package/dist/ui/index.js.map +2 -2
- package/dist/worker.js +74 -3
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ The plugin adds a full in-host workflow instead of a one-off import script:
|
|
|
44
44
|
2. Connect one or more GitHub repositories to Paperclip projects.
|
|
45
45
|
3. Run a sync manually or let the scheduled job keep things up to date.
|
|
46
46
|
|
|
47
|
-
During sync, the plugin imports one top-level Paperclip issue per GitHub issue, stamps it with a namespaced GitHub Sync plugin origin, updates already imported issues instead of recreating them, maps GitHub labels into Paperclip labels, and keeps GitHub-specific metadata in dedicated Paperclip surfaces rather than stuffing everything into the issue description. On Paperclip `2026.
|
|
47
|
+
During sync, the plugin imports one top-level Paperclip issue per GitHub issue, stamps it with a namespaced GitHub Sync plugin origin, updates already imported issues instead of recreating them, maps GitHub labels into Paperclip labels, and keeps GitHub-specific metadata in dedicated Paperclip surfaces rather than stuffing everything into the issue description. On Paperclip `2026.517.0` and newer, the plugin passes the intended initial import status explicitly so Paperclip's assigned-issue creation defaults cannot override GitHub Sync's routing, and the detail surfaces can recover GitHub issue and pull request links from Paperclip's own `originKind` / `originId` fields when the plugin registry or legacy hidden marker is missing.
|
|
48
48
|
|
|
49
49
|
When the host exposes plugin issue creation, imported GitHub issues are created through the Paperclip plugin SDK path so they are not attributed to the connected board user. The worker still uses direct local Paperclip REST calls for label sync and for description, assignee, or status repair paths when those routes are available.
|
|
50
50
|
|
|
@@ -106,7 +106,7 @@ They can also link a Paperclip issue to a GitHub issue or pull request in any ac
|
|
|
106
106
|
## Requirements
|
|
107
107
|
|
|
108
108
|
- Node.js 20+
|
|
109
|
-
- a Paperclip host with plugin installation enabled. GitHub Sync is built and tested against Paperclip `2026.
|
|
109
|
+
- a Paperclip host with plugin installation enabled. GitHub Sync is built and tested against Paperclip `2026.517.0`; the manifest relies on explicit capabilities instead of a strict host-version gate because current latest/development hosts can report `0.0.0` during plugin upgrade.
|
|
110
110
|
- a GitHub token with API access to the repositories you want to sync
|
|
111
111
|
|
|
112
112
|
## Install from npm
|
|
@@ -186,6 +186,7 @@ Additional behavior:
|
|
|
186
186
|
- Sync-driven handoffs to agent assignees best-effort enqueue an explicit wakeup so the next reviewer, approver, or executor can pick the issue up even when their agent is not running heartbeats.
|
|
187
187
|
- Open imported issues that are already in `backlog` stay in `backlog` until someone changes them in Paperclip.
|
|
188
188
|
- If an imported issue is `done` or `cancelled` and GitHub shows it open again with no linked pull request, sync moves it to `todo` so agents can pick it up again.
|
|
189
|
+
- When an issue has an active Paperclip issue monitor, GitHub Sync lets that monitor own the wait. It still refreshes GitHub metadata, but it does not change the issue's Paperclip status, assignee, execution state, transition comments, or wakeups until the monitor is no longer active.
|
|
189
190
|
- Trusted new GitHub comments from the original issue author or a verified maintainer/admin can move an open imported issue back into active work, whether the new comment lands on the source issue, in a linked pull request's top-level comment stream, or in a linked pull request review thread; GitHub Sync uses `in_progress` when it can route the issue to an executor and otherwise `todo`.
|
|
190
191
|
- When the sync changes a Paperclip issue status, it adds a Paperclip comment explaining what changed and why.
|
|
191
192
|
|
|
@@ -365,8 +366,8 @@ Useful scripts:
|
|
|
365
366
|
|
|
366
367
|
- `pnpm dev` watches the manifest, worker, and UI bundles and rebuilds them into `dist/`
|
|
367
368
|
- `pnpm dev:ui` starts a local Paperclip plugin UI dev server from `dist/ui` on port `4177`
|
|
368
|
-
- `pnpm test:e2e` builds the plugin, boots an isolated Paperclip `2026.
|
|
369
|
-
- `pnpm verify:manual` builds the plugin, boots a local-trusted Paperclip `2026.
|
|
369
|
+
- `pnpm test:e2e` builds the plugin, boots an isolated Paperclip `2026.517.0` instance, installs the plugin, and verifies the hosted settings page renders
|
|
370
|
+
- `pnpm verify:manual` builds the plugin, boots a local-trusted Paperclip `2026.517.0` instance for manual inspection, seeds a `Dummy Company` with a mapped review project and a `CEO` agent on the Codex local adapter using model `gpt-5.4`, installs the plugin, and opens the company dashboard without seeding KPI history.
|
|
370
371
|
|
|
371
372
|
For fast hosted UI iteration, run `pnpm dev` in one terminal and `pnpm dev:ui` in another.
|
|
372
373
|
|
package/dist/manifest.js
CHANGED
|
@@ -642,7 +642,7 @@ var PULL_REQUEST_ASSET_API_ROUTE_URL_PATH = `/api/plugins/${GITHUB_SYNC_PLUGIN_I
|
|
|
642
642
|
var require2 = createRequire(import.meta.url);
|
|
643
643
|
var packageJson = require2("../package.json");
|
|
644
644
|
var SCHEDULE_TICK_CRON = "* * * * *";
|
|
645
|
-
var MANIFEST_VERSION = "0.9.
|
|
645
|
+
var MANIFEST_VERSION = "0.9.9"?.trim() || typeof packageJson.version === "string" && packageJson.version.trim() || process.env.npm_package_version?.trim() || "0.0.0-dev";
|
|
646
646
|
var manifest = {
|
|
647
647
|
id: GITHUB_SYNC_PLUGIN_ID,
|
|
648
648
|
apiVersion: 1,
|
package/dist/ui/index.js
CHANGED
|
@@ -32928,7 +32928,7 @@ function GitHubSyncSettingsPage() {
|
|
|
32928
32928
|
if (!trustedPaperclipApiBaseUrl) {
|
|
32929
32929
|
throw new Error("Could not resolve the current browser origin for Paperclip API calls.");
|
|
32930
32930
|
}
|
|
32931
|
-
const nextConfiguredPaperclipApiBaseUrl =
|
|
32931
|
+
const nextConfiguredPaperclipApiBaseUrl = trustedPaperclipApiBaseUrl;
|
|
32932
32932
|
await patchPluginConfig(pluginId, {
|
|
32933
32933
|
paperclipApiBaseUrl: nextConfiguredPaperclipApiBaseUrl
|
|
32934
32934
|
});
|
|
@@ -32963,11 +32963,11 @@ function GitHubSyncSettingsPage() {
|
|
|
32963
32963
|
advancedSettings: normalizeAdvancedSettings(result.advancedSettings),
|
|
32964
32964
|
availableAssignees: result.availableAssignees ?? current.availableAssignees,
|
|
32965
32965
|
paperclipApiBaseUrl: result.paperclipApiBaseUrl,
|
|
32966
|
-
paperclipApiBaseUrlConfigured:
|
|
32966
|
+
paperclipApiBaseUrlConfigured: Boolean(nextConfiguredPaperclipApiBaseUrl),
|
|
32967
32967
|
updatedAt: result.updatedAt
|
|
32968
32968
|
}));
|
|
32969
32969
|
setScheduleFrequencyDraft(String(normalizeScheduleFrequencyMinutes(result.scheduleFrequencyMinutes)));
|
|
32970
|
-
setPaperclipApiBaseUrlDraft(
|
|
32970
|
+
setPaperclipApiBaseUrlDraft(nextConfiguredPaperclipApiBaseUrl);
|
|
32971
32971
|
toast({
|
|
32972
32972
|
title: "GitHub sync setup saved",
|
|
32973
32973
|
body: `Advanced defaults, mappings, and automatic sync are saved for ${currentCompanyName}.`,
|