theseus/nsis/installer.nsh

91 lines
3.6 KiB
NSIS
Raw Normal View History

Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
; Theseus Navigator NSIS include — bundles Ariadne's Thread as an opt-out.
;
Ship Theseus 0.1.1 2a278494 (Ariadne checkbox page + Startpage POST fix) Setup 2a2784943006b0c4f52e22cc2ec51a43e8007497d90da022798e739d83f805f0 Portable 1d9cfa6467d66604ef2f672969afdc288f46608913c35658f9c7466820ab01df Ariadne install UX: promoted from an end-of-install MessageBox popup to a dedicated wizard page. nsis/installer.nsh replaces the MessageBox customInstall with a `Page custom` (nsDialogs) that shows FIRST in the install flow (electron-builder's INCLUDE hook is placed above its own MUI_PAGE_* inserts and NSIS processes page directives in file order — that is the earliest hook we have without editing the template). Framed as "Options" so it reads naturally as a preamble. The page: Header: "Optional add-ons" Body: A 4-line explanation of Ariadne's Thread and the trade-off. Checkbox: "Install Ariadne's Thread (recommended)" — pre-checked. Footer: Notes the UAC prompt and that Theseus install continues. Skipped entirely (Abort) if Ariadne is already installed. State is saved from AriadnePageLeave into $InstallAriadneFlag; customInstall runs the chain-installer iff BST_CHECKED. Uninstall side unchanged (still MessageBox — a full custom uninstall page would be overkill for one Y/N during a rare event). Also carries 1e5d670: don't re-route same-origin navigations through navigateTab. Was silently breaking every site whose in-page form POSTs — Startpage's search box submits to /do/search via POST, and navigateTab -> loadURL always GETs, dropping the body. Same-origin navigations now stay on Chromium's native path. Deployed: scp + sia-upload of both trees. Verified HEAD 200 on the installer, live manifest reads 0.1.1 2026-08-31, VPS hashes match. 0.1.0 (never deployed for long — same-day iteration) is preserved in _prev/ for rollback.
2026-08-31 05:49:04 +02:00
; UI: a dedicated wizard page with a real checkbox (pre-checked) instead of a
; MessageBox popup. Shown FIRST in the install flow because electron-builder's
; template places our `!include` before its own MUI_PAGE_* inserts and NSIS
; processes page directives in file order — so this is the earliest hook
; we have without editing the template. Framed as "Options" so it reads
; naturally as a preamble before the standard Welcome/License/Directory pages.
; Skipped entirely (`Abort`) if Ariadne's Thread is already installed, so
; upgrades of Theseus don't nag.
Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
;
Ship Theseus 0.1.1 2a278494 (Ariadne checkbox page + Startpage POST fix) Setup 2a2784943006b0c4f52e22cc2ec51a43e8007497d90da022798e739d83f805f0 Portable 1d9cfa6467d66604ef2f672969afdc288f46608913c35658f9c7466820ab01df Ariadne install UX: promoted from an end-of-install MessageBox popup to a dedicated wizard page. nsis/installer.nsh replaces the MessageBox customInstall with a `Page custom` (nsDialogs) that shows FIRST in the install flow (electron-builder's INCLUDE hook is placed above its own MUI_PAGE_* inserts and NSIS processes page directives in file order — that is the earliest hook we have without editing the template). Framed as "Options" so it reads naturally as a preamble. The page: Header: "Optional add-ons" Body: A 4-line explanation of Ariadne's Thread and the trade-off. Checkbox: "Install Ariadne's Thread (recommended)" — pre-checked. Footer: Notes the UAC prompt and that Theseus install continues. Skipped entirely (Abort) if Ariadne is already installed. State is saved from AriadnePageLeave into $InstallAriadneFlag; customInstall runs the chain-installer iff BST_CHECKED. Uninstall side unchanged (still MessageBox — a full custom uninstall page would be overkill for one Y/N during a rare event). Also carries 1e5d670: don't re-route same-origin navigations through navigateTab. Was silently breaking every site whose in-page form POSTs — Startpage's search box submits to /do/search via POST, and navigateTab -> loadURL always GETs, dropping the body. Same-origin navigations now stay on Chromium's native path. Deployed: scp + sia-upload of both trees. Verified HEAD 200 on the installer, live manifest reads 0.1.1 2026-08-31, VPS hashes match. 0.1.0 (never deployed for long — same-day iteration) is preserved in _prev/ for rollback.
2026-08-31 05:49:04 +02:00
; The uninstall side stays a symmetric MessageBox (a full custom uninstaller
; page is overkill for one yes/no during a rare event).
!include "nsDialogs.nsh"
!include "LogicLib.nsh"
!include "MUI2.nsh"
Var AriadneCheckbox
Var InstallAriadneFlag
Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
!define ARIADNE_INSTALLER "AriadneResolver-Setup-0.1.0.exe"
!define ARIADNE_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\{7E7A5F1C-3B4E-4C8A-9E1D-ARIADNERSLVR}_is1"
Ship Theseus 0.1.1 2a278494 (Ariadne checkbox page + Startpage POST fix) Setup 2a2784943006b0c4f52e22cc2ec51a43e8007497d90da022798e739d83f805f0 Portable 1d9cfa6467d66604ef2f672969afdc288f46608913c35658f9c7466820ab01df Ariadne install UX: promoted from an end-of-install MessageBox popup to a dedicated wizard page. nsis/installer.nsh replaces the MessageBox customInstall with a `Page custom` (nsDialogs) that shows FIRST in the install flow (electron-builder's INCLUDE hook is placed above its own MUI_PAGE_* inserts and NSIS processes page directives in file order — that is the earliest hook we have without editing the template). Framed as "Options" so it reads naturally as a preamble. The page: Header: "Optional add-ons" Body: A 4-line explanation of Ariadne's Thread and the trade-off. Checkbox: "Install Ariadne's Thread (recommended)" — pre-checked. Footer: Notes the UAC prompt and that Theseus install continues. Skipped entirely (Abort) if Ariadne is already installed. State is saved from AriadnePageLeave into $InstallAriadneFlag; customInstall runs the chain-installer iff BST_CHECKED. Uninstall side unchanged (still MessageBox — a full custom uninstall page would be overkill for one Y/N during a rare event). Also carries 1e5d670: don't re-route same-origin navigations through navigateTab. Was silently breaking every site whose in-page form POSTs — Startpage's search box submits to /do/search via POST, and navigateTab -> loadURL always GETs, dropping the body. Same-origin navigations now stay on Chromium's native path. Deployed: scp + sia-upload of both trees. Verified HEAD 200 on the installer, live manifest reads 0.1.1 2026-08-31, VPS hashes match. 0.1.0 (never deployed for long — same-day iteration) is preserved in _prev/ for rollback.
2026-08-31 05:49:04 +02:00
Page custom AriadnePageCreate AriadnePageLeave
Function AriadnePageCreate
; Skip the page entirely if Ariadne's Thread is already on this machine —
; nothing to offer. Registry lookup uses HKLM 64-bit view because Ariadne's
; Inno script sets ArchitecturesInstallIn64BitMode=x64compatible.
Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
SetRegView 64
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
SetRegView lastused
Ship Theseus 0.1.1 2a278494 (Ariadne checkbox page + Startpage POST fix) Setup 2a2784943006b0c4f52e22cc2ec51a43e8007497d90da022798e739d83f805f0 Portable 1d9cfa6467d66604ef2f672969afdc288f46608913c35658f9c7466820ab01df Ariadne install UX: promoted from an end-of-install MessageBox popup to a dedicated wizard page. nsis/installer.nsh replaces the MessageBox customInstall with a `Page custom` (nsDialogs) that shows FIRST in the install flow (electron-builder's INCLUDE hook is placed above its own MUI_PAGE_* inserts and NSIS processes page directives in file order — that is the earliest hook we have without editing the template). Framed as "Options" so it reads naturally as a preamble. The page: Header: "Optional add-ons" Body: A 4-line explanation of Ariadne's Thread and the trade-off. Checkbox: "Install Ariadne's Thread (recommended)" — pre-checked. Footer: Notes the UAC prompt and that Theseus install continues. Skipped entirely (Abort) if Ariadne is already installed. State is saved from AriadnePageLeave into $InstallAriadneFlag; customInstall runs the chain-installer iff BST_CHECKED. Uninstall side unchanged (still MessageBox — a full custom uninstall page would be overkill for one Y/N during a rare event). Also carries 1e5d670: don't re-route same-origin navigations through navigateTab. Was silently breaking every site whose in-page form POSTs — Startpage's search box submits to /do/search via POST, and navigateTab -> loadURL always GETs, dropping the body. Same-origin navigations now stay on Chromium's native path. Deployed: scp + sia-upload of both trees. Verified HEAD 200 on the installer, live manifest reads 0.1.1 2026-08-31, VPS hashes match. 0.1.0 (never deployed for long — same-day iteration) is preserved in _prev/ for rollback.
2026-08-31 05:49:04 +02:00
StrCmp $R0 "" ariadne_page_show 0
StrCpy $InstallAriadneFlag "0"
Abort
Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
Ship Theseus 0.1.1 2a278494 (Ariadne checkbox page + Startpage POST fix) Setup 2a2784943006b0c4f52e22cc2ec51a43e8007497d90da022798e739d83f805f0 Portable 1d9cfa6467d66604ef2f672969afdc288f46608913c35658f9c7466820ab01df Ariadne install UX: promoted from an end-of-install MessageBox popup to a dedicated wizard page. nsis/installer.nsh replaces the MessageBox customInstall with a `Page custom` (nsDialogs) that shows FIRST in the install flow (electron-builder's INCLUDE hook is placed above its own MUI_PAGE_* inserts and NSIS processes page directives in file order — that is the earliest hook we have without editing the template). Framed as "Options" so it reads naturally as a preamble. The page: Header: "Optional add-ons" Body: A 4-line explanation of Ariadne's Thread and the trade-off. Checkbox: "Install Ariadne's Thread (recommended)" — pre-checked. Footer: Notes the UAC prompt and that Theseus install continues. Skipped entirely (Abort) if Ariadne is already installed. State is saved from AriadnePageLeave into $InstallAriadneFlag; customInstall runs the chain-installer iff BST_CHECKED. Uninstall side unchanged (still MessageBox — a full custom uninstall page would be overkill for one Y/N during a rare event). Also carries 1e5d670: don't re-route same-origin navigations through navigateTab. Was silently breaking every site whose in-page form POSTs — Startpage's search box submits to /do/search via POST, and navigateTab -> loadURL always GETs, dropping the body. Same-origin navigations now stay on Chromium's native path. Deployed: scp + sia-upload of both trees. Verified HEAD 200 on the installer, live manifest reads 0.1.1 2026-08-31, VPS hashes match. 0.1.0 (never deployed for long — same-day iteration) is preserved in _prev/ for rollback.
2026-08-31 05:49:04 +02:00
ariadne_page_show:
!insertmacro MUI_HEADER_TEXT "Optional add-ons" "Choose whether to also install Ariadne's Thread alongside Theseus Navigator."
Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
Ship Theseus 0.1.1 2a278494 (Ariadne checkbox page + Startpage POST fix) Setup 2a2784943006b0c4f52e22cc2ec51a43e8007497d90da022798e739d83f805f0 Portable 1d9cfa6467d66604ef2f672969afdc288f46608913c35658f9c7466820ab01df Ariadne install UX: promoted from an end-of-install MessageBox popup to a dedicated wizard page. nsis/installer.nsh replaces the MessageBox customInstall with a `Page custom` (nsDialogs) that shows FIRST in the install flow (electron-builder's INCLUDE hook is placed above its own MUI_PAGE_* inserts and NSIS processes page directives in file order — that is the earliest hook we have without editing the template). Framed as "Options" so it reads naturally as a preamble. The page: Header: "Optional add-ons" Body: A 4-line explanation of Ariadne's Thread and the trade-off. Checkbox: "Install Ariadne's Thread (recommended)" — pre-checked. Footer: Notes the UAC prompt and that Theseus install continues. Skipped entirely (Abort) if Ariadne is already installed. State is saved from AriadnePageLeave into $InstallAriadneFlag; customInstall runs the chain-installer iff BST_CHECKED. Uninstall side unchanged (still MessageBox — a full custom uninstall page would be overkill for one Y/N during a rare event). Also carries 1e5d670: don't re-route same-origin navigations through navigateTab. Was silently breaking every site whose in-page form POSTs — Startpage's search box submits to /do/search via POST, and navigateTab -> loadURL always GETs, dropping the body. Same-origin navigations now stay on Chromium's native path. Deployed: scp + sia-upload of both trees. Verified HEAD 200 on the installer, live manifest reads 0.1.1 2026-08-31, VPS hashes match. 0.1.0 (never deployed for long — same-day iteration) is preserved in _prev/ for rollback.
2026-08-31 05:49:04 +02:00
nsDialogs::Create 1018
Pop $0
StrCmp $0 "error" ariadne_page_bail 0
${NSD_CreateLabel} 0 0 100% 44u "Ariadne's Thread is a small system-wide resolver that lets Bitcoin Cash names (.bch, .x, ...) work in Chrome, Edge, Firefox, and every other browser on this machine.$\r$\n$\r$\nWithout it, only Theseus resolves these names. You can install or remove it later."
Pop $0
${NSD_CreateCheckbox} 0 60u 100% 12u "Install Ariadne's Thread (recommended)"
Pop $AriadneCheckbox
${NSD_Check} $AriadneCheckbox
${NSD_CreateLabel} 0 80u 100% 20u "It runs a UAC (admin) prompt of its own during install. Theseus Navigator's own setup continues after this page."
Pop $0
nsDialogs::Show
Return
ariadne_page_bail:
StrCpy $InstallAriadneFlag "0"
Abort
FunctionEnd
Function AriadnePageLeave
${NSD_GetState} $AriadneCheckbox $InstallAriadneFlag
FunctionEnd
!macro customInstall
; Read the state saved from AriadnePageLeave. BST_CHECKED == 1.
${If} $InstallAriadneFlag == ${BST_CHECKED}
; Ariadne's Inno installer runs its own UAC prompt (PrivilegesRequired=admin).
; ExecWait blocks until Ariadne finishes or the user cancels UAC; either
; way, Theseus install continues normally afterwards.
ExecWait '"$INSTDIR\resources\${ARIADNE_INSTALLER}" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
${EndIf}
Ship Theseus 0.1.0 510f81fd (bundle Ariadne's Thread) Setup 510f81fd5e9b4287a55817aaf5080e5d46005eecb5359eb06892040cf8d10d87 Portable 96bfb469f2d9dfe11606aa10db92febdfce73df980eec475ab285f2334925158 Bundled AriadneResolver-Setup-0.1.0.exe (9ab725be, unchanged 0.1.0) Version 0.0.9 -> 0.1.0 marks the "Silent Mode = one install" milestone: Theseus and the system-wide Ariadne resolver now ship together. nsis/installer.nsh (electron-builder `nsis.include`) hooks two macros: customInstall -- If Ariadne's Thread is NOT already installed, MessageBox MB_YESNO|MB_DEFBUTTON1 asks whether to install it now. On Yes, chain-invokes the bundled Inno installer with /VERYSILENT /SUPPRESSMSGBOXES /NORESTART (Ariadne raises its own UAC because Inno declares PrivilegesRequired=admin). Ariadne being present already suppresses the prompt on upgrades. customUnInstall -- Reads Ariadne's UninstallString from HKLM 64-bit Uninstall\{...ARIADNERSLVR}_is1. If present, symmetric MessageBox asks whether to remove it too, then ExecWaits the string with the same silent flags. Skips silently if Ariadne isn't installed. Registry probe uses SetRegView 64 (Ariadne installs 64-bit per ArchitecturesInstallIn64BitMode=x64compatible in its .iss). Reset to `lastused` after each probe to leave electron-builder's own state unchanged. Package changes: - version 0.0.9 -> 0.1.0 - build.extraResources adds build/AriadneResolver-Setup-0.1.0.exe (unpacked to $INSTDIR/resources/); build/ stays gitignored - the binary is regenerated by copying from AriadneResolver's Inno output - build.nsis.include -> nsis/installer.nsh Size: installer 122 MB (+25 MB for bundled Ariadne), portable 122 MB. Portable also carries the Ariadne exe as a side effect of extraResources being global; portable can't invoke an installer, so the 25 MB is dead weight there - future rev could scope extraResources per-target. Site updates: tools page + releases page + theseus.x landing all reflect the 0.1.0 hashes, sizes, and the new "Ariadne's Thread bundled" line. tools page's "Coming to the Windows installer" footnote is rewritten past tense because it landed. Deployed: - scp installers + releases-manifest.json to /opt/silent-mode/dl/ - scp tools/ + releases/ index pages to /opt/silent-mode/site/ - sia-upload of ../site and ../site-theseus-x - verified HEAD 200, manifest reports 0.1.0 2026-08-31, VPS hashes match local Existing 0.0.6 (or newer) installs will surface 0.1.0 in the update chip on next launch.
2026-08-31 05:07:34 +02:00
!macroend
!macro customUnInstall
; Only offer to remove Ariadne if it's actually installed.
SetRegView 64
ReadRegStr $R0 HKLM "${ARIADNE_UNINST_KEY}" "UninstallString"
SetRegView lastused
StrCmp $R0 "" ariadne_skip_uninstall
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1 \
"Also uninstall Ariadne's Thread?$\r$\n$\r$\nRemoving it makes Bitcoin Cash names stop resolving in Chrome, Edge, Firefox, and every other browser on this machine. (Theseus's own uninstall does not depend on this — say No to keep the system-wide resolver.)" \
IDNO ariadne_skip_uninstall
ExecWait '$R0 /VERYSILENT /SUPPRESSMSGBOXES /NORESTART'
ariadne_skip_uninstall:
!macroend