Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
a7bb0b4
chore: publish 0.3.0
OneNoted Mar 17, 2026
0999f86
feat: add browser surface plumbing
OneNoted Mar 17, 2026
2590327
feat: wire macos browser host
OneNoted Mar 18, 2026
2baf394
feat: embed browser surfaces in linux gtk shell
OneNoted Mar 18, 2026
60344d4
feat: add linux browser smoke coverage
OneNoted Mar 18, 2026
2705bef
chore: require webkitgtk 6.0 for linux builds and installs
OneNoted Mar 18, 2026
ec6b34e
refactor: split new top-level windows from focused extents
OneNoted Mar 18, 2026
f8dae71
feat: fit top-level workspace windows to viewport
OneNoted Mar 18, 2026
b211f36
style: increase new tab button visibility
OneNoted Mar 18, 2026
be98340
chore: bootstrap greenfield taskers rewrite
OneNoted Mar 18, 2026
9681c97
feat: add greenfield linux portal runtime
OneNoted Mar 18, 2026
2a67814
feat: centralize greenfield snapshot sync and diagnostics
OneNoted Mar 19, 2026
4e6f408
feat: add greenfield scripted smoke baseline mode
OneNoted Mar 19, 2026
3ac1bef
docs: add greenfield baseline comparison runbook
OneNoted Mar 19, 2026
b228023
refactor: extract shared taskers shell theme and action surface
OneNoted Mar 19, 2026
1556694
feat: replace greenfield gtk3 desktop bootstrap with gtk4 liveview host
OneNoted Mar 19, 2026
a2b5dbf
refactor: add ghostty host options and launch context
OneNoted Mar 19, 2026
6927dcb
feat: gate greenfield ghostty startup on surface probe
OneNoted Mar 19, 2026
084b01b
feat: expand greenfield shell snapshot and legacy-inspired chrome
OneNoted Mar 19, 2026
1d50c94
refactor: bridge greenfield shell onto app state
OneNoted Mar 19, 2026
923cad2
feat: stabilize greenfield linux ghostty startup
OneNoted Mar 19, 2026
d81cc9c
feat: wire greenfield shared shell to live control state
OneNoted Mar 19, 2026
9da2888
feat: project greenfield workspace strip into shared shell
OneNoted Mar 19, 2026
b9fc479
feat: add cmux-style agent center and operator cli
OneNoted Mar 19, 2026
541b6f4
feat: add shared shell browser chrome parity
OneNoted Mar 19, 2026
264671b
feat: add niri-style viewport scrolling
OneNoted Mar 19, 2026
3284fad
fix: restore shared shell hit-testing in linux host
OneNoted Mar 19, 2026
992232c
feat: add browser navigation state parity
OneNoted Mar 20, 2026
3d9afc3
feat: separate agent titles from surface metadata
OneNoted Mar 20, 2026
2c17a2d
feat: enrich workspace summary snapshots with domain metadata
OneNoted Mar 20, 2026
7632d61
feat: rewrite sidebar workspace tabs to CMUX design language
OneNoted Mar 20, 2026
0b6344e
feat: rewrite attention panel as CMUX-style notification timeline
OneNoted Mar 20, 2026
cce1c54
feat: add focus flash and workspace header chrome cleanup
OneNoted Mar 20, 2026
2a97d41
feat: add per-workspace custom accent colors
OneNoted Mar 20, 2026
0351e1d
feat: add progress bar and pull request status to workspace tabs
OneNoted Mar 20, 2026
f552683
fix: restore greenfield workspace navigation
OneNoted Mar 20, 2026
2680742
fix: align greenfield pane UX with cmux
OneNoted Mar 20, 2026
42252ed
fix: improve greenfield tab and navigation UX
OneNoted Mar 20, 2026
eac2993
refactor: add greenfield shortcut and action model
OneNoted Mar 20, 2026
e791c6f
feat: add workspace window move primitives
OneNoted Mar 20, 2026
30d6971
feat: polish greenfield tiling interactions
OneNoted Mar 20, 2026
67ec5cd
refactor: add side-aware pane split and transfer primitives
OneNoted Mar 20, 2026
ba6099a
feat: separate greenfield window pane and tab hierarchy
OneNoted Mar 20, 2026
1902299
fix: tighten greenfield browser and workspace interactions
OneNoted Mar 20, 2026
83de489
fix: align greenfield portal frames with shell chrome
OneNoted Mar 20, 2026
c34c3fe
fix: align greenfield terminal surfaces with pane bodies
OneNoted Mar 20, 2026
31052da
refactor: wrap greenfield native surfaces in host shells
OneNoted Mar 20, 2026
ef7e8d7
fix: restore greenfield terminal pane host styling
OneNoted Mar 20, 2026
791f020
test: cover greenfield native terminal host mounting
OneNoted Mar 20, 2026
74b5824
fix: contain greenfield shell chrome by grid track
OneNoted Mar 21, 2026
b448945
fix: point desktop entry at greenfield dev launcher
OneNoted Mar 21, 2026
ff9b975
fix: make greenfield panes fill workspace windows
OneNoted Mar 21, 2026
2390a0b
refactor: split greenfield normal and overview geometry
OneNoted Mar 21, 2026
c9064fd
feat: collapse empty greenfield attention rail
OneNoted Mar 21, 2026
9fa1283
test: lock greenfield workspace fit invariants
OneNoted Mar 21, 2026
80bcdbb
fix: tighten greenfield workspace window gaps
OneNoted Mar 21, 2026
b0ead5a
chore: archive legacy product paths under taskers-old
OneNoted Mar 21, 2026
9daeca6
refactor: promote greenfield workspace into the root workspace
OneNoted Mar 21, 2026
cf6b78e
feat: retarget launcher, scripts, ci, and docs to mainline taskers
OneNoted Mar 21, 2026
db03934
fix: restore embedded browser interactivity
OneNoted Mar 21, 2026
707a401
fix: replace blank browser startup with real home page
OneNoted Mar 21, 2026
447b6a9
docs: note GTK browser wrapper input gotcha
OneNoted Mar 21, 2026
2a231f2
fix: mount native panes as direct overlays
OneNoted Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
131 changes: 23 additions & 108 deletions .github/workflows/release-assets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,15 @@ jobs:
- name: Install Linux bundle tools
run: |
sudo apt-get update
sudo apt-get install -y meson ninja-build python3-gi xvfb libgtk-4-dev libadwaita-1-dev
sudo apt-get install -y \
meson \
ninja-build \
python3-gi \
xvfb \
libgtk-4-dev \
libadwaita-1-dev \
libjavascriptcoregtk-6.0-dev \
libwebkitgtk-6.0-dev

