release v2.0.0
test / unit + widget + golden + a11y (push) Failing after 31s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-05-03 22:06:31 +02:00
co-authored by Claude
parent 38b017e92b
commit 5301c4753c
5 changed files with 83 additions and 6 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
{
"exported_at": "2026-05-03T19:52:53Z",
"exported_at": "2026-05-03T20:06:31Z",
"decisions": [
{
"id": "D-1",
+7
View File
@@ -16,6 +16,8 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
## [Unreleased]
## [2.0.0] — 2026-05-03
### Fixed
- PTY FFI constants now platform-dispatched: `TIOCSWINSZ` (`0x80087467`
@@ -51,6 +53,11 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
### Added
- `make install` / `make uninstall` — builds the release bundle and
installs it to `~/.local/` with XDG desktop entry, icon registration
at seven sizes, and icon cache refresh. macOS installs to
`~/Applications/clide.app`.
- Backend isolate — all subprocess and file I/O runs in a dedicated
isolate, keeping the merged UI/platform thread on macOS free for
rendering. Communicates via SendPort using the existing IPC protocol.
+63 -4
View File
@@ -18,10 +18,7 @@ else
FLUTTER_OS := windows
endif
VERSION_BASE ?= $(shell awk -F': *' '/^version:/ {gsub(/[" ]/,"",$$2); print $$2; exit}' pubspec.yaml)
COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown)
DIRTY := $(shell git diff --quiet HEAD 2>/dev/null || echo .dirty)
VERSION ?= $(VERSION_BASE)+$(COMMIT)$(DIRTY)
VERSION ?= $(shell awk -F': *' '/^version:/ {gsub(/[" ]/,"",$$2); print $$2; exit}' pubspec.yaml)
DATE ?= $(shell date -u +%Y-%m-%dT%H:%M:%SZ)
.PHONY: help
@@ -142,6 +139,68 @@ build-linux: ## flutter build linux (desktop bundle).
build-macos: ## flutter build macos (desktop bundle).
flutter build macos
# -- install / uninstall -----------------------------------------------------
# Install prefix. Bundle lands at $(INSTALL_PREFIX)/clide/ with a
# symlink at $(INSTALL_DIR)/clide pointing into it.
INSTALL_PREFIX ?= $(HOME)/.local/lib
ifeq ($(FLUTTER_OS),linux)
BUNDLE_DIR := build/linux/x64/release/bundle
else ifeq ($(FLUTTER_OS),macos)
BUNDLE_DIR := build/macos/Build/Products/Release/clide.app
endif
ICON_SIZES := 16 32 48 128 192 256 512
.PHONY: install
install: build ## Build + install clide to ~/.local (INSTALL_PREFIX, INSTALL_DIR).
ifeq ($(FLUTTER_OS),linux)
@mkdir -p $(INSTALL_PREFIX) $(INSTALL_DIR)
rm -rf $(INSTALL_PREFIX)/clide
cp -a $(BUNDLE_DIR) $(INSTALL_PREFIX)/clide
ln -sf $(INSTALL_PREFIX)/clide/clide $(INSTALL_DIR)/clide
@for size in $(ICON_SIZES); do \
dir=$(HOME)/.local/share/icons/hicolor/$${size}x$${size}/apps; \
mkdir -p $$dir; \
cp assets/logo/appicon-$${size}.png $$dir/clide.png; \
done
@mkdir -p $(HOME)/.local/share/applications
@sed 's|Exec=clide|Exec=$(INSTALL_PREFIX)/clide/clide|' linux/clide.desktop \
> $(HOME)/.local/share/applications/clide.desktop
@gtk-update-icon-cache -f -t $(HOME)/.local/share/icons/hicolor 2>/dev/null || true
@update-desktop-database $(HOME)/.local/share/applications 2>/dev/null || true
@echo "installed: $(INSTALL_DIR)/clide -> $(INSTALL_PREFIX)/clide/clide"
@echo "desktop: ~/.local/share/applications/clide.desktop"
@echo "version: $(VERSION)"
else ifeq ($(FLUTTER_OS),macos)
@mkdir -p $(HOME)/Applications
rm -rf $(HOME)/Applications/clide.app
cp -a $(BUNDLE_DIR) $(HOME)/Applications/clide.app
@echo "installed: ~/Applications/clide.app"
@echo "version: $(VERSION)"
else
@echo "install not yet supported on $(FLUTTER_OS)"
@exit 1
endif
.PHONY: uninstall
uninstall: ## Remove installed clide.
ifeq ($(FLUTTER_OS),linux)
rm -f $(INSTALL_DIR)/clide
rm -rf $(INSTALL_PREFIX)/clide
rm -f $(HOME)/.local/share/applications/clide.desktop
@for size in $(ICON_SIZES); do \
rm -f $(HOME)/.local/share/icons/hicolor/$${size}x$${size}/apps/clide.png; \
done
@gtk-update-icon-cache -f -t $(HOME)/.local/share/icons/hicolor 2>/dev/null || true
@update-desktop-database $(HOME)/.local/share/applications 2>/dev/null || true
@echo "uninstalled"
else ifeq ($(FLUTTER_OS),macos)
rm -rf $(HOME)/Applications/clide.app
@echo "uninstalled"
endif
# -- dugite-native (bundled git) ------------------------------------------
DUGITE_VERSION := v2.53.0-3
+11
View File
@@ -0,0 +1,11 @@
[Desktop Entry]
Type=Application
Name=clide
Comment=Flutter desktop IDE for Claude Code
Exec=clide %U
Icon=clide
Terminal=false
Categories=Development;IDE;TextEditor;
Keywords=code;editor;ide;claude;terminal;
StartupWMClass=clide
MimeType=inode/directory;
+1 -1
View File
@@ -13,7 +13,7 @@ description: >-
UI, subsystem handlers (pane, files, editor, git, pql), and the
extension framework.
publish_to: none
version: 2.0.0-dev
version: 2.0.0
repository: https://github.com/postmeridiem/clide
# Project metadata (was project.yaml, folded in per D-056).