Skip to content

chore(release): reconcile v1.0.1/v1.0.2 into main + cut v1.0.3#5

Merged
mmoollee101-lab merged 3 commits into
mainfrom
chore/reconcile-releases
Jul 16, 2026
Merged

chore(release): reconcile v1.0.1/v1.0.2 into main + cut v1.0.3#5
mmoollee101-lab merged 3 commits into
mainfrom
chore/reconcile-releases

Conversation

@mmoollee101-lab

Copy link
Copy Markdown
Owner

Why

The published GitHub Releases v1.0.1 and v1.0.2 were built from a line that was never merged into main — so main was missing the shipped Electron reliability fixes and the NSIS installer, while the releases were missing the recent font work. git merge-base --is-ancestor v1.0.2 main was false. This reconciles both and cuts v1.0.3.

What

Merges the v1.0.2 tag into main (real merge commit, so the release commits enter history) and resolves conflicts to keep both sides:

Then finalizes the release: version1.0.3, CHANGELOG [Unreleased][1.0.3] with [1.0.2]/[1.0.1] history restored.

Conflict resolution

  • src/convert.js — kept the woff2 helpers and launchBrowser; both puppeteer.launch call sites use launchBrowser.
  • CHANGELOG.md — merged both histories, ordered 1.0.3 → 1.0.2 → 1.0.1 → 1.0.0.
  • package.json — NSIS build config + test/test:fonts scripts + version 1.0.3.

Verify

  • npm test → 2 pass / 0 fail. node --check clean on convert.js / electron/main.js / preload.js. package.json valid, version 1.0.3.

⚠️ Merge with a merge commit (not squash) so the v1.0.1/v1.0.2 commits stay in main's ancestry.

Building/publishing the v1.0.3 installer asset is a separate step (to be confirmed).

mmoollee101-lab and others added 3 commits June 18, 2026 21:18
…mium launch (v1.0.1)

The portable desktop app showed "Error invoking remote method 'h2p:convert':
[object Object]" on any failure: the IPC layer rejected with a plain object,
which Electron can't serialize, so the real cause was lost. Errors are now
carried as a tagged result and re-thrown in the renderer with the original
message/code/candidates intact.

Also harden first-run reliability: headless Chromium launches with a longer
startup timeout (antivirus often scans the freshly-unpacked ~240MB Chromium on
first run, exceeding Puppeteer's default 30s and surfacing as a failed convert),
and a genuine launch failure now throws a clear, actionable message.

Adds an env-gated headless self-test (H2P_SELFTEST=<file.html>) for diagnostics.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The one-file portable re-unpacked ~650 MB (Electron + bundled Chromium) to a
temp folder on EVERY launch, so the window took a long time to appear and looked
suspicious. Switch the Windows target to an NSIS installer (per-user, no admin,
assisted UI, Start-menu/Desktop shortcuts, uninstaller): it unpacks once at
install time and every launch is near-instant.

No conversion-engine changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
#	src/convert.js
@mmoollee101-lab
mmoollee101-lab merged commit 0d20684 into main Jul 16, 2026
4 checks passed
@mmoollee101-lab
mmoollee101-lab deleted the chore/reconcile-releases branch July 16, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant