conductor-remote 1.103.0 → 1.104.0

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/index.html CHANGED
@@ -25,7 +25,7 @@
25
25
  <title>Conductor Remote</title>
26
26
  <!-- Runs before the module bundle so it can catch a stale shell that fails to boot. -->
27
27
  <script src="/self-heal.js"></script>
28
- <script type="module" crossorigin src="/assets/index-CuzsYRNt.js"></script>
28
+ <script type="module" crossorigin src="/assets/index-DKKawj8R.js"></script>
29
29
  <link rel="stylesheet" crossorigin href="/assets/index-CU8INVlI.css">
30
30
  <link rel="manifest" href="/manifest.webmanifest"></head>
31
31
  <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 c={};const l=e=>i(e,o),t={module:{uri:o},exports:c,require:l};s[o]=Promise.all(n.map(e=>t[e]||l(e))).then(e=>(r(...e),c))}}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:"e7ef44deca46c0539e6ff7bba5eb815e"},{url:"index.html",revision:"c80011c79959825f97a4714f33a8cbc3"},{url:"assets/workbox-window.prod.es5-BBnX5xw4.js",revision:null},{url:"assets/index-CuzsYRNt.js",revision:null},{url:"assets/index-CU8INVlI.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\//]}))});
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 c=e=>i(e,o),t={module:{uri:o},exports:l,require:c};s[o]=Promise.all(n.map(e=>t[e]||c(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:"e7ef44deca46c0539e6ff7bba5eb815e"},{url:"index.html",revision:"930e9baf24c2f4c12a5aadb98f982013"},{url:"assets/workbox-window.prod.es5-BBnX5xw4.js",revision:null},{url:"assets/index-DKKawj8R.js",revision:null},{url:"assets/index-CU8INVlI.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\//]}))});
@@ -179,12 +179,13 @@ async function localState(worktree) {
179
179
  return { dirty, unpushed };
180
180
  }
181
181
  /**
182
- * Every file in the worktree the phone may turn a chat mention into a link for.
182
+ * Every previewable source file in the worktree, shared by chat mention links and the
183
+ * diff window's All-files rail.
183
184
  *
184
- * Agents name files in prose all day — "updated `tests/foo.ts`" — and the phone
185
- * links a mention only when it matches a real file, so this is the list it matches
186
- * against. Tracked plus untracked-not-ignored: an agent that just wrote a file
187
- * names it in the same message, long before anything commits it.
185
+ * Agents name files in prose all day — "updated `tests/foo.ts`" — and the phone links
186
+ * a mention only when it matches a real file. The same list lets a reviewer browse
187
+ * source beyond the changed set. Tracked plus untracked-not-ignored: an agent that just
188
+ * wrote a file should appear in both places long before anything commits it.
188
189
  *
189
190
  * Two things keep the payload small. Only previewable extensions ship, because
190
191
  * `/api/files` refuses everything else anyway, and 20,000 paths is the ceiling — a
@@ -108,7 +108,7 @@ export const routes = {
108
108
  sessions: param('GET', '/api/workspaces/:workspaceId/sessions'),
109
109
  newChat: param('POST', '/api/workspaces/:workspaceId/sessions'),
110
110
  diff: param('GET', '/api/workspaces/:workspaceId/diff'),
111
- /** The worktree's own file list, which is what makes a chat's `src/foo.ts` a link. */
111
+ /** Previewable worktree files for chat links and the diff window's All-files rail. */
112
112
  workspaceFiles: param('GET', '/api/workspaces/:workspaceId/files'),
113
113
  merge: param('POST', '/api/workspaces/:workspaceId/merge'),
114
114
  /** Keep this live workspace and its chats, but move its merged worktree onto a fresh branch. */
@@ -2103,9 +2103,9 @@ const server = http.createServer(async (req, res) => {
2103
2103
  const diff = await workspaceDiff(ws.worktree, ws.baseBranch);
2104
2104
  return json(req, res, 200, diff);
2105
2105
  }
2106
- // GET /api/workspaces/:id/files — the worktree's own file list, which is what lets the
2107
- // phone link `tests/foo.ts` in a message: a mention becomes a link only when it names
2108
- // a file that is really there. A workspace with no worktree simply links nothing.
2106
+ // GET /api/workspaces/:id/files — previewable worktree files for the diff window's
2107
+ // All-files rail and for linking `tests/foo.ts` in a message only when it really exists.
2108
+ // A workspace with no worktree has no list for either caller.
2109
2109
  const filesOf = routeParam(routes.workspaceFiles, req.method, pathname);
2110
2110
  if (filesOf) {
2111
2111
  const ws = reads.getWorkspace(filesOf);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "conductor-remote",
3
- "version": "1.103.0",
3
+ "version": "1.104.0",
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.",