app-editors/zeo
Zeo - the Zed editor, rebranded, with the bentoo patch series
-
zeo-0.1.0_p20261003-r2~amd64+X ai-jail +claude-agent-acp-plus +claude-agent-acp-tui +claude-code-ide inspector +mimalloc neovim screen-capture test tracy +wayland +llvm_slot_22 debug
View
Download
Browse License: GPL-3+ BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 CC0-1.0 CDLA-Permissive-2.0 ISC LGPL-3 MIT MIT-0 MPL-2.0 UoI-NCSA Unicode-3.0 ZLIB BZIP2 Overlay: bentoo
ChangeLog
commit 6bf21c81687ad8059f3628bd616b4184c04f3dab
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 20:51:38 2026 -0300
app-editors/{zeo,zeo-bin}: drop 0.1.0_p20261003-r1
Superseded by -r2. zeo-bin -r1 is the Gentoo-host build that can SIGILL on
x86-64-v3 CPUs without AVX-512. The autoupdate records now name -r2 and
release-portable.sh, the build zeo-bin comes from since -r2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 46f50794c50fa83728e0e5fbaed5421553c51ca8
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 20:15:38 2026 -0300
app-editors/zeo: add 0.1.0_p20261003-r2
0033 ships Claude Agent (Plus) and Claude Agent TUI as default agents, so
a fresh install shows both without any settings. USE ai-jail (off by
default) pulls in the ai-jail sandbox and explains how to run
claude-agent-acp-plus inside it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 065478101ecb3934c26d6cc33aca8053ae95daa6
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 15:50:14 2026 -0300
add(sci-ml/{moose-0.5.0, torchaudio-2.11.0, torchcodec-0.17.0}, sys-apps/amd-debug-tools-0.2.21), add(metadata/{md5-cache/app-editors/zeo-0.1.0_p20261003-r1, md5-cache/app-editors/zeo-bin-0.1.0_p20261003, md5-cache/app-editors/zeo-bin-0.1.0_p20261003-r1, md5-cache/dev-python/uv-bin-0.12.23, md5-cache/dev-util/claude-agent-acp-plus-0.23.1, md5-cache/dev-util/claude-agent-acp-tui-0.14.5, md5-cache/sci-ml/moose-0.5.0, md5-cache/sci-ml/torchaudio-2.11.0, md5-cache/sci-ml/torchcodec-0.17.0, md5-cache/sys-apps/amd-debug-tools-0.2.21}), del(app-editors/zeo-0.1.0_p20261003), mod(metadata/{md5-cache/app-editors/zeo-0.1.0_p20261003, md5-cache/app-editors/zeo-bin-0.1.0_p20261001-r2}, .autoupdate/packages.toml), up(dev-python/uv-bin-0.12.22 -> 0.12.23, dev-util/{claude-agent-acp-plus-0.23.0 -> 0.23.1, claude-agent-acp-tui-0.14.4 -> 0.14.5})
commit 598d47c35a9039d8d1e2c033dada7ca62fba0d4e
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 14:54:16 2026 -0300
app-editors/{zeo,zeo-bin}: 0.1.0_p20261003-r1 -- 0032 lets the Flatpak escape recognise Zeo
zed-patches 0942b41; the zeo-bin tarball is an asset of the Zeo release v0.1.0_p20261003-r1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit f4669cbe2938f521e9271e090fdeab7a7429b8e5
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 13:53:33 2026 -0300
app-editors/zeo: 0.1.0_p20261003 -- follow calloop to the rev upstream pins
Upstream pinned calloop to 3759371f with rev = ...; the ebuild still fetched eb6b4fd1 and its git->path rewrite left the rev key behind, which cargo rejects ("key rev is ignored for dependency"). GIT_CRATES, CALLOOP_COMMIT and the rewrite now match the other rev-pinned crates. Proven by a full release build of this version.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit c3c7ba0c3c7969fd6f73a039d7dd0c4d501fde62
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 13:22:01 2026 -0300
app-editors/zeo: 0.1.0_p20261003 -- the series refreshed onto a84689073d29; USE=claude-code-ide pulls in dev-util/claude-code
Patches regenerated from zed-patches (see its zeo-0.1.0_p20261003 commit). The deferred claude-code-ide RDEPEND and post-install message, owed since -r2, land with this bump.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit bb94b16437d8a2cca9de71b44a87e4f39d91affe
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 10:42:33 2026 -0300
add(app-misc/shidashi-0.1.1), add(metadata/{md5-cache/app-admin/awscli2-2.37.9, md5-cache/app-editors/zeo-0.1.0_p20261003, md5-cache/app-misc/shidashi-0.1.1, md5-cache/dev-util/claude-code-2.1.288, md5-cache/dev-util/cline-desktop-bin-0.0.43, md5-cache/dev-util/codex-desktop-bin-26.930.31730, md5-cache/dev-util/goose-1.53.0, md5-cache/dev-util/goose-bin-1.53.0, md5-cache/dev-util/mesa_clc-26.3.0_pre20261003, md5-cache/dev-util/spirv-headers-1.4.363.0_p20261002, md5-cache/media-libs/mesa-26.3.0_pre20261003, md5-cache/media-video/vlc-4.0.0_pre20261003, md5-cache/net-misc/rustdesk-1.5.0, md5-cache/sci-ml/llama-swap-262, md5-cache/sci-ml/ollama-bin-0.35.1, md5-cache/www-client/brave-browser-1.96.61}), del(metadata/md5-cache/app-misc/watchexec-2.7.3), mod(app-misc/watchexec-2.7.4), mod(metadata/md5-cache/app-misc/watchexec-2.7.4, .autoupdate/packages.toml), up(app-admin/awscli2-2.37.8 -> 2.37.9, app-editors/zeo-0.1.0_p20261002 -> 0.1.0_p20261003, dev-util/goose{,-bin}-1.52.0 -> 1.53.0, media-libs/mesa-26.3.0_pre20261002 -> 26.3.0_pre20261003, media-video/vlc-4.0.0_pre20261002 -> 4.0.0_pre20261003, net-misc/rustdesk-1.4.9-r2 -> 1.5.0, sci-ml/{llama-swap-261 -> 262, ollama-bin-0.35.0 -> 0.35.1}, www-client/brave-browser-1.96.60 -> 1.96.61)
commit 0161dddd97c11a2de7207a077be7fefe91055be7
Author: lucascouts <lucascs@protonmail.com>
Date: Fri Oct 2 15:42:32 2026 -0300
add(metadata/{md5-cache/app-editors/zeo-0.1.0_p20261002, md5-cache/app-misc/watchexec-2.7.4, md5-cache/dev-python/conda-26.9.1, md5-cache/dev-python/openai-3.24.0, md5-cache/dev-util/cline-bin-3.0.68, md5-cache/dev-util/cline-desktop-bin-0.0.42, md5-cache/dev-util/codex-desktop-bin-26.930.21537, md5-cache/dev-util/spirv-tools-1.4.363.0_p20261002, md5-cache/dev-util/vulkan-headers-1.4.365_p20261002, md5-cache/dev-util/vulkan-tools-1.4.365_p20261002, md5-cache/dev-util/vulkan-utility-libraries-1.4.365, md5-cache/media-libs/vulkan-layers-1.4.365_p20261002, md5-cache/media-libs/vulkan-loader-1.4.365_p20261002, md5-cache/media-video/vlc-4.0.0_pre20261002, md5-cache/net-libs/webkit-gtk-2.54.1-r410, md5-cache/net-libs/webkit-gtk-2.54.1-r600, md5-cache/net-misc/postman-bin-12.30.6, md5-cache/net-misc/rustdesk-bin-1.5.0, md5-cache/sci-ml/ik_llama-cpp-0_pre20261002, md5-cache/www-client/chromium-154.0.8037.97}), del(app-admin/awscli2-2.37.7, app-editors/cursor-3.22.12, dev-lang/flutter-3.47.5-r1, dev-python/{openai-3.22.1, uv-bin-0.12.21}, dev-util/codex{,-bin}-0.159.3, media-libs/{mesa-26.3.0_pre20261001, vulkan-loader-1.4.364_p20260930}, sys-apps/ai-jail{,-bin}-2.6.0), mod(.autoupdate/packages.toml), up(app-editors/zeo-0.1.0_p20261001-r2 -> 0.1.0_p20261002, app-misc/watchexec-2.7.3 -> 2.7.4, dev-python/{conda-26.9.0 -> 26.9.1, openai-3.23.0 -> 3.24.0}, dev-util/{cline-bin-3.0.67 -> 3.0.68, cline-desktop-bin-0.0.40 -> 0.0.42, codex-desktop-bin-26.928.40906 -> 26.930.21537, spirv-tools-1.4.363.0_p20261001 -> 1.4.363.0_p20261002, vulkan-headers-1.4.364_p20260925 -> 1.4.365_p20261002, vulkan-tools-1.4.364_p20260930 -> 1.4.365_p20261002, vulkan-utility-libraries-1.4.364_p20260929 -> 1.4.365}, media-libs/{vulkan-layers-1.4.363_p20261001 -> 1.4.365_p20261002, vulkan-loader-1.4.364_p20261001 -> 1.4.365_p20261002}, media-video/vlc-4.0.0_pre20261001 -> 4.0.0_pre20261002, net-libs/{webkit-gtk-2.54.0-r410 -> 2.54.1-r410, webkit-gtk-2.54.0-r600 -> 2.54.1-r600}, net-misc/{postman-bin-12.30.5 -> 12.30.6, rustdesk-bin-1.4.9-r1 -> 1.5.0}, sci-ml/ik_llama-cpp-0_pre20261001 -> 0_pre20261002, www-client/chromium-154.0.8037.92 -> 154.0.8037.97)
commit d1aa126ec0e80698be1876c2c9ba5e30734c0ebb
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 22:34:50 2026 -0300
app-editors/zeo: note the claude-code-ide RDEPEND and message owed at the next bump
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit bb7b045902e4f649e51b6ab497fc47d7ba5b7dfe
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 16:53:42 2026 -0300
app-editors/{zeo,zeo-bin}: 0.1.0_p20261001-r2 -- zeo:// in every link; zeo-bin USE=claude-code-ide
zeo: 0022 now rewrites a zeo:// scheme to zed:// before the URL handler's
first arm, so zeo://agent?session=<id> -- what the desktop hands Zeo --
reopens the thread instead of opening nothing. Series zed-patches 93c2d1c.
zeo-bin: rebuilt from that series, and gains +claude-code-ide. Patch 0002
is compiled in either way; like the two adapter flags, the flag decides
whether what it talks to is pulled in, here dev-util/claude-code.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 1014ff93699a3bfad943d0fa4a4c2a5abfd80aff
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 15:36:38 2026 -0300
app-editors/{zeo,zeo-bin}: 0.1.0_p20261001-r1 -- IDE lock only with folders, release notes at zeo-workspace
0002: a Claude Code IDE server publishes its lock file, and hands its port to
the project's terminals, only while its workspace has folders. Every window
opens with a workspace of its own and its sidebar projects arrive as further
workspaces, so that first one never gets a folder: 7 windows held 7
folderless lock files, which match no working directory, alongside two 401
handshakes. Lock and port move together, since the CLI reads the token from
the lock file of the port it was given.
0021: release notes point at github.com/zeo-workspace/zeo/releases; the
repository moved organizations. 0025 differs only in an index line.
zeo-bin-0.1.0_p20261001-r1-amd64.tar.xz is the x86-64-v3 build of this
revision, uploaded to distfiles.obentoo.org; its public download matches the
local sha256 f77ed600, and the shipped binary carries the new URL.
Verified: verify.sh and check-sync (29 patches); claude_code_ide tests 17/17
and clippy with no new warning; a full x86-64-v3 compile+install of zeo -r1;
zeo-bin -r1 fetch-verify-unpack-install from R2; pkgcheck shows only the
pre-existing llvm-r1 deprecation.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 244ad0dea9866af6cc42f0d04432170de1d1c442
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 11:23:23 2026 -0300
app-editors/{zeo,zeo-bin}, app-misc/zeo-systray, dev-util/claude-agent-acp-{plus,tui}: repositories moved to zeo-workspace
The upstream repositories of these five packages moved from lucascouts
to the zeo-workspace GitHub organization on 2026-10-01. GitHub redirects
the old URLs; this stops relying on it. HOMEPAGE, remote-id, bugs-to,
the two autoupdate release probes and three SRC_URIs change; the
distfile names do not, and each new SRC_URI was downloaded and matched
against its Manifest SHA512, so no revbump.
md5-cache regenerated for the five packages, which also drops the
orphan zeo-systray-0.2.0 entry. app-editors/zeo/files/0021 still names
github.com/lucascouts/zeo/releases in code: it changes the binary, so it
rides the next zeo bump and is covered by the redirect until then.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 001f5e999f6707b9de031d4619482d19d4e1ebd1
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 11:07:58 2026 -0300
app-editors/{zed,zeo,zeo-bin}: zed builds releases, the patched snapshot is zeo
app-editors/zed stops carrying the bentoo patch series and becomes the
source twin of zed-bin: upstream's tagged releases, unpatched, as
zed-1.22.0 (stable channel) and zed-1.23.1_pre (preview). The three
claude-agent USE flags leave it.
app-editors/zeo takes over what zed was -- the snapshot at 71456c40 with
the whole series, 0001-0031 -- plus the rebrand (0019-0023, 0025) applied
before every USE group. The rebrand patches had never been refreshed
since 2026-09-12, because they were not in the series refresh.sh reads;
they are now carried onto 71456c40, and 0021 lost one hunk whose function
upstream removed. The distfile is zed-$.tar.gz and ZED_PV is
gone: the autoupdate (base_from = "none") can only move the date and
EGIT_COMMIT, and a stale second version would name new bytes after an
already-manifested distfile.
app-editors/zeo-bin is new: the same build at the same PV, compiled for
x86-64-v3 under zed-patches/release/configroot and hosted at
distfiles.obentoo.org; PROVENANCE.txt inside names the commit, each patch
with its sha256, the USE set and the flags.
Only one of zed, zed-bin, zeo, zeo-bin installs at a time; the blockers
live in zeo and zeo-bin. A news item explains the switch and the
expected downgrade of an installed zed snapshot to a release.
Verified: check-sync (29 patches: series, files/ and source agree);
ebuild prepare for all four ebuilds; cargo check -p zed for zeo and both
releases; a full x86-64-v3 compile+install of zeo (no AVX-512 in the
binary); zeo-bin install from the R2 copy, whose sha256 matches the local
tarball; pkgcheck shows only the pre-existing llvm-r1 deprecation and
zed's stable/preview RedundantVersion; autoupdate --lint passes.
Not merged with emerge: no root here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 7e31bc1eaece00a395bdfc7fc376e7a9fcf0fe2c
Author: lucascouts <lucascs@protonmail.com>
Date: Mon Sep 14 13:45:57 2026 -0300
app-editors/zeo: claim zeo://, stop claiming zed://
Found by installing the package, which is the only thing that could have found
it: the desktop entry advertised Zeo as a handler for ZED's URL scheme and
declared none of its own.
/usr/share/applications/mimeinfo.cache
x-scheme-handler/zed = dev.zed.Zed-Nightly.desktop;dev.zeo.Zeo.desktop;
$ xdg-mime query default x-scheme-handler/zeo
(nothing)
Upstream's zed.desktop.in hardcodes x-scheme-handler/zed, and envsubst only
substitutes $ variables, so the line passed through untouched. Patch 0022
does register zeo:// at run time, but that is the application telling the desktop
it can handle the scheme; the .desktop file is what the desktop environment reads
to ROUTE a link, and it was pointing the wrong way. Zed stayed the default here
only because it was installed first - Zeo still appeared in "Open with" for
zed:// links, and a default flip would have handed someone else's links to it.
The defect was masked, which is worth recording. zeo:// did resolve to Zeo before
this - through ~/.local/share/applications/dev.zeo.Zeo.desktop, dated 2026-07-11,
left by the first run's manual install (REBRAND.md section 5). A user-level entry
wins over the system one, so the package looked correct while being wrong. On a
clean machine zeo:// would have resolved to nothing. Removing that file and the
two user-level icons beside it is what made the real state visible.
Keywords becomes "zeo;zed;" rather than "zeo;": someone searching their launcher
for the editor Zeo is built from should still find it.
Verified by running both seds against the installed entry: MimeType gains
x-scheme-handler/zeo, Keywords gains zeo, and no other functional field mentions
zed - only upstream's comment lines, which are prose.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 4c1b1b19fba3d84ecf0ab7559b1025a9aaa14396
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 13 20:23:30 2026 -0300
app-editors/zeo: apply 0025, the user-visible product name
Twenty-one string literals that say "Zed" where they mean the application the
user is running. Chosen from an inventory of all 404 such literals in the tree,
which is versioned in the zeo repository - most of the other 383 must keep saying
Zed, and the patch header spells out each class and what breaks if it does not:
the vendor and its plans, the Zed team, font-family lookup keys, a User-Agent,
theme names referenced from user settings.
The window title, which a user reads more than any other string, is absent from
this patch because it never needed one. It resolves through display_name(), and
0021 already made that return "Zeo".
Numbered 0025 rather than 0024: app-editors/zed claimed 0024 for
0024-agent-deep-link-session.patch first, registering it in both `series` and its
own PATCHES. The two packages share one numbering space, and the number belongs
to whoever registers it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 449222cb7c41be7cf172b84f1159dd06111cc057
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 13 15:48:05 2026 -0300
app-editors/zeo: version it as Zeo, not as the Zed it is built from
0.1.0_p20260912 replaces 1.21.0_pre20260912. Zeo is at the start of its own life;
borrowing Zed's version number said otherwise, and would have kept saying it every
time the packaged Zed moved.
The first spelling tried was 0.1.0_p1.21.0_20260912, to carry both. Portage
rejects it, and PMS 3.2 says why:
ver ::= number ('.' number)* letter? suffix* revision?
suffix ::= '_' ('alpha'|'beta'|'pre'|'rc'|'p') [number]
A suffix number is a plain integer, and no dot may follow a suffix. Verified
against the parser rather than read off the page: ververify accepts 0.1.0_p1 and
rejects 0.1.0_p1.2, which isolates the dot as the thing that breaks.
There is no version syntax for "my version, built from their version", so the Zed
base becomes ZED_PV - a variable, exactly as EGIT_COMMIT already is - and it is
what SRC_URI names the distfile after. That is not only documentation: it means
app-editors/zed and app-editors/zeo now SHARE one 24 MB distfile instead of
fetching identical bytes under two names.
The old ebuild is deleted rather than left beside the new one. 1.21.0_pre20260912
sorts ABOVE 0.1.0_p20260912, so keeping both would have left portage preferring
the version this commit is trying to retire. Nobody has it installed - it was
added an hour ago and never emerged - so nothing downgrades.
Ordering was checked for the scheme as a whole: 0.1.0 < 0.1.0_p20260912 <
0.1.0_p20260913 < 0.1.0_p20261001 < 0.2.0.
RELEASE_VERSION="$" now carries a string that is not valid semver. Traced
before changing it: the only consumer is crates/cli, through
option_env!("RELEASE_VERSION").unwrap_or_default(), which displays it. The parse
that would panic on bad input - AppVersion::load's expect("invalid version in
Cargo.toml") - is fed CARGO_PKG_VERSION from crates/zed/Cargo.toml, which no
ebuild touches.
pkgcheck scan is clean apart from the llvm-r1 deprecation app-editors/zed
reports identically.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 21a5a125a49be3b88f63fceb9f082e07ab310d62
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 13 15:26:47 2026 -0300
app-editors/zeo: new package - the Zed editor, rebranded
Zeo is app-editors/zed's source, built from the same upstream commit, with a
rebrand applied as patches 0019-0023 on top of that package's series. It is not
a fork and carries no vendored copy of Zed.
Coexists with app-editors/zed and needs NO blocker, because the identity is
separate all the way down: /usr/bin/zeo, /usr/libexec/zeo-editor,
dev.zeo.Zeo.{png,desktop}, and ~/.config/zeo via patch 0019. Proved before
packaging, on a real build: KWin listed the window as dev.zeo.Zeo beside seven
dev.zed.Zed-Nightly windows, and a run with isolated XDG dirs created config/zeo
and data/zeo and no zed/ anything.
Three of app-editors/zed's flags are deliberately absent - collab,
extensions-cli, remote-server. Each installs a binary under a name that package
already uses (collab, zed-extension, zed-remote-server), and renaming Zed's
server infrastructure is not what a rebrand of the editor is for. Dropping them
is exactly what buys the blocker-free coexistence above.
Two things this ebuild does that are easy to get wrong, both commented in place:
It exports RELEASE_CHANNEL as an ENVIRONMENT VARIABLE in src_compile, as well
as writing the identically named file in src_prepare. They are different
inputs: the file drives the runtime ReleaseChannel enum through include_str!,
the variable is read by crates/zed/build.rs via option_env! to choose the
EMBEDDED window icon. build.rs matches it as a string with a `_ => "-dev"` arm,
so leaving it unset compiles clean and ships Zed's development icon.
app-editors/zed has that gap today - masked on Wayland, because a compositor
resolves the installed icon by app_id and never looks inside the binary.
It copies the Zeo mark in from FILESDIR during src_prepare rather than applying
it as a patch. GNU patch refuses a git binary hunk outright, and eapply is
`patch -p1`, so art cannot travel in the series at all. Its source of truth is
brand/rendered/ in lucascouts/zeo, reproducible from brand/build-icon.py.
S is spelled out as zed-$ rather than derived from $: the
upstream tarball unpacks under Zed's name, and $ is zeo here.
pkgcheck scan is clean apart from DeprecatedEclass on llvm-r1, which
app-editors/zed reports identically and which is an overlay-wide migration.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 20:51:38 2026 -0300
app-editors/{zeo,zeo-bin}: drop 0.1.0_p20261003-r1
Superseded by -r2. zeo-bin -r1 is the Gentoo-host build that can SIGILL on
x86-64-v3 CPUs without AVX-512. The autoupdate records now name -r2 and
release-portable.sh, the build zeo-bin comes from since -r2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 46f50794c50fa83728e0e5fbaed5421553c51ca8
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 20:15:38 2026 -0300
app-editors/zeo: add 0.1.0_p20261003-r2
0033 ships Claude Agent (Plus) and Claude Agent TUI as default agents, so
a fresh install shows both without any settings. USE ai-jail (off by
default) pulls in the ai-jail sandbox and explains how to run
claude-agent-acp-plus inside it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 065478101ecb3934c26d6cc33aca8053ae95daa6
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 15:50:14 2026 -0300
add(sci-ml/{moose-0.5.0, torchaudio-2.11.0, torchcodec-0.17.0}, sys-apps/amd-debug-tools-0.2.21), add(metadata/{md5-cache/app-editors/zeo-0.1.0_p20261003-r1, md5-cache/app-editors/zeo-bin-0.1.0_p20261003, md5-cache/app-editors/zeo-bin-0.1.0_p20261003-r1, md5-cache/dev-python/uv-bin-0.12.23, md5-cache/dev-util/claude-agent-acp-plus-0.23.1, md5-cache/dev-util/claude-agent-acp-tui-0.14.5, md5-cache/sci-ml/moose-0.5.0, md5-cache/sci-ml/torchaudio-2.11.0, md5-cache/sci-ml/torchcodec-0.17.0, md5-cache/sys-apps/amd-debug-tools-0.2.21}), del(app-editors/zeo-0.1.0_p20261003), mod(metadata/{md5-cache/app-editors/zeo-0.1.0_p20261003, md5-cache/app-editors/zeo-bin-0.1.0_p20261001-r2}, .autoupdate/packages.toml), up(dev-python/uv-bin-0.12.22 -> 0.12.23, dev-util/{claude-agent-acp-plus-0.23.0 -> 0.23.1, claude-agent-acp-tui-0.14.4 -> 0.14.5})
commit 598d47c35a9039d8d1e2c033dada7ca62fba0d4e
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 14:54:16 2026 -0300
app-editors/{zeo,zeo-bin}: 0.1.0_p20261003-r1 -- 0032 lets the Flatpak escape recognise Zeo
zed-patches 0942b41; the zeo-bin tarball is an asset of the Zeo release v0.1.0_p20261003-r1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit f4669cbe2938f521e9271e090fdeab7a7429b8e5
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 13:53:33 2026 -0300
app-editors/zeo: 0.1.0_p20261003 -- follow calloop to the rev upstream pins
Upstream pinned calloop to 3759371f with rev = ...; the ebuild still fetched eb6b4fd1 and its git->path rewrite left the rev key behind, which cargo rejects ("key rev is ignored for dependency"). GIT_CRATES, CALLOOP_COMMIT and the rewrite now match the other rev-pinned crates. Proven by a full release build of this version.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit c3c7ba0c3c7969fd6f73a039d7dd0c4d501fde62
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 13:22:01 2026 -0300
app-editors/zeo: 0.1.0_p20261003 -- the series refreshed onto a84689073d29; USE=claude-code-ide pulls in dev-util/claude-code
Patches regenerated from zed-patches (see its zeo-0.1.0_p20261003 commit). The deferred claude-code-ide RDEPEND and post-install message, owed since -r2, land with this bump.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit bb94b16437d8a2cca9de71b44a87e4f39d91affe
Author: lucascouts <lucascs@protonmail.com>
Date: Sat Oct 3 10:42:33 2026 -0300
add(app-misc/shidashi-0.1.1), add(metadata/{md5-cache/app-admin/awscli2-2.37.9, md5-cache/app-editors/zeo-0.1.0_p20261003, md5-cache/app-misc/shidashi-0.1.1, md5-cache/dev-util/claude-code-2.1.288, md5-cache/dev-util/cline-desktop-bin-0.0.43, md5-cache/dev-util/codex-desktop-bin-26.930.31730, md5-cache/dev-util/goose-1.53.0, md5-cache/dev-util/goose-bin-1.53.0, md5-cache/dev-util/mesa_clc-26.3.0_pre20261003, md5-cache/dev-util/spirv-headers-1.4.363.0_p20261002, md5-cache/media-libs/mesa-26.3.0_pre20261003, md5-cache/media-video/vlc-4.0.0_pre20261003, md5-cache/net-misc/rustdesk-1.5.0, md5-cache/sci-ml/llama-swap-262, md5-cache/sci-ml/ollama-bin-0.35.1, md5-cache/www-client/brave-browser-1.96.61}), del(metadata/md5-cache/app-misc/watchexec-2.7.3), mod(app-misc/watchexec-2.7.4), mod(metadata/md5-cache/app-misc/watchexec-2.7.4, .autoupdate/packages.toml), up(app-admin/awscli2-2.37.8 -> 2.37.9, app-editors/zeo-0.1.0_p20261002 -> 0.1.0_p20261003, dev-util/goose{,-bin}-1.52.0 -> 1.53.0, media-libs/mesa-26.3.0_pre20261002 -> 26.3.0_pre20261003, media-video/vlc-4.0.0_pre20261002 -> 4.0.0_pre20261003, net-misc/rustdesk-1.4.9-r2 -> 1.5.0, sci-ml/{llama-swap-261 -> 262, ollama-bin-0.35.0 -> 0.35.1}, www-client/brave-browser-1.96.60 -> 1.96.61)
commit 0161dddd97c11a2de7207a077be7fefe91055be7
Author: lucascouts <lucascs@protonmail.com>
Date: Fri Oct 2 15:42:32 2026 -0300
add(metadata/{md5-cache/app-editors/zeo-0.1.0_p20261002, md5-cache/app-misc/watchexec-2.7.4, md5-cache/dev-python/conda-26.9.1, md5-cache/dev-python/openai-3.24.0, md5-cache/dev-util/cline-bin-3.0.68, md5-cache/dev-util/cline-desktop-bin-0.0.42, md5-cache/dev-util/codex-desktop-bin-26.930.21537, md5-cache/dev-util/spirv-tools-1.4.363.0_p20261002, md5-cache/dev-util/vulkan-headers-1.4.365_p20261002, md5-cache/dev-util/vulkan-tools-1.4.365_p20261002, md5-cache/dev-util/vulkan-utility-libraries-1.4.365, md5-cache/media-libs/vulkan-layers-1.4.365_p20261002, md5-cache/media-libs/vulkan-loader-1.4.365_p20261002, md5-cache/media-video/vlc-4.0.0_pre20261002, md5-cache/net-libs/webkit-gtk-2.54.1-r410, md5-cache/net-libs/webkit-gtk-2.54.1-r600, md5-cache/net-misc/postman-bin-12.30.6, md5-cache/net-misc/rustdesk-bin-1.5.0, md5-cache/sci-ml/ik_llama-cpp-0_pre20261002, md5-cache/www-client/chromium-154.0.8037.97}), del(app-admin/awscli2-2.37.7, app-editors/cursor-3.22.12, dev-lang/flutter-3.47.5-r1, dev-python/{openai-3.22.1, uv-bin-0.12.21}, dev-util/codex{,-bin}-0.159.3, media-libs/{mesa-26.3.0_pre20261001, vulkan-loader-1.4.364_p20260930}, sys-apps/ai-jail{,-bin}-2.6.0), mod(.autoupdate/packages.toml), up(app-editors/zeo-0.1.0_p20261001-r2 -> 0.1.0_p20261002, app-misc/watchexec-2.7.3 -> 2.7.4, dev-python/{conda-26.9.0 -> 26.9.1, openai-3.23.0 -> 3.24.0}, dev-util/{cline-bin-3.0.67 -> 3.0.68, cline-desktop-bin-0.0.40 -> 0.0.42, codex-desktop-bin-26.928.40906 -> 26.930.21537, spirv-tools-1.4.363.0_p20261001 -> 1.4.363.0_p20261002, vulkan-headers-1.4.364_p20260925 -> 1.4.365_p20261002, vulkan-tools-1.4.364_p20260930 -> 1.4.365_p20261002, vulkan-utility-libraries-1.4.364_p20260929 -> 1.4.365}, media-libs/{vulkan-layers-1.4.363_p20261001 -> 1.4.365_p20261002, vulkan-loader-1.4.364_p20261001 -> 1.4.365_p20261002}, media-video/vlc-4.0.0_pre20261001 -> 4.0.0_pre20261002, net-libs/{webkit-gtk-2.54.0-r410 -> 2.54.1-r410, webkit-gtk-2.54.0-r600 -> 2.54.1-r600}, net-misc/{postman-bin-12.30.5 -> 12.30.6, rustdesk-bin-1.4.9-r1 -> 1.5.0}, sci-ml/ik_llama-cpp-0_pre20261001 -> 0_pre20261002, www-client/chromium-154.0.8037.92 -> 154.0.8037.97)
commit d1aa126ec0e80698be1876c2c9ba5e30734c0ebb
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 22:34:50 2026 -0300
app-editors/zeo: note the claude-code-ide RDEPEND and message owed at the next bump
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit bb7b045902e4f649e51b6ab497fc47d7ba5b7dfe
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 16:53:42 2026 -0300
app-editors/{zeo,zeo-bin}: 0.1.0_p20261001-r2 -- zeo:// in every link; zeo-bin USE=claude-code-ide
zeo: 0022 now rewrites a zeo:// scheme to zed:// before the URL handler's
first arm, so zeo://agent?session=<id> -- what the desktop hands Zeo --
reopens the thread instead of opening nothing. Series zed-patches 93c2d1c.
zeo-bin: rebuilt from that series, and gains +claude-code-ide. Patch 0002
is compiled in either way; like the two adapter flags, the flag decides
whether what it talks to is pulled in, here dev-util/claude-code.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 1014ff93699a3bfad943d0fa4a4c2a5abfd80aff
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 15:36:38 2026 -0300
app-editors/{zeo,zeo-bin}: 0.1.0_p20261001-r1 -- IDE lock only with folders, release notes at zeo-workspace
0002: a Claude Code IDE server publishes its lock file, and hands its port to
the project's terminals, only while its workspace has folders. Every window
opens with a workspace of its own and its sidebar projects arrive as further
workspaces, so that first one never gets a folder: 7 windows held 7
folderless lock files, which match no working directory, alongside two 401
handshakes. Lock and port move together, since the CLI reads the token from
the lock file of the port it was given.
0021: release notes point at github.com/zeo-workspace/zeo/releases; the
repository moved organizations. 0025 differs only in an index line.
zeo-bin-0.1.0_p20261001-r1-amd64.tar.xz is the x86-64-v3 build of this
revision, uploaded to distfiles.obentoo.org; its public download matches the
local sha256 f77ed600, and the shipped binary carries the new URL.
Verified: verify.sh and check-sync (29 patches); claude_code_ide tests 17/17
and clippy with no new warning; a full x86-64-v3 compile+install of zeo -r1;
zeo-bin -r1 fetch-verify-unpack-install from R2; pkgcheck shows only the
pre-existing llvm-r1 deprecation.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 244ad0dea9866af6cc42f0d04432170de1d1c442
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 11:23:23 2026 -0300
app-editors/{zeo,zeo-bin}, app-misc/zeo-systray, dev-util/claude-agent-acp-{plus,tui}: repositories moved to zeo-workspace
The upstream repositories of these five packages moved from lucascouts
to the zeo-workspace GitHub organization on 2026-10-01. GitHub redirects
the old URLs; this stops relying on it. HOMEPAGE, remote-id, bugs-to,
the two autoupdate release probes and three SRC_URIs change; the
distfile names do not, and each new SRC_URI was downloaded and matched
against its Manifest SHA512, so no revbump.
md5-cache regenerated for the five packages, which also drops the
orphan zeo-systray-0.2.0 entry. app-editors/zeo/files/0021 still names
github.com/lucascouts/zeo/releases in code: it changes the binary, so it
rides the next zeo bump and is covered by the redirect until then.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 001f5e999f6707b9de031d4619482d19d4e1ebd1
Author: lucascouts <lucascs@protonmail.com>
Date: Thu Oct 1 11:07:58 2026 -0300
app-editors/{zed,zeo,zeo-bin}: zed builds releases, the patched snapshot is zeo
app-editors/zed stops carrying the bentoo patch series and becomes the
source twin of zed-bin: upstream's tagged releases, unpatched, as
zed-1.22.0 (stable channel) and zed-1.23.1_pre (preview). The three
claude-agent USE flags leave it.
app-editors/zeo takes over what zed was -- the snapshot at 71456c40 with
the whole series, 0001-0031 -- plus the rebrand (0019-0023, 0025) applied
before every USE group. The rebrand patches had never been refreshed
since 2026-09-12, because they were not in the series refresh.sh reads;
they are now carried onto 71456c40, and 0021 lost one hunk whose function
upstream removed. The distfile is zed-$.tar.gz and ZED_PV is
gone: the autoupdate (base_from = "none") can only move the date and
EGIT_COMMIT, and a stale second version would name new bytes after an
already-manifested distfile.
app-editors/zeo-bin is new: the same build at the same PV, compiled for
x86-64-v3 under zed-patches/release/configroot and hosted at
distfiles.obentoo.org; PROVENANCE.txt inside names the commit, each patch
with its sha256, the USE set and the flags.
Only one of zed, zed-bin, zeo, zeo-bin installs at a time; the blockers
live in zeo and zeo-bin. A news item explains the switch and the
expected downgrade of an installed zed snapshot to a release.
Verified: check-sync (29 patches: series, files/ and source agree);
ebuild prepare for all four ebuilds; cargo check -p zed for zeo and both
releases; a full x86-64-v3 compile+install of zeo (no AVX-512 in the
binary); zeo-bin install from the R2 copy, whose sha256 matches the local
tarball; pkgcheck shows only the pre-existing llvm-r1 deprecation and
zed's stable/preview RedundantVersion; autoupdate --lint passes.
Not merged with emerge: no root here.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
commit 7e31bc1eaece00a395bdfc7fc376e7a9fcf0fe2c
Author: lucascouts <lucascs@protonmail.com>
Date: Mon Sep 14 13:45:57 2026 -0300
app-editors/zeo: claim zeo://, stop claiming zed://
Found by installing the package, which is the only thing that could have found
it: the desktop entry advertised Zeo as a handler for ZED's URL scheme and
declared none of its own.
/usr/share/applications/mimeinfo.cache
x-scheme-handler/zed = dev.zed.Zed-Nightly.desktop;dev.zeo.Zeo.desktop;
$ xdg-mime query default x-scheme-handler/zeo
(nothing)
Upstream's zed.desktop.in hardcodes x-scheme-handler/zed, and envsubst only
substitutes $ variables, so the line passed through untouched. Patch 0022
does register zeo:// at run time, but that is the application telling the desktop
it can handle the scheme; the .desktop file is what the desktop environment reads
to ROUTE a link, and it was pointing the wrong way. Zed stayed the default here
only because it was installed first - Zeo still appeared in "Open with" for
zed:// links, and a default flip would have handed someone else's links to it.
The defect was masked, which is worth recording. zeo:// did resolve to Zeo before
this - through ~/.local/share/applications/dev.zeo.Zeo.desktop, dated 2026-07-11,
left by the first run's manual install (REBRAND.md section 5). A user-level entry
wins over the system one, so the package looked correct while being wrong. On a
clean machine zeo:// would have resolved to nothing. Removing that file and the
two user-level icons beside it is what made the real state visible.
Keywords becomes "zeo;zed;" rather than "zeo;": someone searching their launcher
for the editor Zeo is built from should still find it.
Verified by running both seds against the installed entry: MimeType gains
x-scheme-handler/zeo, Keywords gains zeo, and no other functional field mentions
zed - only upstream's comment lines, which are prose.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 4c1b1b19fba3d84ecf0ab7559b1025a9aaa14396
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 13 20:23:30 2026 -0300
app-editors/zeo: apply 0025, the user-visible product name
Twenty-one string literals that say "Zed" where they mean the application the
user is running. Chosen from an inventory of all 404 such literals in the tree,
which is versioned in the zeo repository - most of the other 383 must keep saying
Zed, and the patch header spells out each class and what breaks if it does not:
the vendor and its plans, the Zed team, font-family lookup keys, a User-Agent,
theme names referenced from user settings.
The window title, which a user reads more than any other string, is absent from
this patch because it never needed one. It resolves through display_name(), and
0021 already made that return "Zeo".
Numbered 0025 rather than 0024: app-editors/zed claimed 0024 for
0024-agent-deep-link-session.patch first, registering it in both `series` and its
own PATCHES. The two packages share one numbering space, and the number belongs
to whoever registers it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 449222cb7c41be7cf172b84f1159dd06111cc057
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 13 15:48:05 2026 -0300
app-editors/zeo: version it as Zeo, not as the Zed it is built from
0.1.0_p20260912 replaces 1.21.0_pre20260912. Zeo is at the start of its own life;
borrowing Zed's version number said otherwise, and would have kept saying it every
time the packaged Zed moved.
The first spelling tried was 0.1.0_p1.21.0_20260912, to carry both. Portage
rejects it, and PMS 3.2 says why:
ver ::= number ('.' number)* letter? suffix* revision?
suffix ::= '_' ('alpha'|'beta'|'pre'|'rc'|'p') [number]
A suffix number is a plain integer, and no dot may follow a suffix. Verified
against the parser rather than read off the page: ververify accepts 0.1.0_p1 and
rejects 0.1.0_p1.2, which isolates the dot as the thing that breaks.
There is no version syntax for "my version, built from their version", so the Zed
base becomes ZED_PV - a variable, exactly as EGIT_COMMIT already is - and it is
what SRC_URI names the distfile after. That is not only documentation: it means
app-editors/zed and app-editors/zeo now SHARE one 24 MB distfile instead of
fetching identical bytes under two names.
The old ebuild is deleted rather than left beside the new one. 1.21.0_pre20260912
sorts ABOVE 0.1.0_p20260912, so keeping both would have left portage preferring
the version this commit is trying to retire. Nobody has it installed - it was
added an hour ago and never emerged - so nothing downgrades.
Ordering was checked for the scheme as a whole: 0.1.0 < 0.1.0_p20260912 <
0.1.0_p20260913 < 0.1.0_p20261001 < 0.2.0.
RELEASE_VERSION="$" now carries a string that is not valid semver. Traced
before changing it: the only consumer is crates/cli, through
option_env!("RELEASE_VERSION").unwrap_or_default(), which displays it. The parse
that would panic on bad input - AppVersion::load's expect("invalid version in
Cargo.toml") - is fed CARGO_PKG_VERSION from crates/zed/Cargo.toml, which no
ebuild touches.
pkgcheck scan is clean apart from the llvm-r1 deprecation app-editors/zed
reports identically.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
commit 21a5a125a49be3b88f63fceb9f082e07ab310d62
Author: lucascouts <lucascs@protonmail.com>
Date: Sun Sep 13 15:26:47 2026 -0300
app-editors/zeo: new package - the Zed editor, rebranded
Zeo is app-editors/zed's source, built from the same upstream commit, with a
rebrand applied as patches 0019-0023 on top of that package's series. It is not
a fork and carries no vendored copy of Zed.
Coexists with app-editors/zed and needs NO blocker, because the identity is
separate all the way down: /usr/bin/zeo, /usr/libexec/zeo-editor,
dev.zeo.Zeo.{png,desktop}, and ~/.config/zeo via patch 0019. Proved before
packaging, on a real build: KWin listed the window as dev.zeo.Zeo beside seven
dev.zed.Zed-Nightly windows, and a run with isolated XDG dirs created config/zeo
and data/zeo and no zed/ anything.
Three of app-editors/zed's flags are deliberately absent - collab,
extensions-cli, remote-server. Each installs a binary under a name that package
already uses (collab, zed-extension, zed-remote-server), and renaming Zed's
server infrastructure is not what a rebrand of the editor is for. Dropping them
is exactly what buys the blocker-free coexistence above.
Two things this ebuild does that are easy to get wrong, both commented in place:
It exports RELEASE_CHANNEL as an ENVIRONMENT VARIABLE in src_compile, as well
as writing the identically named file in src_prepare. They are different
inputs: the file drives the runtime ReleaseChannel enum through include_str!,
the variable is read by crates/zed/build.rs via option_env! to choose the
EMBEDDED window icon. build.rs matches it as a string with a `_ => "-dev"` arm,
so leaving it unset compiles clean and ships Zed's development icon.
app-editors/zed has that gap today - masked on Wayland, because a compositor
resolves the installed icon by app_id and never looks inside the binary.
It copies the Zeo mark in from FILESDIR during src_prepare rather than applying
it as a patch. GNU patch refuses a git binary hunk outright, and eapply is
`patch -p1`, so art cannot travel in the series at all. Its source of truth is
brand/rendered/ in lucascouts/zeo, reproducible from brand/build-icon.py.
S is spelled out as zed-$ rather than derived from $: the
upstream tarball unpacks under Zed's name, and $ is zeo here.
pkgcheck scan is clean apart from DeprecatedEclass on llvm-r1, which
app-editors/zed reports identically and which is an overlay-wide migration.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

