Skip to content

chore: enable windows and linux builds - #355

Merged
Ziinc merged 4 commits into
mainfrom
claude/pr-83-rebase-conflicts-661glo
Aug 26, 2026
Merged

chore: enable windows and linux builds#355
Ziinc merged 4 commits into
mainfrom
claude/pr-83-rebase-conflicts-661glo

Conversation

@Ziinc

@Ziinc Ziinc commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

This PR extends Treq from a macOS-only application to support Windows and Linux platforms.

Summary

Treq is now a cross-platform desktop application available for macOS, Windows, and Linux. This includes updates to CI/CD pipelines, build configurations, documentation, and UI to reflect multi-platform support.

Key Changes

CI/CD & Build Infrastructure:

  • Added defaults.run.shell: bash to both CI and Release workflows for consistent shell behavior across platforms
  • Extended CI matrix to test on windows-latest for both JavaScript and Rust tasks
  • Updated jj CLI installation script to handle Windows-specific binary format (.zip and .exe) vs Unix (.tar.gz)
  • Modified cache paths from .ci-bin/jj to .ci-bin to support multiple binaries
  • Added Windows target (x86_64-pc-windows-msvc) to jj CLI installation logic
  • Enabled Ubuntu and Windows builds in Release workflow with appropriate Rust targets
  • Added Linux dependency installation step for webkit and build tools
    Documentation:
  • Updated installation guide to list all supported platforms with their release targets (aarch64-apple-darwin, x86_64-apple-darwin, x86_64-pc-windows-msvc, x86_64-unknown-linux-gnu)
  • Updated keyboard shortcut documentation to specify platform-specific shortcuts (Cmd+N for macOS, Ctrl+N for Windows/Linux)
  • Updated intro and contributing docs to reflect multi-platform nature instead of macOS-specific language
    UI & Web:
  • Added Windows and Linux platform icons to homepage header
  • Updated structured data schema to list all three operating systems instead of just macOS
  • Added e2e tests to verify platform availability display and installation target documentation
    Content:
  • Updated llms.txt to describe Treq as a cross-platform desktop app
  • Removed macOS-specific framing from marketing and technical documentation

Implementation Details

  • Windows binary handling uses .zip format with .exe extension, while Unix platforms continue using .tar.gz
  • All shell scripts now explicitly use bash via workflow defaults for cross-platform compatibility
  • Platform-specific build dependencies (Linux webkit libraries) are conditionally installed
  • Documentation now consistently mentions all three platforms while calling out platform-specific differences where relevant
    https://claude.ai/code/session_01L5cpnc6oDUjrcNPh3jysj2

Reapply PR #83's changes onto current main (the original branch had
diverged with no common ancestor, so rebase wasn't possible):
add Windows/Linux CI matrix entries and jj install support, add
Ubuntu/Windows release targets, and update docs and homepage for
cross-platform availability.
@Ziinc Ziinc changed the title Add Windows and Linux support to Treq chore: enable windows and linux builds Aug 26, 2026
claude added 2 commits August 26, 2026 14:45
Direct page.goto() to an internal URL is disallowed by the
no-e2e-direct-url-goto ast-grep rule; navigate via the Get Started
link instead, matching the existing test's pattern.
Inline VAR=value env syntax in the npm script is POSIX-only and
fails under npm's cmd.exe shell on Windows. Move DEBUG_PRINT_LIMIT
into vitest.unit.config.ts's test.env instead, which works on every
platform.
@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Cold Rust builds on Windows (no warm cache yet) run past the 15
minute timeout that works fine on Linux/macOS. Bump it to 30.

Ziinc commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

js / test:integration / ubuntu-22.04 has failed twice in a row (both before and after a re-run) with the same unhandled promise rejection:

Error: Failed to get workspace: Failed to open local db: unable to open database file: /tmp/treq-fixture-copy-.../.treq/local.db

originating from test/integration/workspace/discard-changes.test.tsx. Both runs report all 261 tests passing — the process only exits non-zero because of this one unhandled rejection, which looks like a teardown race (a temp fixture's SQLite db opened just after the fixture directory was cleaned up).

This PR's diff doesn't touch discard-changes.test.tsx, the db/workspace layer, or anything in the integration test suite — only CI workflow YAML, docs, the homepage platform icons, and one e2e nav spec. I don't have a way to confirm whether this also reproduces on main right now (no recent main CI run available to check, and building the NAPI addon locally to test in isolation wasn't practical here), but given the diff's scope this is very unlikely to be something this PR introduced. I've already used my one re-run for this failure, so I'm not spending another on it — flagging it here rather than widening this PR to fix an unrelated pre-existing race.


Generated by Claude Code

@Ziinc
Ziinc merged commit 951c2f8 into main Aug 26, 2026
3 of 5 checks passed
@Ziinc
Ziinc deleted the claude/pr-83-rebase-conflicts-661glo branch August 26, 2026 20:00
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.

2 participants