frizz 0.6.0 → 0.7.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.
Files changed (98) hide show
  1. package/README.md +9 -6
  2. package/dist/codex-app-server-daemon.js +12 -3
  3. package/dist/dev-child.js +196 -66
  4. package/dist/frizz.js +50 -18
  5. package/package.json +2 -2
  6. package/runtime/cc-worker/bin/frizz-mcp.mjs +2 -2
  7. package/runtime/cc-worker/hooks/session-seed.mjs +2 -2
  8. package/runtime/cc-worker/skills/gh/SKILL.md +8 -7
  9. package/runtime/cc-worker/skills/waits/SKILL.md +4 -3
  10. package/web-dist/assets/{TerminalPane-GfnCbZQ8.js → TerminalPane-DBmtdVkV.js} +1 -1
  11. package/web-dist/assets/{abnfDiagram-VRR7QNED-By12QfQW.js → abnfDiagram-VRR7QNED-s9x3PTMx.js} +1 -1
  12. package/web-dist/assets/architecture-TIHT7OUA-Eb73yePg.js +1 -0
  13. package/web-dist/assets/{architectureDiagram-ZJ3FMSHR-CcXU45QO.js → architectureDiagram-ZJ3FMSHR-CIFfgliT.js} +1 -1
  14. package/web-dist/assets/{blockDiagram-677ZJIJ3-CmzyO2OF.js → blockDiagram-677ZJIJ3-BC-TeFao.js} +1 -1
  15. package/web-dist/assets/{c4Diagram-LMCZKHZV-DFGSW_ZS.js → c4Diagram-LMCZKHZV-DoJ_Bulk.js} +1 -1
  16. package/web-dist/assets/channel-CgSC9ikg.js +1 -0
  17. package/web-dist/assets/{chunk-32BRIVSS-whgaFxPY.js → chunk-32BRIVSS-BgchlScG.js} +1 -1
  18. package/web-dist/assets/{chunk-52WLFC77-DCT0MLgl.js → chunk-52WLFC77-D94nMfY5.js} +1 -1
  19. package/web-dist/assets/{chunk-C7G6YPKG-Br0OaxIX.js → chunk-C7G6YPKG-BNU4g2Rm.js} +1 -1
  20. package/web-dist/assets/{chunk-EX3LRPZG-CUnQkdEF.js → chunk-EX3LRPZG-DooNeZ0v.js} +1 -1
  21. package/web-dist/assets/{chunk-FWX5IMBZ-D1NqKRFr.js → chunk-FWX5IMBZ-DuXYfpte.js} +2 -2
  22. package/web-dist/assets/{chunk-HOUHSVGY-7ZL78OrO.js → chunk-HOUHSVGY-DDtc0Lod.js} +1 -1
  23. package/web-dist/assets/{chunk-ICXQ74PX-QSgBAuYw.js → chunk-ICXQ74PX-D1soMHlW.js} +1 -1
  24. package/web-dist/assets/{chunk-MOJQB5TN-DOI-0kaG.js → chunk-MOJQB5TN-BYZZoPrO.js} +1 -1
  25. package/web-dist/assets/{chunk-OGEWGWER-CZ3ED-QB.js → chunk-OGEWGWER-CSI1op21.js} +1 -1
  26. package/web-dist/assets/{chunk-PUDLZKDR-BQJElUFX.js → chunk-PUDLZKDR-B2_qeHID.js} +1 -1
  27. package/web-dist/assets/{chunk-Q4XR5HBZ-5B6Qs7rQ.js → chunk-Q4XR5HBZ-BNiafbsU.js} +1 -1
  28. package/web-dist/assets/{chunk-V7JOEXUC-DkMaAMFK.js → chunk-V7JOEXUC-D9aOhGjB.js} +1 -1
  29. package/web-dist/assets/{chunk-VAUOI2AC-Bvq-8GYO.js → chunk-VAUOI2AC-mt04_MVl.js} +1 -1
  30. package/web-dist/assets/{chunk-VR4S4FIN-DRVTU-HZ.js → chunk-VR4S4FIN-CTbhzN9l.js} +1 -1
  31. package/web-dist/assets/{chunk-WYO6CB5R-CRxI5d1E.js → chunk-WYO6CB5R-t-QJiLir.js} +1 -1
  32. package/web-dist/assets/{chunk-ZGVPDNZ5-D_3ow6xU.js → chunk-ZGVPDNZ5-BNBiwqoz.js} +1 -1
  33. package/web-dist/assets/classDiagram-OUVF2IWQ-DrMJp1ua.js +1 -0
  34. package/web-dist/assets/classDiagram-v2-EOCWNBFH-DrMJp1ua.js +1 -0
  35. package/web-dist/assets/{cynefin-VYW2F7L2-Bexf41pD.js → cynefin-VYW2F7L2-CJzDWQw9.js} +1 -1
  36. package/web-dist/assets/{cynefinDiagram-TSTJHNR4-9gbbl1EH.js → cynefinDiagram-TSTJHNR4-C_wWdWpO.js} +1 -1
  37. package/web-dist/assets/{dagre-VKFMJZFB-B04shbL0.js → dagre-VKFMJZFB-JcoSMott.js} +1 -1
  38. package/web-dist/assets/{diagram-FQU43EPY-CGXlhEsB.js → diagram-FQU43EPY-DwPIrxvI.js} +1 -1
  39. package/web-dist/assets/{diagram-G47NLZAW-DmPCeTOa.js → diagram-G47NLZAW-Bs1Iyjn4.js} +1 -1
  40. package/web-dist/assets/{diagram-NH7WQ7WH-D8Hthvi7.js → diagram-NH7WQ7WH-DFXMkDQZ.js} +1 -1
  41. package/web-dist/assets/{diagram-OA4YK3LP-DbLR6tfL.js → diagram-OA4YK3LP-BdeEougN.js} +1 -1
  42. package/web-dist/assets/{diagram-WEI45ONY-B6YWev_0.js → diagram-WEI45ONY-DOeCVBYO.js} +1 -1
  43. package/web-dist/assets/{ebnfDiagram-CCIWWBDH-8G1uf683.js → ebnfDiagram-CCIWWBDH-Dm5CrqN3.js} +1 -1
  44. package/web-dist/assets/{erDiagram-Q63AITRT-U_VRdQHz.js → erDiagram-Q63AITRT-B0ud7ncc.js} +1 -1
  45. package/web-dist/assets/eventmodeling-45OFAUF4-B52bjxMe.js +1 -0
  46. package/web-dist/assets/flowDiagram-23GEKE2U-DbFccp_w.js +1 -0
  47. package/web-dist/assets/{ganttDiagram-NO4QXBWP-Cnsi9uVf.js → ganttDiagram-NO4QXBWP-BdowNjAm.js} +1 -1
  48. package/web-dist/assets/{gitGraph-TEB2WS4Q-DYf7ka-G.js → gitGraph-TEB2WS4Q-BSDXrBNB.js} +1 -1
  49. package/web-dist/assets/{gitGraphDiagram-IHSO6WYX-Bvmr7dEH.js → gitGraphDiagram-IHSO6WYX-B3i3egZt.js} +1 -1
  50. package/web-dist/assets/{index-Czv3R-v0.js → index-BUX0IseR.js} +118 -118
  51. package/web-dist/assets/index-CjEngYN7.css +1 -0
  52. package/web-dist/assets/{info-DKCQHKI2-CdP9Q9r0.js → info-DKCQHKI2-B7CT3rc8.js} +1 -1
  53. package/web-dist/assets/{infoDiagram-FWYZ7A6U-RBcOH3Pi.js → infoDiagram-FWYZ7A6U-Bqmpgcu2.js} +1 -1
  54. package/web-dist/assets/{ishikawaDiagram-FXEZZL3T-zS0gy3fS.js → ishikawaDiagram-FXEZZL3T-Bd5LBQOn.js} +1 -1
  55. package/web-dist/assets/{journeyDiagram-5HDEW3XC-cOciJlFY.js → journeyDiagram-5HDEW3XC-lJOF3I7X.js} +1 -1
  56. package/web-dist/assets/{kanban-definition-HUTT4EX6-B-v0XClo.js → kanban-definition-HUTT4EX6-D4E5PRAv.js} +1 -1
  57. package/web-dist/assets/{line-z44YXdci.js → line-C9ZcrRyz.js} +1 -1
  58. package/web-dist/assets/{mermaid-parser.core-0Bg1x4p0.js → mermaid-parser.core-DkaL73Gv.js} +3 -3
  59. package/web-dist/assets/{mermaid.core-ByFqgcIE.js → mermaid.core-BQ89ySVU.js} +3 -3
  60. package/web-dist/assets/{mindmap-definition-LN4V7U3C-DiGaAQFh.js → mindmap-definition-LN4V7U3C-CB7JnCHh.js} +1 -1
  61. package/web-dist/assets/{packet-7NZHBO7P-Bv8ILo_S.js → packet-7NZHBO7P-BvyvpOhm.js} +1 -1
  62. package/web-dist/assets/{pegDiagram-2B236MQR-CtOUW7n0.js → pegDiagram-2B236MQR-BoygVhix.js} +1 -1
  63. package/web-dist/assets/{pie-RZYD4A2V-Dz4Bm-Vx.js → pie-RZYD4A2V-ChTjZLeC.js} +1 -1
  64. package/web-dist/assets/{pieDiagram-ENE6RG2P-VMY_CK3i.js → pieDiagram-ENE6RG2P-B3UNPTpF.js} +1 -1
  65. package/web-dist/assets/{quadrantDiagram-ABIIQ3AL-V7HZxM7j.js → quadrantDiagram-ABIIQ3AL-DJdWJ4GS.js} +1 -1
  66. package/web-dist/assets/{radar-I7S5WNFK-CWk6RruH.js → radar-I7S5WNFK-DHi5ReAY.js} +1 -1
  67. package/web-dist/assets/{railroad-3IZDKUUU-m_8st_Ez.js → railroad-3IZDKUUU-DcLJuGRW.js} +1 -1
  68. package/web-dist/assets/railroad-abnf-AHOZXSZD-BJcLzkwL.js +1 -0
  69. package/web-dist/assets/railroad-ebnf-EBAXGLYW-B4jrlWYB.js +1 -0
  70. package/web-dist/assets/railroad-peg-LSFZ7HO6-BpIzbo9k.js +1 -0
  71. package/web-dist/assets/{railroadDiagram-RFXS5EU6-Dz80V-7-.js → railroadDiagram-RFXS5EU6-W4vnMFZ2.js} +1 -1
  72. package/web-dist/assets/{requirementDiagram-TGXJPOKE-DrDDgTwm.js → requirementDiagram-TGXJPOKE-CV_V-9DW.js} +1 -1
  73. package/web-dist/assets/{sankeyDiagram-HTMAVEWB-D4SeC-Bi.js → sankeyDiagram-HTMAVEWB-DuIIsNBv.js} +1 -1
  74. package/web-dist/assets/{sequenceDiagram-DBY2YBRQ-CA-ZO_qp.js → sequenceDiagram-DBY2YBRQ-DTT8ETnv.js} +1 -1
  75. package/web-dist/assets/{stateDiagram-2N3HPSRC-C_ZYvV2s.js → stateDiagram-2N3HPSRC-HVZaDROf.js} +1 -1
  76. package/web-dist/assets/stateDiagram-v2-6OUMAXLB-DF9q3s7U.js +1 -0
  77. package/web-dist/assets/{swimlanes-5IMT3BWC-DGMDseYx.js → swimlanes-5IMT3BWC-DpGdPqRB.js} +1 -1
  78. package/web-dist/assets/swimlanesDiagram-G3AALYLV-BNeW4PCd.js +8 -0
  79. package/web-dist/assets/{timeline-definition-FHXFAJF6-CEiMp3_j.js → timeline-definition-FHXFAJF6-D9u3mgpd.js} +1 -1
  80. package/web-dist/assets/{treeView-QDETBFTQ-BSspY0US.js → treeView-QDETBFTQ-Dga6MhEJ.js} +1 -1
  81. package/web-dist/assets/{treemap-6X3UGDF4-DXNQxmQ7.js → treemap-6X3UGDF4-BwEXmcD6.js} +1 -1
  82. package/web-dist/assets/{vennDiagram-L72KCM5P-C-khqkdm.js → vennDiagram-L72KCM5P-BMvodYUW.js} +1 -1
  83. package/web-dist/assets/{wardley-OPB4EBWU-B9QCQ_Tm.js → wardley-OPB4EBWU-BzB6QK8X.js} +1 -1
  84. package/web-dist/assets/{wardleyDiagram-EHGQE667-vhVpAUzh.js → wardleyDiagram-EHGQE667-4ID7QRJi.js} +1 -1
  85. package/web-dist/assets/{xychartDiagram-FW5EYKEG-B8ev9zqs.js → xychartDiagram-FW5EYKEG-Ckob9hhW.js} +1 -1
  86. package/web-dist/index.html +2 -2
  87. package/web-dist/assets/architecture-TIHT7OUA-XOYod28l.js +0 -1
  88. package/web-dist/assets/channel-Bqn3pFKp.js +0 -1
  89. package/web-dist/assets/classDiagram-OUVF2IWQ-DEMCehy_.js +0 -1
  90. package/web-dist/assets/classDiagram-v2-EOCWNBFH-DEMCehy_.js +0 -1
  91. package/web-dist/assets/eventmodeling-45OFAUF4-DIpO2jQx.js +0 -1
  92. package/web-dist/assets/flowDiagram-23GEKE2U-aERDdceE.js +0 -1
  93. package/web-dist/assets/index-D8iyWUZ0.css +0 -1
  94. package/web-dist/assets/railroad-abnf-AHOZXSZD-DIaRscxr.js +0 -1
  95. package/web-dist/assets/railroad-ebnf-EBAXGLYW-CeHpbK-W.js +0 -1
  96. package/web-dist/assets/railroad-peg-LSFZ7HO6-CbhVIbOj.js +0 -1
  97. package/web-dist/assets/stateDiagram-v2-6OUMAXLB-BLevFa3H.js +0 -1
  98. package/web-dist/assets/swimlanesDiagram-G3AALYLV-00mQRq57.js +0 -8
