diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ba64d7833..08fb442ff 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,17 +1,27 @@
name: CI
+defaults:
+ run:
+ shell: bash
+
on:
push:
branches: [main]
paths:
- "src/**"
- "src-tauri/**"
+ - "crates/**"
+ - "package.json"
+ - "package-lock.json"
- ".github/workflows/ci.yml"
pull_request:
branches: [main]
paths:
- "src/**"
- "src-tauri/**"
+ - "crates/**"
+ - "package.json"
+ - "package-lock.json"
- ".github/workflows/ci.yml"
jobs:
@@ -33,6 +43,12 @@ jobs:
- platform: macos-latest
kind: rust
task: test
+ - platform: windows-latest
+ kind: js
+ task: test
+ - platform: windows-latest
+ kind: rust
+ task: test
name: ${{ matrix.kind }} / ${{ matrix.task }} / ${{ matrix.platform }}
runs-on: ${{ matrix.platform }}
@@ -56,21 +72,21 @@ jobs:
uses: cargo-bins/cargo-binstall@main
- name: install dependencies (ubuntu only)
- if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above.
+ if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y git
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install git and jj CLI (macOS)
- if: matrix.platform == 'macos-latest'
+ if: runner.os == 'macOS'
run: |
brew update
brew install git jj
echo "$(brew --prefix)/bin" >> $GITHUB_PATH
- - name: Install jj CLI (ubuntu)
- if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above.
+ - name: Install jj CLI (non-macOS)
+ if: runner.os != 'macOS'
run: |
cargo binstall --strategies crate-meta-data jj-cli
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index c448e3e03..97264eece 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,5 +1,9 @@
name: Release
+defaults:
+ run:
+ shell: bash
+
on:
workflow_dispatch:
@@ -59,15 +63,20 @@ jobs:
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
+ target: "aarch64-apple-darwin"
args: "--target aarch64-apple-darwin"
- platform: "macos-latest" # for Intel based macs.
+ target: "x86_64-apple-darwin"
args: "--target x86_64-apple-darwin"
# - platform: "macos-latest"
+ # target: "universal-apple-darwin"
# args: "--target universal-apple-darwin"
- # - platform: 'ubuntu-22.04'
- # args: ''
- # - platform: 'windows-latest'
- # args: ''
+ - platform: "ubuntu-22.04"
+ target: "x86_64-unknown-linux-gnu"
+ args: "--target x86_64-unknown-linux-gnu"
+ - platform: "windows-latest"
+ target: "x86_64-pc-windows-msvc"
+ args: "--target x86_64-pc-windows-msvc"
runs-on: ${{ matrix.platform }}
environment: prod
steps:
@@ -82,7 +91,13 @@ jobs:
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
- targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
+ targets: ${{ matrix.target }}
+
+ - name: install dependencies (ubuntu only)
+ if: runner.os == 'Linux'
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- uses: Swatinem/rust-cache@v2
with:
diff --git a/web/docs/getting-started/installation.mdx b/web/docs/getting-started/installation.mdx
index 062442a8e..0998de66f 100644
--- a/web/docs/getting-started/installation.mdx
+++ b/web/docs/getting-started/installation.mdx
@@ -6,7 +6,14 @@ sidebar_position: 1
_How to install and set up Treq on your machine._
-Download the latest version for macOS from the GitHub Releases page.
+Download the latest version for your platform from the GitHub Releases page.
+
+| Platform | Release target |
+|---|---|
+| macOS on Apple silicon | `aarch64-apple-darwin` |
+| macOS on Intel | `x86_64-apple-darwin` |
+| Windows | `x86_64-pc-windows-msvc` |
+| Linux | `x86_64-unknown-linux-gnu` |
[View Releases](https://github.com/Ziinc/treq/releases)
@@ -24,7 +31,7 @@ Click **Select Repository** or the folder icon, and navigate to a Git repository
## Creating Your First Workspace
-1. Click **New Workspace** (or press `Cmd+N`) to open the creation dialog.
+1. Click **New Workspace**. You can also press `Cmd+N` on macOS or `Ctrl+N` on Windows and Linux.
2. Fill in a plan title describing what you're working on.
3. Adjust the branch name if needed.
4. Click **Create Workspace** to save.
diff --git a/web/docs/intro.md b/web/docs/intro.md
index 2c46f6085..ed75901a7 100644
--- a/web/docs/intro.md
+++ b/web/docs/intro.md
@@ -5,7 +5,7 @@ slug: /
# Treq
-_Technical overview of Treq's workspace model, runtime behavior, and macOS-specific assumptions._
+_Technical overview of Treq's workspace model and runtime behavior on macOS, Windows, and Linux._
Treq is a local review and workspace manager for Git repositories. You open a Git repo, create workspaces for parallel work, and push through normal Git remotes. You do not need to know [Jujutsu](https://jj-vcs.github.io/jj/latest/) to use Treq.
diff --git a/web/docs/reference/contributing.md b/web/docs/reference/contributing.md
index d0faee51f..6841a071e 100644
--- a/web/docs/reference/contributing.md
+++ b/web/docs/reference/contributing.md
@@ -76,7 +76,7 @@ Do not mix unrelated cleanup into feature work. Treq has several layers with dif
Docs follow the local style guide in `web/STYLE_GUIDE.md`. Write direct technical prose. Avoid marketing language. Use tables for dense reference data.
-Public docs should describe supported macOS behavior unless another platform is explicitly documented. Avoid exposing implementation details that users cannot act on.
+Public docs should describe supported macOS, Windows, and Linux behavior. Call out platform-specific behavior when it differs. Avoid exposing implementation details that users cannot act on.
## Learn More
diff --git a/web/e2e/navigation.spec.ts b/web/e2e/navigation.spec.ts
index 2b957072c..945c8b8bb 100644
--- a/web/e2e/navigation.spec.ts
+++ b/web/e2e/navigation.spec.ts
@@ -5,6 +5,13 @@ const sidebar = (page: Page) => page.getByRole('navigation', { name: 'Docs sideb
const footer = (page: Page) => page.getByRole('contentinfo');
test.describe('Navbar navigation', () => {
+ test('shows desktop platform availability', async ({ page }) => {
+ await page.goto('/');
+ await expect(page.getByLabel('macOS')).toBeVisible();
+ await expect(page.getByLabel('Windows')).toBeVisible();
+ await expect(page.getByLabel('Linux')).toBeVisible();
+ });
+
test('Learn link navigates to learn section', async ({ page }) => {
await page.goto('/');
await nav(page).getByRole('link', { name: 'Learn' }).click();
@@ -23,6 +30,12 @@ test.describe('Navbar navigation', () => {
await expect(page.getByRole('heading', { name: 'Installation and Quickstart', level: 1 })).toBeVisible();
});
+ test('installation lists each release target', async ({ page }) => {
+ await page.goto('/docs/getting-started/installation');
+ await expect(page.getByRole('cell', { name: 'x86_64-pc-windows-msvc' })).toBeVisible();
+ await expect(page.getByRole('cell', { name: 'x86_64-unknown-linux-gnu' })).toBeVisible();
+ });
+
test('logo navigates home from a docs page', async ({ page }) => {
await page.goto('/');
await nav(page).getByRole('link', { name: 'Learn' }).click();
diff --git a/web/src/pages/index.tsx b/web/src/pages/index.tsx
index 26f9dda91..77c96faca 100644
--- a/web/src/pages/index.tsx
+++ b/web/src/pages/index.tsx
@@ -63,6 +63,12 @@ function HomepageHeader() {
+
+
@@ -322,7 +328,7 @@ const SOFTWARE_APP_SCHEMA = {
'AI Workspace Manager for busy developers. The Open Source Graphite Alternative.',
url: 'https://treq.dev',
applicationCategory: 'DeveloperApplication',
- operatingSystem: 'macOS',
+ operatingSystem: ['macOS', 'Windows', 'Linux'],
offers: {
'@type': 'Offer',
price: '0',
diff --git a/web/static/llms.txt b/web/static/llms.txt
index 4a5ea5ac6..1b37f2455 100644
--- a/web/static/llms.txt
+++ b/web/static/llms.txt
@@ -1,10 +1,10 @@
# Treq
-> Treq is an open-source macOS app for managing parallel AI development: create isolated Git workspaces per branch, run coding agents inside them, then review, commit, and merge changes without leaving the app.
+> Treq is an open-source desktop app for macOS, Windows, and Linux. Create isolated Git workspaces per branch, run coding agents inside them, then review, commit, and merge changes without leaving the app.
## Getting Started
-- [Installation and Quickstart](https://treq.dev/docs/getting-started/installation.md): Download Treq for macOS, open a repository, create a workspace, launch an agent, and commit and push changes.
+- [Installation and Quickstart](https://treq.dev/docs/getting-started/installation.md): Download Treq for macOS, Windows, or Linux, open a repository, create a workspace, launch an agent, and commit and push changes.
## Concepts