- name: Install pinned blueprint-compiler
run: |
Expand All @@ -40,119 +48,30 @@ jobs:
echo "${prefix}/bin" >> "$GITHUB_PATH"
"${prefix}/bin/blueprint-compiler" --version

- name: Build debug app for smoke
run: cargo build -p taskers-gtk --bin taskers-gtk

- name: Run headless app smoke
run: |
TASKERS_TERMINAL_BACKEND=mock \
bash scripts/headless-smoke.sh \
./target/debug/taskers-gtk \
--smoke-script baseline \
--diagnostic-log stderr \
--quit-after-ms 5000

- name: Build Linux bundle
run: bash scripts/build_linux_bundle.sh

- name: Run Linux smoke checks
run: |
bash scripts/smoke_taskers_ui.sh
bash scripts/smoke_taskers_focus_churn.sh
bash scripts/smoke_linux_release_launcher.sh
- name: Run launcher smoke
run: bash scripts/smoke_linux_release_launcher.sh

- name: Upload Linux bundle
uses: actions/upload-artifact@v4
with:
name: linux-bundle
path: dist/taskers-linux-bundle-v*.tar.xz

macos-universal-dmg:
runs-on: macos-15
env:
TASKERS_MACOS_CERTIFICATE_P12_BASE64: ${{ secrets.TASKERS_MACOS_CERTIFICATE_P12_BASE64 }}
TASKERS_MACOS_CERTIFICATE_PASSWORD: ${{ secrets.TASKERS_MACOS_CERTIFICATE_PASSWORD }}
TASKERS_MACOS_CODESIGN_IDENTITY: ${{ secrets.TASKERS_MACOS_CODESIGN_IDENTITY }}
TASKERS_MACOS_NOTARY_APPLE_ID: ${{ secrets.TASKERS_MACOS_NOTARY_APPLE_ID }}
TASKERS_MACOS_NOTARY_TEAM_ID: ${{ secrets.TASKERS_MACOS_NOTARY_TEAM_ID }}
TASKERS_MACOS_NOTARY_PASSWORD: ${{ secrets.TASKERS_MACOS_NOTARY_PASSWORD }}

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Decide whether to build signed macOS release
id: release-gate
run: |
signed_release=true
missing=()
for name in \
TASKERS_MACOS_CERTIFICATE_P12_BASE64 \
TASKERS_MACOS_CERTIFICATE_PASSWORD \
TASKERS_MACOS_CODESIGN_IDENTITY \
TASKERS_MACOS_NOTARY_APPLE_ID \
TASKERS_MACOS_NOTARY_TEAM_ID \
TASKERS_MACOS_NOTARY_PASSWORD; do
if [[ -z "${!name:-}" ]]; then
missing+=("${name}")
signed_release=false
fi
done