package/README.md CHANGED
@@ -62,7 +62,7 @@ Frizz is a browser tab, a queue, and the agent CLIs you already pay for. It brin
62
62
  - 🐙 **GitHub integration.** Browse your repo's issues and pull requests without leaving the composer, and turn a selection of them into threads. Workers can read issues, diffs, and CI on their own.
63
63
  - 👀 **Built-in CI and PR watchers.** A worker waiting on a build or a review doesn't hand the thread back to you to be told "keep going." It watches, and picks the work back up when the run goes green or a review lands.
64
64
  - 📝 **No magic.** A thread behaves like a Claude Code session you started yourself. Frizz adds no worktrees, no branches, no dev server, no build integration, no workflow engine to fight with.
65
- - 🔒 **Local only.** No cloud, no account, no telemetry. The server binds `127.0.0.1` by default and its state lives in your user directory, never in your checkout.
65
+ - 🔒 **Local only.** No cloud, no account, no telemetry. The server binds `127.0.0.1` by default and its state lives in your user directory, never in your checkout. To reach a board from a phone, put your own tunnel or proxy in front of it — see [Remote access](docs/remote-access.md).
66
66
 
67
67
  ### The queue
68
68
 
@@ -121,11 +121,12 @@ $ npx frizz --help
121
121
 
