@dylanpiercey/work 0.0.120 → 0.0.121

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 (262) hide show
  1. package/README.md +35 -8
  2. package/bin/work.mjs +380 -41
  3. package/dist/_B1lVb01g.js +2 -0
  4. package/dist/_Bjh5JEm7.js +2 -0
  5. package/dist/_CfwTkTbL.js +352 -0
  6. package/dist/{_DEBFGwto.js → _CivNK9fo.js} +22 -20
  7. package/dist/{_DE2RUdbF.js → _Cr71Xd0d.js} +8 -3
  8. package/dist/_DJyHc1w-.js +1739 -0
  9. package/dist/{_BZhGz-eY.js → _DnaZVHJ7.js} +97 -96
  10. package/dist/_Dpa8WFuv.js +2 -0
  11. package/dist/index.mjs +4183 -4191
  12. package/dist/public/assets/{_BrTLGsp82.js → _-zdUyUYM2.js} +1 -1
  13. package/dist/public/assets/_-zdUyUYM2.js.br +0 -0
  14. package/dist/public/assets/{_Cvly93xo2.js → _0L2K8sFq2.js} +1 -1
  15. package/dist/public/assets/_0L2K8sFq2.js.br +0 -0
  16. package/dist/public/assets/{_CQ-tqbUq.js → _42jdam49.js} +1 -1
  17. package/dist/public/assets/_42jdam49.js.br +0 -0
  18. package/dist/public/assets/{_BEOZghNJ2.js → _9dJ8BnyZ2.js} +1 -1
  19. package/dist/public/assets/_9dJ8BnyZ2.js.br +0 -0
  20. package/dist/public/assets/{_zJkCtRhb.js → _B03G1Nvs.js} +1 -1
  21. package/dist/public/assets/_B03G1Nvs.js.br +0 -0
  22. package/dist/public/assets/{_BLgtdDQm.js → _B0dZ7_qK.js} +1 -1
  23. package/dist/public/assets/_B0dZ7_qK.js.br +0 -0
  24. package/dist/public/assets/{_DdnCyOPs.js → _B1VuWiKK.js} +1 -1
  25. package/dist/public/assets/_B1VuWiKK.js.br +0 -0
  26. package/dist/public/assets/{_CwtAB8Ju2.js → _B5nrQZIq2.js} +1 -1
  27. package/dist/public/assets/_B5nrQZIq2.js.br +0 -0
  28. package/dist/public/assets/{_B_MP9UES.js → _B8ZQ8inF.js} +1 -1
  29. package/dist/public/assets/_B8ZQ8inF.js.br +0 -0
  30. package/dist/public/assets/{_DhLWIgCs.js → _B9e51G1K.js} +1 -1
  31. package/dist/public/assets/_B9e51G1K.js.br +0 -0
  32. package/dist/public/assets/{_h6HS-Zb_2.js → _BH015W2i2.js} +1 -1
  33. package/dist/public/assets/_BH015W2i2.js.br +0 -0
  34. package/dist/public/assets/{_Brws7C1N.js → _BHjcfVXB.js} +6 -6
  35. package/dist/public/assets/_BHjcfVXB.js.br +0 -0
  36. package/dist/public/assets/{_BfZMmKaW.js → _BNIilCsC.js} +1 -1
  37. package/dist/public/assets/_BNIilCsC.js.br +0 -0
  38. package/dist/public/assets/{_CihMY3_B2.js → _BPgL37mi2.js} +1 -1
  39. package/dist/public/assets/_BPgL37mi2.js.br +0 -0
  40. package/dist/public/assets/{_BDRc66NB2.js → _BR3D4nzj2.js} +1 -1
  41. package/dist/public/assets/_BR3D4nzj2.js.br +0 -0
  42. package/dist/public/assets/{_BoXfCUcF.js → _BRSJwfZ3.js} +1 -1
  43. package/dist/public/assets/{_BbE6iGBd.js → _BSFENb4l.js} +1 -1
  44. package/dist/public/assets/_BSFENb4l.js.br +0 -0
  45. package/dist/public/assets/{_DBXfsrRd.js → _BSWpz0dK.js} +1 -1
  46. package/dist/public/assets/_BSWpz0dK.js.br +0 -0
  47. package/dist/public/assets/{_DZgx_rAt.js → _BUOWar32.js} +1 -1
  48. package/dist/public/assets/_BUOWar32.js.br +0 -0
  49. package/dist/public/assets/{_Ces5jihM.js → _BZWlvMSJ.js} +1 -1
  50. package/dist/public/assets/_BZWlvMSJ.js.br +0 -0
  51. package/dist/public/assets/{_F8phZWNM2.js → _B_dMglA92.js} +1 -1
  52. package/dist/public/assets/_B_dMglA92.js.br +0 -0
  53. package/dist/public/assets/{_N0Ea8Q_R.js → _Beb6Lb1w.js} +1 -1
  54. package/dist/public/assets/_Beb6Lb1w.js.br +0 -0
  55. package/dist/public/assets/{_BUmLRB7c2.js → _BjIMoOV-2.js} +1 -1
  56. package/dist/public/assets/_BjIMoOV-2.js.br +0 -0
  57. package/dist/public/assets/{_Cv-4N4xQ.js → _BlLuOKRT.js} +1 -1
  58. package/dist/public/assets/_BlLuOKRT.js.br +0 -0
  59. package/dist/public/assets/{_BilqQTfw.js → _BlXwius8.js} +1 -1
  60. package/dist/public/assets/_BlXwius8.js.br +0 -0
  61. package/dist/public/assets/{_DdYfAoJz.js → _Bmt76eWT.js} +1 -1
  62. package/dist/public/assets/_Bmt76eWT.js.br +0 -0
  63. package/dist/public/assets/{_BaiP7ogH.js → _BoS5LU5l.js} +1 -1
  64. package/dist/public/assets/_BoS5LU5l.js.br +0 -0
  65. package/dist/public/assets/{_uJTU0UZd2.js → _BsNKabYu2.js} +1 -1
  66. package/dist/public/assets/_BsNKabYu2.js.br +0 -0
  67. package/dist/public/assets/{_D2be5yUI.js → _C0OXw3Vy.js} +1 -1
  68. package/dist/public/assets/_C0OXw3Vy.js.br +0 -0
  69. package/dist/public/assets/{_CrPK-ZOH2.js → _CBUJNdeq2.js} +1 -1
  70. package/dist/public/assets/_CBUJNdeq2.js.br +0 -0
  71. package/dist/public/assets/{_DfpMH3So2.js → _CCNhM32c2.js} +1 -1
  72. package/dist/public/assets/_CCNhM32c2.js.br +0 -0
  73. package/dist/public/assets/{_D11ZFURg.js → _CFBaZNUT.js} +1 -1
  74. package/dist/public/assets/_CFBaZNUT.js.br +0 -0
  75. package/dist/public/assets/{_BGHYY00K2.js → _CJHqzl--2.js} +1 -1
  76. package/dist/public/assets/_CJHqzl--2.js.br +0 -0
  77. package/dist/public/assets/{_BHgE7f-_2.js → _CMGgQ-4H2.js} +1 -1
  78. package/dist/public/assets/_CMGgQ-4H2.js.br +0 -0
  79. package/dist/public/assets/{_BzULaZGs.js → _CPX0D-my.js} +1 -1
  80. package/dist/public/assets/_CPX0D-my.js.br +0 -0
  81. package/dist/public/assets/{_CeECfdVo2.js → _CRuHDn_O2.js} +1 -1
  82. package/dist/public/assets/_CRuHDn_O2.js.br +0 -0
  83. package/dist/public/assets/{_p1VLQxPw.js → _CUOao_Hj.js} +1 -1
  84. package/dist/public/assets/_CUOao_Hj.js.br +0 -0
  85. package/dist/public/assets/{_CIio55Q2.js → _CUVw5V4z.js} +1 -1
  86. package/dist/public/assets/_CUVw5V4z.js.br +0 -0
  87. package/dist/public/assets/{_CYLlpjQc.js → _CYMGOhCb.js} +1 -1
  88. package/dist/public/assets/_CYMGOhCb.js.br +0 -0
  89. package/dist/public/assets/{_BtmFYBHk.js → _CZfap_Dj.js} +1 -1
  90. package/dist/public/assets/_CZfap_Dj.js.br +0 -0
  91. package/dist/public/assets/{_DRKLaQtq.js → _CbNmSe5k.js} +1 -1
  92. package/dist/public/assets/_CbNmSe5k.js.br +0 -0
  93. package/dist/public/assets/{_8hF31A2G.js → _CdtuhZSc.js} +1 -1
  94. package/dist/public/assets/_CdtuhZSc.js.br +0 -0
  95. package/dist/public/assets/{_BPcKgx9L.js → _ClhApln3.js} +1 -1
  96. package/dist/public/assets/_ClhApln3.js.br +0 -0
  97. package/dist/public/assets/{_QuFTKxMO2.js → _CvA5IOAW2.js} +1 -1
  98. package/dist/public/assets/_CvA5IOAW2.js.br +0 -0
  99. package/dist/public/assets/{_z3QzE4ht2.js → _CwZYmUdt2.js} +1 -1
  100. package/dist/public/assets/{_CG2uZvAG.js → _CxrcWZPE.js} +1 -1
  101. package/dist/public/assets/_CxrcWZPE.js.br +0 -0
  102. package/dist/public/assets/{_Du-i6H8r.js → _D-KjGTSW.js} +24 -21
  103. package/dist/public/assets/_D-KjGTSW.js.br +0 -0
  104. package/dist/public/assets/{_Ca811EeR.js → _D4u4SpiK.js} +1 -1
  105. package/dist/public/assets/_D4u4SpiK.js.br +0 -0
  106. package/dist/public/assets/{_DiaYv9e1.js → _D6CjH3JN.js} +1 -1
  107. package/dist/public/assets/_D6CjH3JN.js.br +0 -0
  108. package/dist/public/assets/{_BCKhXQct2.js → _D7cQLLGK2.js} +1 -1
  109. package/dist/public/assets/_D7cQLLGK2.js.br +0 -0
  110. package/dist/public/assets/{_DDag_nXJ.js → _DBoABI85.js} +1 -1
  111. package/dist/public/assets/_DBoABI85.js.br +0 -0
  112. package/dist/public/assets/{_CzMjLSTK.js → _DNcd1xtp.js} +1 -1
  113. package/dist/public/assets/_DNcd1xtp.js.br +0 -0
  114. package/dist/public/assets/{_BEPt7EWk.js → _DQGTProt.js} +1 -1
  115. package/dist/public/assets/_DQGTProt.js.br +0 -0
  116. package/dist/public/assets/{_D8lg2J6H.js → _DSIH6_Li.js} +1 -1
  117. package/dist/public/assets/_DSIH6_Li.js.br +0 -0
  118. package/dist/public/assets/{_cS3NYZ_K2.js → _DXHf4WHs2.js} +1 -1
  119. package/dist/public/assets/_DXHf4WHs2.js.br +0 -0
  120. package/dist/public/assets/{_0_ngOEbL.js → _D_qDhyn2.js} +1 -1
  121. package/dist/public/assets/_D_qDhyn2.js.br +0 -0
  122. package/dist/public/assets/{_BFgJoTOo.js → _DcMfCkmd.js} +1 -1
  123. package/dist/public/assets/_DcMfCkmd.js.br +0 -0
  124. package/dist/public/assets/{_CkBv_F0f.js → _DgDEdxEu.js} +1 -1
  125. package/dist/public/assets/_DgDEdxEu.js.br +0 -0
  126. package/dist/public/assets/{_dBVoJwVC.js → _DlhDim1D.js} +1 -1
  127. package/dist/public/assets/_DlhDim1D.js.br +0 -0
  128. package/dist/public/assets/{_-3OmHyNU.js → _DqLib98x.js} +1 -1
  129. package/dist/public/assets/_DqLib98x.js.br +0 -0
  130. package/dist/public/assets/{_fR2ilomn.js → _Ds0Qa0YX.js} +1 -1
  131. package/dist/public/assets/_Ds0Qa0YX.js.br +0 -0
  132. package/dist/public/assets/{_CwZCc-fE2.js → _DyUvL09k2.js} +1 -1
  133. package/dist/public/assets/_DyUvL09k2.js.br +0 -0
  134. package/dist/public/assets/{_D2xWjoK-2.js → _J6xlcydH2.js} +1 -1
  135. package/dist/public/assets/_J6xlcydH2.js.br +0 -0
  136. package/dist/public/assets/{_DkYHMy0q2.js → _MInulccf2.js} +1 -1
  137. package/dist/public/assets/{_GdcmEEuJ.js → _QMVFINxi.js} +1 -1
  138. package/dist/public/assets/_QMVFINxi.js.br +0 -0
  139. package/dist/public/assets/{_BqNoqWIY.js → _S9QQtt68.js} +1 -1
  140. package/dist/public/assets/_S9QQtt68.js.br +0 -0
  141. package/dist/public/assets/{_BuF6uiIm.js → _XCJLLGxV.js} +1 -1
  142. package/dist/public/assets/_XCJLLGxV.js.br +0 -0
  143. package/dist/public/assets/{_DWctbEWg.js → _Y-bTh0dW.js} +1 -1
  144. package/dist/public/assets/_Y-bTh0dW.js.br +0 -0
  145. package/dist/public/assets/{_CJ_9Hl5d.js → _Y8TOk1pR.js} +1 -1
  146. package/dist/public/assets/_Y8TOk1pR.js.br +0 -0
  147. package/dist/public/assets/{_cdbANa0O.js → _YetFhXkM.js} +1 -1
  148. package/dist/public/assets/_YetFhXkM.js.br +0 -0
  149. package/dist/public/assets/{_CeVHIZWy2.js → _YmJopjX92.js} +1 -1
  150. package/dist/public/assets/_YmJopjX92.js.br +0 -0
  151. package/dist/public/assets/{_wc-pkVQS.js → _mbzaOqik.js} +1 -1
  152. package/dist/public/assets/_mbzaOqik.js.br +0 -0
  153. package/dist/public/assets/{_FEbRnVo7.js → _rMcfapaa.js} +1 -1
  154. package/dist/public/assets/_rMcfapaa.js.br +0 -0
  155. package/dist/public/assets/{_BIsQjQ872.js → _rRtbbfKJ2.js} +1 -1
  156. package/dist/public/assets/_rRtbbfKJ2.js.br +0 -0
  157. package/dist/public/assets/{_D4V7vTBe.js → _sSWgnHeU.js} +1 -1
  158. package/dist/public/assets/_sSWgnHeU.js.br +0 -0
  159. package/dist/public/assets/{_B6bSumz1.js → _xOeYy_3v.js} +1 -1
  160. package/dist/public/assets/_xOeYy_3v.js.br +0 -0
  161. package/dist/public/assets/app-page-BWf0w6W9.css +1 -0
  162. package/dist/public/assets/app-page-BWf0w6W9.css.br +0 -0
  163. package/dist/public/assets/diff-view-BZaYYEDK.css +1 -0
  164. package/dist/public/assets/diff-view-BZaYYEDK.css.br +0 -0
  165. package/dist/public/assets/new-K-7z0qE8.js +1 -0
  166. package/dist/public/assets/settings-K-7z0qE8.js +1 -0
  167. package/dist/public/assets/w-K-7z0qE8.js +1 -0
  168. package/dist/public/assets/w._-D5d4klUv.js +1 -0
  169. package/dist/public/assets/w._-K-7z0qE8.js +1 -0
  170. package/lib/review/markdown.mjs +6 -2
  171. package/lib/setup/catalog.d.mts +3 -1
  172. package/lib/setup/catalog.mjs +11 -2
  173. package/lib/setup/doctor.mjs +96 -20
  174. package/lib/setup/install.d.mts +9 -3
  175. package/lib/setup/install.mjs +68 -39
  176. package/lib/share/manifest.d.mts +27 -0
  177. package/lib/share/manifest.mjs +144 -0
  178. package/package.json +6 -2
  179. package/scripts/migrate.mjs +101 -30
  180. package/dist/_BIDn_RW1.js +0 -2
  181. package/dist/public/assets/_-3OmHyNU.js.br +0 -0
  182. package/dist/public/assets/_0_ngOEbL.js.br +0 -0
  183. package/dist/public/assets/_8hF31A2G.js.br +0 -0
  184. package/dist/public/assets/_B6bSumz1.js.br +0 -0
  185. package/dist/public/assets/_BCKhXQct2.js.br +0 -0
  186. package/dist/public/assets/_BDRc66NB2.js.br +0 -0
  187. package/dist/public/assets/_BEOZghNJ2.js.br +0 -0
  188. package/dist/public/assets/_BEPt7EWk.js.br +0 -0
  189. package/dist/public/assets/_BFgJoTOo.js.br +0 -0
  190. package/dist/public/assets/_BGHYY00K2.js.br +0 -0
  191. package/dist/public/assets/_BHgE7f-_2.js.br +0 -0
  192. package/dist/public/assets/_BIsQjQ872.js.br +0 -0
  193. package/dist/public/assets/_BLgtdDQm.js.br +0 -0
  194. package/dist/public/assets/_BPcKgx9L.js.br +0 -0
  195. package/dist/public/assets/_BUmLRB7c2.js.br +0 -0
  196. package/dist/public/assets/_B_MP9UES.js.br +0 -0
  197. package/dist/public/assets/_BaiP7ogH.js.br +0 -0
  198. package/dist/public/assets/_BbE6iGBd.js.br +0 -0
  199. package/dist/public/assets/_BfZMmKaW.js.br +0 -0
  200. package/dist/public/assets/_BilqQTfw.js.br +0 -0
  201. package/dist/public/assets/_BqNoqWIY.js.br +0 -0
  202. package/dist/public/assets/_BrTLGsp82.js.br +0 -0
  203. package/dist/public/assets/_Brws7C1N.js.br +0 -0
  204. package/dist/public/assets/_BtmFYBHk.js.br +0 -0
  205. package/dist/public/assets/_BuF6uiIm.js.br +0 -0
  206. package/dist/public/assets/_BzULaZGs.js.br +0 -0
  207. package/dist/public/assets/_CG2uZvAG.js.br +0 -0
  208. package/dist/public/assets/_CIio55Q2.js.br +0 -0
  209. package/dist/public/assets/_CJ_9Hl5d.js.br +0 -0
  210. package/dist/public/assets/_CQ-tqbUq.js.br +0 -0
  211. package/dist/public/assets/_CYLlpjQc.js.br +0 -0
  212. package/dist/public/assets/_Ca811EeR.js.br +0 -0
  213. package/dist/public/assets/_CeECfdVo2.js.br +0 -0
  214. package/dist/public/assets/_CeVHIZWy2.js.br +0 -0
  215. package/dist/public/assets/_Ces5jihM.js.br +0 -7
  216. package/dist/public/assets/_CihMY3_B2.js.br +0 -0
  217. package/dist/public/assets/_CkBv_F0f.js.br +0 -0
  218. package/dist/public/assets/_CrPK-ZOH2.js.br +0 -0
  219. package/dist/public/assets/_Cv-4N4xQ.js.br +0 -0
  220. package/dist/public/assets/_Cvly93xo2.js.br +0 -0
  221. package/dist/public/assets/_CwZCc-fE2.js.br +0 -0
  222. package/dist/public/assets/_CwtAB8Ju2.js.br +0 -0
  223. package/dist/public/assets/_CzMjLSTK.js.br +0 -0
  224. package/dist/public/assets/_D11ZFURg.js.br +0 -0
  225. package/dist/public/assets/_D2be5yUI.js.br +0 -0
  226. package/dist/public/assets/_D2xWjoK-2.js.br +0 -0
  227. package/dist/public/assets/_D4V7vTBe.js.br +0 -0
  228. package/dist/public/assets/_D8lg2J6H.js.br +0 -0
  229. package/dist/public/assets/_DBXfsrRd.js.br +0 -0
  230. package/dist/public/assets/_DDag_nXJ.js.br +0 -0
  231. package/dist/public/assets/_DRKLaQtq.js.br +0 -0
  232. package/dist/public/assets/_DWctbEWg.js.br +0 -3
  233. package/dist/public/assets/_DZgx_rAt.js.br +0 -0
  234. package/dist/public/assets/_DdYfAoJz.js.br +0 -0
  235. package/dist/public/assets/_DdnCyOPs.js.br +0 -0
  236. package/dist/public/assets/_DfpMH3So2.js.br +0 -0
  237. package/dist/public/assets/_DhLWIgCs.js.br +0 -0
  238. package/dist/public/assets/_DiaYv9e1.js.br +0 -0
  239. package/dist/public/assets/_Du-i6H8r.js.br +0 -0
  240. package/dist/public/assets/_F8phZWNM2.js.br +0 -0
  241. package/dist/public/assets/_FEbRnVo7.js.br +0 -0
  242. package/dist/public/assets/_GdcmEEuJ.js.br +0 -0
  243. package/dist/public/assets/_N0Ea8Q_R.js.br +0 -0
  244. package/dist/public/assets/_QuFTKxMO2.js.br +0 -0
  245. package/dist/public/assets/_cS3NYZ_K2.js.br +0 -0
  246. package/dist/public/assets/_cdbANa0O.js.br +0 -0
  247. package/dist/public/assets/_dBVoJwVC.js.br +0 -0
  248. package/dist/public/assets/_fR2ilomn.js.br +0 -0
  249. package/dist/public/assets/_h6HS-Zb_2.js.br +0 -0
  250. package/dist/public/assets/_p1VLQxPw.js.br +0 -0
  251. package/dist/public/assets/_uJTU0UZd2.js.br +0 -0
  252. package/dist/public/assets/_wc-pkVQS.js.br +0 -0
  253. package/dist/public/assets/_zJkCtRhb.js.br +0 -0
  254. package/dist/public/assets/app-page-DgsAA8Om.css +0 -1
  255. package/dist/public/assets/app-page-DgsAA8Om.css.br +0 -0
  256. package/dist/public/assets/diff-view-BqwTpf5k.css +0 -1
  257. package/dist/public/assets/diff-view-BqwTpf5k.css.br +0 -0
  258. package/dist/public/assets/new-cBa61wMi.js +0 -1
  259. package/dist/public/assets/settings-cBa61wMi.js +0 -1
  260. package/dist/public/assets/w-cBa61wMi.js +0 -1
  261. package/dist/public/assets/w._-B9llVTHr.js +0 -1
  262. package/dist/public/assets/w._-cBa61wMi.js +0 -1
