aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-19 01:15:53 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-19 01:15:53 +0200
commitcc0820de8d8c33560c44bd6a0864de30e33a0109 (patch)
tree9e55601ea84a94fc5f79e2a3bf0fd13be1c0fc17
parent345a59fc128e5e4f253c277c8cee69a2b1062a4f (diff)
downloadmeshbay-cc0820de8d8c33560c44bd6a0864de30e33a0109.tar.gz
docs: drop the references to design notes that live outside the repo
Seventeen comments across the Windows packaging targets pointed at C:\Users\admin\devel\light-client.md and msix-installer.md -- absolute paths on one developer's machine, unreadable to anyone else who clones this repository and unverifiable by any test here. The surrounding prose already carried the substance in every case, so these are removals, not rewrites, with two exceptions where the pointer was doing real work: electron-builder.msix.yml's header told the reader to go read §4 and §8 first. It now states the fact directly (an AppX/MSIX install never elevates, by design, so the package carries none of installer.nsh's elevation logic) and says the open items are called out at each declaration below -- which they already were, at `capabilities` and `customExtensionsPath`. The two "msix-installer.md §8" citations become "an open item" / "the other open item", beside the description of the item that was already there. Paragraphs the removals left ragged are re-wrapped. Verified: node suite 1403 pass / 4 skip (71 of them test_packaging_win.py), both electron-builder configs still parse as YAML, node --check on main.js. The .ps1 edits are inside <# #> comment headers plus one deleted Write-Host in a block that keeps two others; no pwsh on this machine to parse them. Not touched, and much larger: ~230 comments elsewhere in the codebase cite per-feature design notes (musicbay.md, mediacenter.md, auth-confirm.md and twenty more) that were merged into docs/MESHBAY_DESIGN.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
-rw-r--r--packages/meshbay-client/src/main.js2
-rw-r--r--packages/meshbay-node/tests/test_packaging_win.py39
-rw-r--r--packaging/win/build-win-light.ps111
-rw-r--r--packaging/win/build-win-msix.ps110
-rw-r--r--packaging/win/electron-builder.light.yml3
-rw-r--r--packaging/win/electron-builder.msix.yml20
6 files changed, 37 insertions, 48 deletions
diff --git a/packages/meshbay-client/src/main.js b/packages/meshbay-client/src/main.js
index 755f1f7..5e00d0b 100644
--- a/packages/meshbay-client/src/main.js
+++ b/packages/meshbay-client/src/main.js
@@ -1158,7 +1158,7 @@ function registerBridge() {
// .light.yml) ships no node-runtime extraResource at all; the renderer
// uses this to fall back to the browser-only "create a group" form
// instead of the wizard that assumes a local node it can link right there
- // (create-group-page.js) -- see C:\Users\admin\devel\light-client.md 5.3.
+ // (create-group-page.js).
// Unaffected off win32 and in dev: only a packaged Windows build can even
// be Light, so everything else keeps today's behaviour unconditionally.
function hasBundledNode() {
diff --git a/packages/meshbay-node/tests/test_packaging_win.py b/packages/meshbay-node/tests/test_packaging_win.py
index 877994d..7b44bbe 100644
--- a/packages/meshbay-node/tests/test_packaging_win.py
+++ b/packages/meshbay-node/tests/test_packaging_win.py
@@ -24,16 +24,14 @@ NSH = CLIENT / "build" / "installer.nsh"
MAIN_JS = CLIENT / "src" / "main.js"
PRELOAD_JS = CLIENT / "src" / "preload.js"
-# The "Light" target: Electron client + UI, no bundled node. See
-# C:\Users\admin\devel\light-client.md for the evaluation this implements.
+# The "Light" target: Electron client + UI, no bundled node.
LIGHT_NSH = CLIENT / "build" / "installer-light.nsh"
LIGHT_YML = WIN / "electron-builder.light.yml"
BUILD_WIN_LIGHT = WIN / "build-win-light.ps1"
BUILD_WIN_COMMON = WIN / "build-win-common.ps1"
# The "MSIX" target: same feature set as Full, packaged for Microsoft Store
-# submission instead of NSIS. See C:\Users\admin\devel\msix-installer.md for
-# the plan this implements.
+# submission instead of NSIS.
MSIX_YML = WIN / "electron-builder.msix.yml"
BUILD_WIN_MSIX = WIN / "build-win-msix.ps1"
MSIX_EXTENSIONS_XML = CLIENT / "build" / "appx-extensions.xml"
@@ -683,8 +681,7 @@ def test_ffmpeg_bundling_is_the_default_not_opt_in():
# ------------------------------------------------------------------------
-# The "Light" target: Electron client + UI, no bundled node. See
-# C:\Users\admin\devel\light-client.md for the evaluation. Weak, text-
+# The "Light" target: Electron client + UI, no bundled node. Weak, text-
# reading evidence throughout, same reasoning as the rest of this file:
# there is no electron-builder/PowerShell/NSIS runner here, and it is the
# right kind of evidence for what these guard against -- a config drifting
@@ -921,9 +918,9 @@ def test_create_group_page_falls_back_when_no_node_is_bundled():
# ------------------------------------------------------------------------
# The "MSIX" target: same feature set as Full, packaged for Microsoft Store
-# submission instead of NSIS. See C:\Users\admin\devel\msix-installer.md for
-# the plan. Unlike Light, this target keeps the node runtime and both
-# service scripts -- what changes is packaging format, not what ships.
+# submission instead of NSIS. Unlike Light, this target keeps the node
+# runtime and both service scripts -- what changes is packaging format, not
+# what ships.
# Weak, text-reading evidence throughout, same reasoning as the rest of
# this file: there is no electron-builder/appx runner here either.
# ------------------------------------------------------------------------
@@ -931,9 +928,9 @@ def test_create_group_page_falls_back_when_no_node_is_bundled():
def test_msix_config_is_standalone_and_keeps_the_full_bundle():
"""
Unlike Light, MSIX ships the same node-runtime/ffmpeg/service scripts as
- Full -- an AppX install never elevating (msix-installer.md 4) is not a
- reason to drop the daemon, only to change how its two elevated
- operations get triggered (see the two tests below). --config still
+ Full -- an AppX install never elevating is not a reason to drop the
+ daemon, only to change how its two elevated operations get triggered
+ (see the two tests below). --config still
means this file is read alone (app-builder-lib's getConfig), so it
cannot silently inherit Full's package.json build.nsis or any signing
config meant for NSIS.
@@ -979,11 +976,11 @@ def test_msix_declares_no_csc_on_purpose():
No certificateFile/certificateSubjectName/certificateSha1 anywhere in
this config -- per app-builder-lib's own windowsSignToolManager.js, an
AppX target built with no certificate configured is logged as "Windows
- Store only build" and left unsigned; Microsoft signs it at publish time
- (msix-installer.md 3). Configuring a cert here would be wasted work, not
- extra safety, and would risk this target picking up whatever might one
- day be configured for Full's NSIS signing if it were ever added to this
- file instead of package.json's own build.win.
+ Store only build" and left unsigned; Microsoft signs it at publish
+ time. Configuring a cert here would be wasted work, not extra safety,
+ and would risk this target picking up whatever might one day be
+ configured for Full's NSIS signing if it were ever added to this file
+ instead of package.json's own build.win.
"""
yml = MSIX_YML.read_text(encoding="utf-8")
for forbidden in ("certificateFile", "certificateSubjectName", "certificateSha1"):
@@ -993,10 +990,10 @@ def test_msix_declares_no_csc_on_purpose():
def test_msix_declares_the_network_capabilities_firewall_ps1_would_add():
"""
Matches firewall.ps1's own rules, which are `-Profile Any` (private AND
- public network) -- msix-installer.md 8's #1 open item: whether Windows
- actually auto-exempts a full-trust packaged app on the strength of
- these declarations is unverified until sideloaded, but the declaration
- itself must at least match what the elevated NSIS path grants today, or
+ public network). Whether Windows actually auto-exempts a full-trust
+ packaged app on the strength of these declarations is unverified until
+ sideloaded, but the declaration itself must at least match what the
+ elevated NSIS path grants today, or
an MSIX install would be silently narrower than Full/Light.
"""
yml = MSIX_YML.read_text(encoding="utf-8")
diff --git a/packaging/win/build-win-light.ps1 b/packaging/win/build-win-light.ps1
index 5a8a06e..8b2d807 100644
--- a/packaging/win/build-win-light.ps1
+++ b/packaging/win/build-win-light.ps1
@@ -6,12 +6,11 @@
.DESCRIPTION
The counterpart of build-win.ps1 (Full) for anyone who only wants to
*use* MeshBay -- join groups, chat, browse, download, stream, cast --
- without ever hosting content from this machine. See
- C:\Users\admin\devel\light-client.md for the evaluation this
- implements: a member never needs a local node to begin with (identity
- keys are per node -- the *host's* node, not the joiner's), so Light is
- the existing browser-only usage pattern wrapped in the Electron shell,
- minus the frozen meshbay-node.exe / ffmpeg / autostart bundle.
+ without ever hosting content from this machine. A member never needs a
+ local node to begin with (identity keys are per node -- the *host's*
+ node, not the joiner's), so Light is the existing browser-only usage
+ pattern wrapped in the Electron shell, minus the frozen
+ meshbay-node.exe / ffmpeg / autostart bundle.
Steps 1-4 are identical to build-win.ps1 (build-win-common.ps1). Step 5,
PyInstaller freezing a node runtime, does not happen at all -- that is
diff --git a/packaging/win/build-win-msix.ps1 b/packaging/win/build-win-msix.ps1
index 9f7f667..2aeb2b8 100644
--- a/packaging/win/build-win-msix.ps1
+++ b/packaging/win/build-win-msix.ps1
@@ -4,15 +4,14 @@
+ ffmpeg), packaged for Microsoft Store submission instead of NSIS.
.DESCRIPTION
- See C:\Users\admin\devel\msix-installer.md for the plan this implements.
Unlike Light, this target does NOT drop anything from Full's feature
set -- it exists because Store certification of the NSIS "MSI/EXE"
submission failed for a reason MSIX sidesteps entirely (an unsigned,
internet-downloaded installer never gets a chance to run under
- Microsoft's own unattended validation bot; see msix-installer.md §2),
- not because the bundled node/service-mode/autostart machinery needed
- removing. The one real change is *when* the two elevated operations
- (firewall rule, service-mode install) can happen: an AppX/MSIX install
+ Microsoft's own unattended validation bot), not because the bundled
+ node/service-mode/autostart machinery needed removing. The one real
+ change is *when* the two elevated operations (firewall rule,
+ service-mode install) can happen: an AppX/MSIX install
never elevates, so neither can run at install time the way
build/installer.nsh's customInstall macro does. Both already have an
elevation path that does not depend on the installer at all --
@@ -126,7 +125,6 @@ if ($pkg) {
Write-Host "OK package: $($pkg.FullName)" -ForegroundColor Green
Write-Host (" ({0:N0} MB)" -f ($pkg.Length / 1MB))
Write-Host " unsigned by design -- Microsoft signs it at publish time" -ForegroundColor DarkGray
- Write-Host " (msix-installer.md 3)." -ForegroundColor DarkGray
}
else {
Write-Host "!! no *.appx found in $Client\dist-msix" -ForegroundColor Red
diff --git a/packaging/win/electron-builder.light.yml b/packaging/win/electron-builder.light.yml
index 155ffa6..502a3c5 100644
--- a/packaging/win/electron-builder.light.yml
+++ b/packaging/win/electron-builder.light.yml
@@ -10,9 +10,6 @@
# Invoked from packages/meshbay-client (see build-win-light.ps1), so every
# relative path below resolves the same way package.json's `build` field's
# already do.
-#
-# See C:\Users\admin\devel\light-client.md for the evaluation this
-# implements.
appId: org.meshbay.client.light
productName: MeshBay Light
diff --git a/packaging/win/electron-builder.msix.yml b/packaging/win/electron-builder.msix.yml
index 5e45598..5460267 100644
--- a/packaging/win/electron-builder.msix.yml
+++ b/packaging/win/electron-builder.msix.yml
@@ -1,9 +1,8 @@
# Standalone electron-builder config for the "MSIX" Windows target: same
# feature set as Full (bundled node + ffmpeg), packaged for Microsoft Store
-# submission instead of NSIS. See C:\Users\admin\devel\msix-installer.md for
-# the plan this implements -- read that first, especially §4 (why the
-# installer can carry none of installer.nsh's elevation logic: an AppX/MSIX
-# install never elevates, by design) and §8 (what is still unverified here).
+# submission instead of NSIS. The package carries none of installer.nsh's
+# elevation logic: an AppX/MSIX install never elevates, by design. What is
+# still unverified here is called out at each declaration below.
#
# Deliberately NOT layered onto package.json's `build` field, same reasoning
# as electron-builder.light.yml: --config reads ONLY this file, so nothing
@@ -22,8 +21,8 @@
# windowsSignToolManager.js (computePublisherName), an AppX target built
# with no certificate configured is logged as "Windows Store only build" and
# left unsigned, with `publisher` written into the manifest as-is. Microsoft
-# signs the package itself at publish time (msix-installer.md §3) -- signing
-# it here first would be pointless work, not extra safety.
+# signs the package itself at publish time -- signing it here first would be
+# pointless work, not extra safety.
appId: org.meshbay.client
productName: MeshBay
@@ -102,9 +101,9 @@ appx:
# firewall.ps1's own rules, which are `-Profile Any` (private AND public
# network). Whether Windows Firewall actually auto-exempts a full-trust
# packaged app on the strength of these declarations -- eliminating the
- # elevation firewall.ps1 exists for entirely -- is msix-installer.md §8's
- # #1 open item: verify live before relying on it, the declaration alone
- # only proves the manifest is well-formed.
+ # elevation firewall.ps1 exists for entirely -- is an open item: verify
+ # live before relying on it, the declaration alone only proves the
+ # manifest is well-formed.
capabilities:
- internetClientServer
- privateNetworkClientServer
@@ -116,7 +115,6 @@ appx:
# switch to point it at a different bundled exe). build/appx-extensions.xml
# declares that extension by hand for exactly this reason. Whether
# Windows actually launches a *non-primary* bundled exe through this
- # mechanism is the other open item in msix-installer.md §8 -- untested
- # until sideloaded.
+ # mechanism is the other open item -- untested until sideloaded.
customExtensionsPath: build/appx-extensions.xml
showNameOnTiles: false