echo "signed_release=${signed_release}" >> "$GITHUB_OUTPUT"

if [[ "${signed_release}" != "true" ]]; then
echo "Building unsigned macOS DMG; missing signing/notary secrets: ${missing[*]}"
fi

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: |
aarch64-apple-darwin
x86_64-apple-darwin

- name: Cache Rust artifacts
uses: Swatinem/rust-cache@v2

- name: Install Zig
uses: goto-bus-stop/setup-zig@v2
with:
version: 0.15.2

- name: Install macOS build tools
run: |
brew update
brew install xcodegen

- name: Install Developer ID certificate
if: steps.release-gate.outputs.signed_release == 'true'
run: bash scripts/install_macos_codesign_certificate.sh

- name: Build universal macOS dependencies
run: TASKERS_MACOS_DEP_MODE=universal bash scripts/macos-build-preview-deps.sh

- name: Generate Xcode project
run: TASKERS_MACOS_DEP_MODE=universal bash scripts/generate_macos_project.sh

- name: Build universal Taskers.app
run: |
TASKERS_SKIP_MACOS_PREBUILD_DEPS=1 xcodebuild build \
-project macos/Taskers.xcodeproj \
-scheme TaskersMac \
-configuration Release \
-derivedDataPath build/macos/DerivedData \
ARCHS="arm64 x86_64" \
ONLY_ACTIVE_ARCH=NO \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO

- name: Sign universal Taskers.app
run: bash scripts/sign_macos_app.sh

- name: Build universal DMG
run: bash scripts/build_macos_dmg.sh

- name: Notarize and staple universal DMG
if: steps.release-gate.outputs.signed_release == 'true'
run: |
version="$(sed -n 's/^version = \"\\(.*\\)\"/\\1/p' Cargo.toml | head -n1)"
bash scripts/notarize_macos_dmg.sh "dist/Taskers-v${version}-universal2.dmg"

- name: Upload universal DMG
uses: actions/upload-artifact@v4
with:
name: macos-universal-dmg
path: dist/Taskers-v*-universal2.dmg

release-manifest:
needs:
- linux-bundle
Expand Down Expand Up @@ -185,7 +104,6 @@ jobs:
if: startsWith(github.ref, 'refs/tags/v')
needs:
- release-manifest
- macos-universal-dmg
runs-on: ubuntu-latest

steps:
Expand All @@ -206,9 +124,6 @@ jobs:
echo 'files<<EOF'
echo 'dist/release/taskers-manifest-v*.json'
echo 'dist/release/taskers-linux-bundle-v*.tar.xz'
if compgen -G 'dist/release/Taskers-v*-universal2.dmg' > /dev/null; then
echo 'dist/release/Taskers-v*-universal2.dmg'
fi
echo 'EOF'
} >> "$GITHUB_OUTPUT"

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ build/
dist/
build/
macos/Taskers.xcodeproj/
greenfield/target/
Loading