package/README.md CHANGED
@@ -73,16 +73,43 @@ app port, so route the whole hostname to it. Set
73
73
  > `/term` rule from your tunnel/proxy config and send all traffic to the app
74
74
  > port, or terminals will fail to connect.
75
75
 
76
+ ## Backup, restore, join
77
+
78
+ A `work` machine holds almost nothing that lives only there: branches are
79
+ on origin, tools come from mise's registry, skills from their source repos.
80
+ So a backup is a small manifest, not a filesystem copy — Settings → Backup
81
+ → **Export** (or `work export [file]`) writes one with the workspaces (ids,
82
+ names, branches, repos), settings, GitHub hosts, skill sources and mise
83
+ pins — a few KB, with every default left out (`owner/name@base` only when
84
+ the base is not the remote's default, `tool@version` only when pinned). Auto-push (Settings → GitHub) keeps every workspace
85
+ branch on origin so the manifest is enough; the export pre-flight lists
86
+ anything it cannot carry — unpushed commits, uncommitted or untracked
87
+ files, ignored files that are not build junk — and waits for a decision.
88
+
89
+ **Restore** (Settings → Backup, or `work restore <file> --yes`) installs
90
+ what the file names that the machine lacks and re-creates the workspaces
91
+ as rows; each one's repos then clone in the background, one workspace at
92
+ a time, on the branch the manifest recorded (from origin, or fresh from
93
+ the base when it was never pushed). Archived workspaces clone when they
94
+ are un-archived.
95
+
96
+ **Share / Join**: the clipboard button on Manage (or `work share`) copies a workspace's
97
+ invite — its backup-manifest entry (name, branch, repos) as JSON. Someone
98
+ else pastes it into New workspace (the join button; or `work join <file>`, or pipes it
99
+ in) and gets the same repos, checked out on their own lane
100
+ (`<their-branch>-<them>`) of the workspace branch, with PRs and the review
101
+ targeting that branch.
102
+
76
103
  ## Configuration
77
104
 
78
- | Variable | Default | Purpose |
79
- | -------------------- | ----------------------- | ------------------------------------ |
80
- | `WORK_ROOT` | `~/work` | Workspaces root (+ `.cache` bare repos) |
81
- | `WORK_DATA_DIR` | `~/.local/share/work` | sqlite db and server state |
82
- | `WORK_APP_PORT` | `7171` | HTTP server (app, assets, and `/term` websockets) |
83
- | `WORK_ALLOWED_HOSTS` | — | Extra dev-server hostnames (comma-separated) |
84
- | `WORK_USER` / `WORK_HOST` | current user/host | Branch-name prefix parts |
85
- | `WORK_BRANCH_PREFIX` | `<user>-<host>` | Whole branch-name prefix, overriding the parts |
105
+ | Variable | Default | Purpose |
106
+ | ------------------------- | --------------------- | ------------------------------------------------- |
107
+ | `WORK_ROOT` | `~/work` | Workspaces root (+ `.cache` bare repos) |
108
+ | `WORK_DATA_DIR` | `~/.local/share/work` | sqlite db and server state |
109
+ | `WORK_APP_PORT` | `7171` | HTTP server (app, assets, and `/term` websockets) |
110
+ | `WORK_ALLOWED_HOSTS` | — | Extra dev-server hostnames (comma-separated) |
111
+ | `WORK_USER` / `WORK_HOST` | current user/host | Branch-name prefix parts |
112
+ | `WORK_BRANCH_PREFIX` | `<user>-<host>` | Whole branch-name prefix, overriding the parts |
86
113
 
87
114
  Ports and paths can be exported before `scripts/setup-prod.sh` to bake them into
88
115
  the service. For settings that should outlive an update, put them in an untracked