@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.
- package/README.md +35 -8
- package/bin/work.mjs +380 -41
- package/dist/_B1lVb01g.js +2 -0
- package/dist/_Bjh5JEm7.js +2 -0
- package/dist/_CfwTkTbL.js +352 -0
- package/dist/{_DEBFGwto.js → _CivNK9fo.js} +22 -20
- package/dist/{_DE2RUdbF.js → _Cr71Xd0d.js} +8 -3
- package/dist/_DJyHc1w-.js +1739 -0
- package/dist/{_BZhGz-eY.js → _DnaZVHJ7.js} +97 -96
- package/dist/_Dpa8WFuv.js +2 -0
- package/dist/index.mjs +4183 -4191
- package/dist/public/assets/{_BrTLGsp82.js → _-zdUyUYM2.js} +1 -1
- package/dist/public/assets/_-zdUyUYM2.js.br +0 -0
- package/dist/public/assets/{_Cvly93xo2.js → _0L2K8sFq2.js} +1 -1
- package/dist/public/assets/_0L2K8sFq2.js.br +0 -0
- package/dist/public/assets/{_CQ-tqbUq.js → _42jdam49.js} +1 -1
- package/dist/public/assets/_42jdam49.js.br +0 -0
- package/dist/public/assets/{_BEOZghNJ2.js → _9dJ8BnyZ2.js} +1 -1
- package/dist/public/assets/_9dJ8BnyZ2.js.br +0 -0
- package/dist/public/assets/{_zJkCtRhb.js → _B03G1Nvs.js} +1 -1
- package/dist/public/assets/_B03G1Nvs.js.br +0 -0
- package/dist/public/assets/{_BLgtdDQm.js → _B0dZ7_qK.js} +1 -1
- package/dist/public/assets/_B0dZ7_qK.js.br +0 -0
- package/dist/public/assets/{_DdnCyOPs.js → _B1VuWiKK.js} +1 -1
- package/dist/public/assets/_B1VuWiKK.js.br +0 -0
- package/dist/public/assets/{_CwtAB8Ju2.js → _B5nrQZIq2.js} +1 -1
- package/dist/public/assets/_B5nrQZIq2.js.br +0 -0
- package/dist/public/assets/{_B_MP9UES.js → _B8ZQ8inF.js} +1 -1
- package/dist/public/assets/_B8ZQ8inF.js.br +0 -0
- package/dist/public/assets/{_DhLWIgCs.js → _B9e51G1K.js} +1 -1
- package/dist/public/assets/_B9e51G1K.js.br +0 -0
- package/dist/public/assets/{_h6HS-Zb_2.js → _BH015W2i2.js} +1 -1
- package/dist/public/assets/_BH015W2i2.js.br +0 -0
- package/dist/public/assets/{_Brws7C1N.js → _BHjcfVXB.js} +6 -6
- package/dist/public/assets/_BHjcfVXB.js.br +0 -0
- package/dist/public/assets/{_BfZMmKaW.js → _BNIilCsC.js} +1 -1
- package/dist/public/assets/_BNIilCsC.js.br +0 -0
- package/dist/public/assets/{_CihMY3_B2.js → _BPgL37mi2.js} +1 -1
- package/dist/public/assets/_BPgL37mi2.js.br +0 -0
- package/dist/public/assets/{_BDRc66NB2.js → _BR3D4nzj2.js} +1 -1
- package/dist/public/assets/_BR3D4nzj2.js.br +0 -0
- package/dist/public/assets/{_BoXfCUcF.js → _BRSJwfZ3.js} +1 -1
- package/dist/public/assets/{_BbE6iGBd.js → _BSFENb4l.js} +1 -1
- package/dist/public/assets/_BSFENb4l.js.br +0 -0
- package/dist/public/assets/{_DBXfsrRd.js → _BSWpz0dK.js} +1 -1
- package/dist/public/assets/_BSWpz0dK.js.br +0 -0
- package/dist/public/assets/{_DZgx_rAt.js → _BUOWar32.js} +1 -1
- package/dist/public/assets/_BUOWar32.js.br +0 -0
- package/dist/public/assets/{_Ces5jihM.js → _BZWlvMSJ.js} +1 -1
- package/dist/public/assets/_BZWlvMSJ.js.br +0 -0
- package/dist/public/assets/{_F8phZWNM2.js → _B_dMglA92.js} +1 -1
- package/dist/public/assets/_B_dMglA92.js.br +0 -0
- package/dist/public/assets/{_N0Ea8Q_R.js → _Beb6Lb1w.js} +1 -1
- package/dist/public/assets/_Beb6Lb1w.js.br +0 -0
- package/dist/public/assets/{_BUmLRB7c2.js → _BjIMoOV-2.js} +1 -1
- package/dist/public/assets/_BjIMoOV-2.js.br +0 -0
- package/dist/public/assets/{_Cv-4N4xQ.js → _BlLuOKRT.js} +1 -1
- package/dist/public/assets/_BlLuOKRT.js.br +0 -0
- package/dist/public/assets/{_BilqQTfw.js → _BlXwius8.js} +1 -1
- package/dist/public/assets/_BlXwius8.js.br +0 -0
- package/dist/public/assets/{_DdYfAoJz.js → _Bmt76eWT.js} +1 -1
- package/dist/public/assets/_Bmt76eWT.js.br +0 -0
- package/dist/public/assets/{_BaiP7ogH.js → _BoS5LU5l.js} +1 -1
- package/dist/public/assets/_BoS5LU5l.js.br +0 -0
- package/dist/public/assets/{_uJTU0UZd2.js → _BsNKabYu2.js} +1 -1
- package/dist/public/assets/_BsNKabYu2.js.br +0 -0
- package/dist/public/assets/{_D2be5yUI.js → _C0OXw3Vy.js} +1 -1
- package/dist/public/assets/_C0OXw3Vy.js.br +0 -0
- package/dist/public/assets/{_CrPK-ZOH2.js → _CBUJNdeq2.js} +1 -1
- package/dist/public/assets/_CBUJNdeq2.js.br +0 -0
- package/dist/public/assets/{_DfpMH3So2.js → _CCNhM32c2.js} +1 -1
- package/dist/public/assets/_CCNhM32c2.js.br +0 -0
- package/dist/public/assets/{_D11ZFURg.js → _CFBaZNUT.js} +1 -1
- package/dist/public/assets/_CFBaZNUT.js.br +0 -0
- package/dist/public/assets/{_BGHYY00K2.js → _CJHqzl--2.js} +1 -1
- package/dist/public/assets/_CJHqzl--2.js.br +0 -0
- package/dist/public/assets/{_BHgE7f-_2.js → _CMGgQ-4H2.js} +1 -1
- package/dist/public/assets/_CMGgQ-4H2.js.br +0 -0
- package/dist/public/assets/{_BzULaZGs.js → _CPX0D-my.js} +1 -1
- package/dist/public/assets/_CPX0D-my.js.br +0 -0
- package/dist/public/assets/{_CeECfdVo2.js → _CRuHDn_O2.js} +1 -1
- package/dist/public/assets/_CRuHDn_O2.js.br +0 -0
- package/dist/public/assets/{_p1VLQxPw.js → _CUOao_Hj.js} +1 -1
- package/dist/public/assets/_CUOao_Hj.js.br +0 -0
- package/dist/public/assets/{_CIio55Q2.js → _CUVw5V4z.js} +1 -1
- package/dist/public/assets/_CUVw5V4z.js.br +0 -0
- package/dist/public/assets/{_CYLlpjQc.js → _CYMGOhCb.js} +1 -1
- package/dist/public/assets/_CYMGOhCb.js.br +0 -0
- package/dist/public/assets/{_BtmFYBHk.js → _CZfap_Dj.js} +1 -1
- package/dist/public/assets/_CZfap_Dj.js.br +0 -0
- package/dist/public/assets/{_DRKLaQtq.js → _CbNmSe5k.js} +1 -1
- package/dist/public/assets/_CbNmSe5k.js.br +0 -0
- package/dist/public/assets/{_8hF31A2G.js → _CdtuhZSc.js} +1 -1
- package/dist/public/assets/_CdtuhZSc.js.br +0 -0
- package/dist/public/assets/{_BPcKgx9L.js → _ClhApln3.js} +1 -1
- package/dist/public/assets/_ClhApln3.js.br +0 -0
- package/dist/public/assets/{_QuFTKxMO2.js → _CvA5IOAW2.js} +1 -1
- package/dist/public/assets/_CvA5IOAW2.js.br +0 -0
- package/dist/public/assets/{_z3QzE4ht2.js → _CwZYmUdt2.js} +1 -1
- package/dist/public/assets/{_CG2uZvAG.js → _CxrcWZPE.js} +1 -1
- package/dist/public/assets/_CxrcWZPE.js.br +0 -0
- package/dist/public/assets/{_Du-i6H8r.js → _D-KjGTSW.js} +24 -21
- package/dist/public/assets/_D-KjGTSW.js.br +0 -0
- package/dist/public/assets/{_Ca811EeR.js → _D4u4SpiK.js} +1 -1
- package/dist/public/assets/_D4u4SpiK.js.br +0 -0
- package/dist/public/assets/{_DiaYv9e1.js → _D6CjH3JN.js} +1 -1
- package/dist/public/assets/_D6CjH3JN.js.br +0 -0
- package/dist/public/assets/{_BCKhXQct2.js → _D7cQLLGK2.js} +1 -1
- package/dist/public/assets/_D7cQLLGK2.js.br +0 -0
- package/dist/public/assets/{_DDag_nXJ.js → _DBoABI85.js} +1 -1
- package/dist/public/assets/_DBoABI85.js.br +0 -0
- package/dist/public/assets/{_CzMjLSTK.js → _DNcd1xtp.js} +1 -1
- package/dist/public/assets/_DNcd1xtp.js.br +0 -0
- package/dist/public/assets/{_BEPt7EWk.js → _DQGTProt.js} +1 -1
- package/dist/public/assets/_DQGTProt.js.br +0 -0
- package/dist/public/assets/{_D8lg2J6H.js → _DSIH6_Li.js} +1 -1
- package/dist/public/assets/_DSIH6_Li.js.br +0 -0
- package/dist/public/assets/{_cS3NYZ_K2.js → _DXHf4WHs2.js} +1 -1
- package/dist/public/assets/_DXHf4WHs2.js.br +0 -0
- package/dist/public/assets/{_0_ngOEbL.js → _D_qDhyn2.js} +1 -1
- package/dist/public/assets/_D_qDhyn2.js.br +0 -0
- package/dist/public/assets/{_BFgJoTOo.js → _DcMfCkmd.js} +1 -1
- package/dist/public/assets/_DcMfCkmd.js.br +0 -0
- package/dist/public/assets/{_CkBv_F0f.js → _DgDEdxEu.js} +1 -1
- package/dist/public/assets/_DgDEdxEu.js.br +0 -0
- package/dist/public/assets/{_dBVoJwVC.js → _DlhDim1D.js} +1 -1
- package/dist/public/assets/_DlhDim1D.js.br +0 -0
- package/dist/public/assets/{_-3OmHyNU.js → _DqLib98x.js} +1 -1
- package/dist/public/assets/_DqLib98x.js.br +0 -0
- package/dist/public/assets/{_fR2ilomn.js → _Ds0Qa0YX.js} +1 -1
- package/dist/public/assets/_Ds0Qa0YX.js.br +0 -0
- package/dist/public/assets/{_CwZCc-fE2.js → _DyUvL09k2.js} +1 -1
- package/dist/public/assets/_DyUvL09k2.js.br +0 -0
- package/dist/public/assets/{_D2xWjoK-2.js → _J6xlcydH2.js} +1 -1
- package/dist/public/assets/_J6xlcydH2.js.br +0 -0
- package/dist/public/assets/{_DkYHMy0q2.js → _MInulccf2.js} +1 -1
- package/dist/public/assets/{_GdcmEEuJ.js → _QMVFINxi.js} +1 -1
- package/dist/public/assets/_QMVFINxi.js.br +0 -0
- package/dist/public/assets/{_BqNoqWIY.js → _S9QQtt68.js} +1 -1
- package/dist/public/assets/_S9QQtt68.js.br +0 -0
- package/dist/public/assets/{_BuF6uiIm.js → _XCJLLGxV.js} +1 -1
- package/dist/public/assets/_XCJLLGxV.js.br +0 -0
- package/dist/public/assets/{_DWctbEWg.js → _Y-bTh0dW.js} +1 -1
- package/dist/public/assets/_Y-bTh0dW.js.br +0 -0
- package/dist/public/assets/{_CJ_9Hl5d.js → _Y8TOk1pR.js} +1 -1
- package/dist/public/assets/_Y8TOk1pR.js.br +0 -0
- package/dist/public/assets/{_cdbANa0O.js → _YetFhXkM.js} +1 -1
- package/dist/public/assets/_YetFhXkM.js.br +0 -0
- package/dist/public/assets/{_CeVHIZWy2.js → _YmJopjX92.js} +1 -1
- package/dist/public/assets/_YmJopjX92.js.br +0 -0
- package/dist/public/assets/{_wc-pkVQS.js → _mbzaOqik.js} +1 -1
- package/dist/public/assets/_mbzaOqik.js.br +0 -0
- package/dist/public/assets/{_FEbRnVo7.js → _rMcfapaa.js} +1 -1
- package/dist/public/assets/_rMcfapaa.js.br +0 -0
- package/dist/public/assets/{_BIsQjQ872.js → _rRtbbfKJ2.js} +1 -1
- package/dist/public/assets/_rRtbbfKJ2.js.br +0 -0
- package/dist/public/assets/{_D4V7vTBe.js → _sSWgnHeU.js} +1 -1
- package/dist/public/assets/_sSWgnHeU.js.br +0 -0
- package/dist/public/assets/{_B6bSumz1.js → _xOeYy_3v.js} +1 -1
- package/dist/public/assets/_xOeYy_3v.js.br +0 -0
- package/dist/public/assets/app-page-BWf0w6W9.css +1 -0
- package/dist/public/assets/app-page-BWf0w6W9.css.br +0 -0
- package/dist/public/assets/diff-view-BZaYYEDK.css +1 -0
- package/dist/public/assets/diff-view-BZaYYEDK.css.br +0 -0
- package/dist/public/assets/new-K-7z0qE8.js +1 -0
- package/dist/public/assets/settings-K-7z0qE8.js +1 -0
- package/dist/public/assets/w-K-7z0qE8.js +1 -0
- package/dist/public/assets/w._-D5d4klUv.js +1 -0
- package/dist/public/assets/w._-K-7z0qE8.js +1 -0
- package/lib/review/markdown.mjs +6 -2
- package/lib/setup/catalog.d.mts +3 -1
- package/lib/setup/catalog.mjs +11 -2
- package/lib/setup/doctor.mjs +96 -20
- package/lib/setup/install.d.mts +9 -3
- package/lib/setup/install.mjs +68 -39
- package/lib/share/manifest.d.mts +27 -0
- package/lib/share/manifest.mjs +144 -0
- package/package.json +6 -2
- package/scripts/migrate.mjs +101 -30
- package/dist/_BIDn_RW1.js +0 -2
- package/dist/public/assets/_-3OmHyNU.js.br +0 -0
- package/dist/public/assets/_0_ngOEbL.js.br +0 -0
- package/dist/public/assets/_8hF31A2G.js.br +0 -0
- package/dist/public/assets/_B6bSumz1.js.br +0 -0
- package/dist/public/assets/_BCKhXQct2.js.br +0 -0
- package/dist/public/assets/_BDRc66NB2.js.br +0 -0
- package/dist/public/assets/_BEOZghNJ2.js.br +0 -0
- package/dist/public/assets/_BEPt7EWk.js.br +0 -0
- package/dist/public/assets/_BFgJoTOo.js.br +0 -0
- package/dist/public/assets/_BGHYY00K2.js.br +0 -0
- package/dist/public/assets/_BHgE7f-_2.js.br +0 -0
- package/dist/public/assets/_BIsQjQ872.js.br +0 -0
- package/dist/public/assets/_BLgtdDQm.js.br +0 -0
- package/dist/public/assets/_BPcKgx9L.js.br +0 -0
- package/dist/public/assets/_BUmLRB7c2.js.br +0 -0
- package/dist/public/assets/_B_MP9UES.js.br +0 -0
- package/dist/public/assets/_BaiP7ogH.js.br +0 -0
- package/dist/public/assets/_BbE6iGBd.js.br +0 -0
- package/dist/public/assets/_BfZMmKaW.js.br +0 -0
- package/dist/public/assets/_BilqQTfw.js.br +0 -0
- package/dist/public/assets/_BqNoqWIY.js.br +0 -0
- package/dist/public/assets/_BrTLGsp82.js.br +0 -0
- package/dist/public/assets/_Brws7C1N.js.br +0 -0
- package/dist/public/assets/_BtmFYBHk.js.br +0 -0
- package/dist/public/assets/_BuF6uiIm.js.br +0 -0
- package/dist/public/assets/_BzULaZGs.js.br +0 -0
- package/dist/public/assets/_CG2uZvAG.js.br +0 -0
- package/dist/public/assets/_CIio55Q2.js.br +0 -0
- package/dist/public/assets/_CJ_9Hl5d.js.br +0 -0
- package/dist/public/assets/_CQ-tqbUq.js.br +0 -0
- package/dist/public/assets/_CYLlpjQc.js.br +0 -0
- package/dist/public/assets/_Ca811EeR.js.br +0 -0
- package/dist/public/assets/_CeECfdVo2.js.br +0 -0
- package/dist/public/assets/_CeVHIZWy2.js.br +0 -0
- package/dist/public/assets/_Ces5jihM.js.br +0 -7
- package/dist/public/assets/_CihMY3_B2.js.br +0 -0
- package/dist/public/assets/_CkBv_F0f.js.br +0 -0
- package/dist/public/assets/_CrPK-ZOH2.js.br +0 -0
- package/dist/public/assets/_Cv-4N4xQ.js.br +0 -0
- package/dist/public/assets/_Cvly93xo2.js.br +0 -0
- package/dist/public/assets/_CwZCc-fE2.js.br +0 -0
- package/dist/public/assets/_CwtAB8Ju2.js.br +0 -0
- package/dist/public/assets/_CzMjLSTK.js.br +0 -0
- package/dist/public/assets/_D11ZFURg.js.br +0 -0
- package/dist/public/assets/_D2be5yUI.js.br +0 -0
- package/dist/public/assets/_D2xWjoK-2.js.br +0 -0
- package/dist/public/assets/_D4V7vTBe.js.br +0 -0
- package/dist/public/assets/_D8lg2J6H.js.br +0 -0
- package/dist/public/assets/_DBXfsrRd.js.br +0 -0
- package/dist/public/assets/_DDag_nXJ.js.br +0 -0
- package/dist/public/assets/_DRKLaQtq.js.br +0 -0
- package/dist/public/assets/_DWctbEWg.js.br +0 -3
- package/dist/public/assets/_DZgx_rAt.js.br +0 -0
- package/dist/public/assets/_DdYfAoJz.js.br +0 -0
- package/dist/public/assets/_DdnCyOPs.js.br +0 -0
- package/dist/public/assets/_DfpMH3So2.js.br +0 -0
- package/dist/public/assets/_DhLWIgCs.js.br +0 -0
- package/dist/public/assets/_DiaYv9e1.js.br +0 -0
- package/dist/public/assets/_Du-i6H8r.js.br +0 -0
- package/dist/public/assets/_F8phZWNM2.js.br +0 -0
- package/dist/public/assets/_FEbRnVo7.js.br +0 -0
- package/dist/public/assets/_GdcmEEuJ.js.br +0 -0
- package/dist/public/assets/_N0Ea8Q_R.js.br +0 -0
- package/dist/public/assets/_QuFTKxMO2.js.br +0 -0
- package/dist/public/assets/_cS3NYZ_K2.js.br +0 -0
- package/dist/public/assets/_cdbANa0O.js.br +0 -0
- package/dist/public/assets/_dBVoJwVC.js.br +0 -0
- package/dist/public/assets/_fR2ilomn.js.br +0 -0
- package/dist/public/assets/_h6HS-Zb_2.js.br +0 -0
- package/dist/public/assets/_p1VLQxPw.js.br +0 -0
- package/dist/public/assets/_uJTU0UZd2.js.br +0 -0
- package/dist/public/assets/_wc-pkVQS.js.br +0 -0
- package/dist/public/assets/_zJkCtRhb.js.br +0 -0
- package/dist/public/assets/app-page-DgsAA8Om.css +0 -1
- package/dist/public/assets/app-page-DgsAA8Om.css.br +0 -0
- package/dist/public/assets/diff-view-BqwTpf5k.css +0 -1
- package/dist/public/assets/diff-view-BqwTpf5k.css.br +0 -0
- package/dist/public/assets/new-cBa61wMi.js +0 -1
- package/dist/public/assets/settings-cBa61wMi.js +0 -1
- package/dist/public/assets/w-cBa61wMi.js +0 -1
- package/dist/public/assets/w._-B9llVTHr.js +0 -1
- 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
|
|
79
|
-
|
|
|
80
|
-
| `WORK_ROOT`
|
|
81
|
-
| `WORK_DATA_DIR`
|
|
82
|
-
| `WORK_APP_PORT`
|
|
83
|
-
| `WORK_ALLOWED_HOSTS`
|
|
84
|
-
| `WORK_USER` / `WORK_HOST` | current user/host
|
|
85
|
-
| `WORK_BRANCH_PREFIX`
|
|
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
|