conductor-remote 1.72.0 → 1.73.1
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/dist/assets/{index-BiP5UAB3.js → index-DPr3MT68.js} +28 -28
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/dist-node/src/pr.js +23 -2
- package/package.json +1 -1
package/dist/index.html
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<title>Conductor Remote</title>
|
|
14
14
|
<!-- Runs before the module bundle so it can catch a stale shell that fails to boot. -->
|
|
15
15
|
<script src="/self-heal.js"></script>
|
|
16
|
-
<script type="module" crossorigin src="/assets/index-
|
|
16
|
+
<script type="module" crossorigin src="/assets/index-DPr3MT68.js"></script>
|
|
17
17
|
<link rel="stylesheet" crossorigin href="/assets/index-CXd-zI4t.css">
|
|
18
18
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
|
19
19
|
<body>
|
package/dist/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let l={};const t=e=>i(e,o),c={module:{uri:o},exports:l,require:t};s[o]=Promise.all(n.map(e=>c[e]||t(e))).then(e=>(r(...e),l))}}define(["./workbox-9c191d2f"],function(e){"use strict";importScripts("/push-sw.js"),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"self-heal.js",revision:"49bd63adb25a09341f8d2610e8bd3c76"},{url:"push-sw.js",revision:"e1e682e2e5e88fa03b7808ae9db8e098"},{url:"index.html",revision:"
|
|
1
|
+
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const o=e||("document"in self?document.currentScript.src:"")||location.href;if(s[o])return;let l={};const t=e=>i(e,o),c={module:{uri:o},exports:l,require:t};s[o]=Promise.all(n.map(e=>c[e]||t(e))).then(e=>(r(...e),l))}}define(["./workbox-9c191d2f"],function(e){"use strict";importScripts("/push-sw.js"),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),e.clientsClaim(),e.precacheAndRoute([{url:"self-heal.js",revision:"49bd63adb25a09341f8d2610e8bd3c76"},{url:"push-sw.js",revision:"e1e682e2e5e88fa03b7808ae9db8e098"},{url:"index.html",revision:"aa32d6e097f4962393071bf82c472948"},{url:"assets/workbox-window.prod.es5-BBnX5xw4.js",revision:null},{url:"assets/index-DPr3MT68.js",revision:null},{url:"assets/index-CXd-zI4t.css",revision:null},{url:"apple-touch-icon.png",revision:"1127bb396b4648add53dce3f22c92aee"},{url:"icon-192.png",revision:"c5e01ac58768627e18ee7b8b6a9239ef"},{url:"icon-512.png",revision:"a40638c55e310312457a621c9a0002c8"},{url:"icon-maskable-512.png",revision:"a9b0d962686287452216492cd2247499"},{url:"icon.svg",revision:"c1aee186821798733dd477e69a0ef243"},{url:"manifest.webmanifest",revision:"cf88fbc5755108a7fe0616fa160a8a15"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"),{denylist:[/^\/api\//]}))});
|
package/dist-node/src/pr.js
CHANGED
|
@@ -37,7 +37,13 @@ export function attachPrStatus(workspaces) {
|
|
|
37
37
|
else {
|
|
38
38
|
const c = w.worktree ? conflictCache.get(w.worktree) : undefined;
|
|
39
39
|
// Optimistically green until the local merge check says otherwise (self-corrects within CONFLICT_TTL).
|
|
40
|
-
w.pr_status = c?.conflicts
|
|
40
|
+
w.pr_status = c?.conflicts
|
|
41
|
+
? 'conflicts'
|
|
42
|
+
: hasFailedChecks(pr.statusCheckRollup)
|
|
43
|
+
? 'checks_failed'
|
|
44
|
+
: hasPendingChecks(pr.statusCheckRollup)
|
|
45
|
+
? 'checks_pending'
|
|
46
|
+
: 'mergeable';
|
|
41
47
|
if (w.worktree && (!c || now - c.at > CONFLICT_TTL))
|
|
42
48
|
refreshConflict(w.worktree, w.baseBranch);
|
|
43
49
|
}
|
|
@@ -94,12 +100,27 @@ const FAILED_CHECK_CONCLUSIONS = new Set([
|
|
|
94
100
|
const FAILED_CHECK_STATES = new Set(['ERROR', 'FAILURE']);
|
|
95
101
|
/**
|
|
96
102
|
* Check runs carry their terminal result in `conclusion`; legacy status contexts
|
|
97
|
-
* use `state`.
|
|
103
|
+
* use `state`. A check still running is not a failure — `hasPendingChecks` reports
|
|
104
|
+
* that separately, and is only asked once this one has said no.
|
|
98
105
|
*/
|
|
99
106
|
export function hasFailedChecks(checks) {
|
|
100
107
|
return !!checks?.some(check => (check.conclusion && FAILED_CHECK_CONCLUSIONS.has(check.conclusion)) ||
|
|
101
108
|
(check.state && FAILED_CHECK_STATES.has(check.state)));
|
|
102
109
|
}
|
|
110
|
+
const PENDING_CHECK_STATES = new Set(['EXPECTED', 'PENDING']);
|
|
111
|
+
/**
|
|
112
|
+
* Is any check still running? A check run says so in `status` — anything short of
|
|
113
|
+
* `COMPLETED`, which covers `QUEUED`, `IN_PROGRESS`, `WAITING`, `REQUESTED` and
|
|
114
|
+
* whatever GitHub adds next — and a legacy status context says it in `state`.
|
|
115
|
+
*
|
|
116
|
+
* Worth its own status rather than folding into green: this repo's `main` carries
|
|
117
|
+
* no branch protection, so `gh pr merge` will not refuse a PR whose CI is still in
|
|
118
|
+
* flight (measured: the run takes ~50s). A phone showing "Ready to merge" for that
|
|
119
|
+
* minute is the one claim the relay makes that GitHub will not check for it.
|
|
120
|
+
*/
|
|
121
|
+
export function hasPendingChecks(checks) {
|
|
122
|
+
return !!checks?.some(check => (check.status && check.status !== 'COMPLETED') || (check.state && PENDING_CHECK_STATES.has(check.state)));
|
|
123
|
+
}
|
|
103
124
|
function refreshConflict(worktree, base) {
|
|
104
125
|
if (conflictInflight.has(worktree))
|
|
105
126
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "conductor-remote",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.73.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"packageManager": "yarn@4.15.0",
|
|
6
6
|
"description": "Phone control panel for local Conductor agents. Reads ride SQLite + git; prompts ride Conductor's own dispatch path.",
|