122
122
  Frizz production launcher
123
123
 
124
- Usage: npx frizz [options] [repository]
125
- npx frizz up start the server plus its public tunnel
124
+ Usage: npx frizz [options]
126
125
 
127
- Runs the npm-resolved immutable Frizz package, then opens it in your default browser. Use frizz-dev
128
- only for a source checkout.
126
+ Run it in the directory you want to work in. One server serves EVERY project on this machine,
127
+ each at its own /project/<name> URL, so a second run joins the one already going. Runs the
128
+ npm-resolved immutable Frizz package, then opens it in your default browser. Use frizz-dev only
129
+ for a source checkout.
129
130
 
130
131
  Options:
131
132
  --app use the legacy dedicated app window instead of a browser tab
@@ -134,6 +135,8 @@ Options:
134
135
  --host [address] serve on a network address instead of loopback (bare --host means 0.0.0.0)
135
136
  --allowed-host <name> with --host, also accept this DNS name as the board's address (repeatable)
136
137
  --public-origin <url> serve behind a proxy/tunnel reachable at this exact origin
138
+ --cloud serve at the saved hostname and run its Cloudflare tunnel as a child
139
+ process; asked once, then remembered
137
140
  --link print a fresh single-use access link for the running board
138
141
  --debug stream the full event feed to the terminal instead of the compact readout
139
142
  -h, --help show this help
@@ -289,7 +292,7 @@ $ node scripts/sync-portable-monitors.mjs --check
289
292
  $ node --test monitors/*.test.mjs
290
293
  ```
291
294
 
292
- Everything else runs locally. Install with `pnpm install`, typecheck with `pnpm typecheck`, and run the full suite with `pnpm test` — that suite drives real agent CLIs and a real browser, which is why CI does not gate on it. Say in the PR what you ran.
295
+ Everything else runs locally. Install with `pnpm install`, typecheck with `pnpm typecheck`, and run the full suite with `pnpm test` — that suite drives real agent CLIs and a real browser, which is why CI does not gate on it. Say in the PR what you ran. The suite needs a newer Node than the runtime does: early 22.x point releases (22.15 measured) fail `receipt-bus.test.ts` on a since-fixed test-runner defect, so run it on current 22.x or ≥ 23.4.
293
296
 
294
297
  <br/>
295
298
 
@@ -12,13 +12,22 @@ import { execFile } from "node:child_process";
12
12
  import { readdirSync, unlinkSync } from "node:fs";
13
13
  import { connect as connectSocket } from "node:net";
14
14
  import { join } from "node:path";
15
+ function parseLsofSocketNames(stdout) {
16
+ const referenced = /* @__PURE__ */ new Set();
17
+ for (const line of stdout.split("\n")) {
18
+ if (!line.startsWith("n/")) continue;
19
+ const raw = line.slice(1);
20
+ referenced.add(raw);
21
+ const meta = raw.indexOf(" type=");
22
+ if (meta > 0) referenced.add(raw.slice(0, meta));
23
+ }
24
+ return referenced;
25
+ }
15
26
  var defaultListReferenced = (prefix, done) => {
16
27
  execFile("lsof", ["-U", "-F", "n"], { timeout: 3e4, maxBuffer: 16 * 1024 * 1024 }, (error, stdout) => {
17
28
  if (!stdout) return done(null);
18
29
  if (error && !stdout.includes(prefix)) return done(null);
19
- const referenced = /* @__PURE__ */ new Set();
20
- for (const line of stdout.split("\n")) if (line.startsWith("n/")) referenced.add(line.slice(1));
21
- done(referenced);
30
+ done(parseLsofSocketNames(stdout));
22
31
  }).unref?.();
23
32
  };
24
33
  var defaultProbe = (path, verdict) => {