# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Autogenerated by pycargoebuild 0.16.0 EAPI=8 CRATES=" accesskit@0.24.1 accesskit_atspi_common@0.19.1 accesskit_consumer@0.38.0 accesskit_macos@0.26.3 accesskit_unix@0.22.1 accesskit_windows@0.34.0 addr2line@0.25.1 addr2line@0.26.1 adler2@2.0.1 adler32@1.2.0 aes@0.8.4 agent-client-protocol-derive@3.4.0 agent-client-protocol-schema@1.12.0 agent-client-protocol@3.4.0 ahash@0.8.12 aho-corasick@1.1.3 aliasable@0.1.3 aligned-vec@0.6.4 aligned@0.4.3 alloca@0.4.0 allocator-api2@0.2.21 alsa-sys@0.4.0 alsa@0.11.0 ambient-authority@0.0.2 ammonia@4.1.4 android_system_properties@0.1.5 anes@0.1.6 annotate-snippets@0.12.12 anstream@0.6.21 anstyle-parse@0.2.7 anstyle-query@1.1.4 anstyle-wincon@3.0.10 anstyle@1.0.13 any_vec@0.14.0 anyhow@1.0.104 approx@0.5.1 ar_archive_writer@0.5.1 arbitrary@1.4.2 arc-swap@1.9.0 arg_enum_proc_macro@0.3.4 arraydeque@0.5.1 arrayref@0.3.9 arrayvec@0.7.6 as-raw-xcb-connection@1.0.1 as-slice@0.2.1 ascii@1.1.0 ash@0.38.0+1.3.281 ashpd@0.13.5 async-attributes@1.1.2 async-broadcast@0.7.2 async-channel@1.9.0 async-channel@2.5.0 async-compat@0.2.5 async-compression@0.4.32 async-dispatcher@0.1.2 async-executor@1.13.3 async-fs@2.2.0 async-global-executor@2.4.1 async-io@2.6.0 async-lock@3.4.2 async-net@2.0.0 async-recursion@1.1.1 async-signal@0.2.13 async-std@1.13.2 async-stream-impl@0.3.6 async-stream@0.3.6 async-trait@0.1.89 async-tungstenite@0.33.0 async_zip@0.0.18 asynchronous-codec@0.7.0 atoi@2.0.0 atomic-waker@1.1.2 atomic@0.5.3 atspi-common@0.13.0 atspi-proxies@0.13.0 atspi@0.29.0 auditable-serde@0.8.0 autocfg@1.5.0 av-scenechange@0.14.1 av1-grain@0.2.4 avif-serialize@0.8.6 aws-config@1.8.14 aws-credential-types@1.2.12 aws-lc-rs@1.18.1 aws-lc-sys@0.45.0 aws-runtime@1.7.0 aws-sdk-bedrockruntime@1.125.0 aws-sdk-kinesis@1.100.0 aws-sdk-s3@1.123.0 aws-sdk-sso@1.94.0 aws-sdk-ssooidc@1.96.0 aws-sdk-sts@1.98.0 aws-sigv4@1.4.0 aws-smithy-async@1.2.14 aws-smithy-checksums@0.64.4 aws-smithy-eventstream@0.60.20 aws-smithy-http-client@1.1.10 aws-smithy-http@0.63.4 aws-smithy-json@0.62.7 aws-smithy-observability@0.2.5 aws-smithy-query@0.60.15 aws-smithy-runtime-api-macros@1.0.0 aws-smithy-runtime-api@1.12.3 aws-smithy-runtime@1.10.1 aws-smithy-schema@0.1.0 aws-smithy-types@1.4.9 aws-smithy-xml@0.60.15 aws-types@1.3.12 axum-core@0.3.4 axum@0.6.20 backtrace@0.3.76 base16ct@0.1.1 base64-simd@0.8.0 base64@0.21.7 base64@0.22.1 base64ct@1.8.0 beef@0.5.2 betlang@0.1.1 bigdecimal@0.4.8 bincode@1.3.3 bindgen@0.72.1 bit-set@0.11.1 bit-set@0.8.0 bit-vec@0.10.1 bit-vec@0.8.0 bit_field@0.10.3 bitflags@1.3.2 bitflags@2.13.1 bitstream-io@4.9.0 block-buffer@0.10.4 block-padding@0.3.3 block2@0.5.1 block2@0.6.2 block@0.1.6 blocking@1.6.2 bmrng@0.5.2 bon-macros@3.8.2 bon@3.8.2 borrow-or-share@0.2.4 borsh-derive@1.8.1 borsh@1.8.1 brush-parser@0.3.0 bs58@0.5.1 bstr@1.12.1 built@0.8.0 bumpalo@3.20.3 by_address@1.2.1 bytecount@0.6.9 bytemuck@1.24.0 bytemuck_derive@1.10.2 byteorder-lite@0.1.0 byteorder@1.5.0 bytes-utils@0.1.4 bytes@0.4.12 bytes@1.11.1 bzip2-sys@0.1.13+1.0.8 bzip2@0.4.4 bzip2@0.6.1 c-enum@0.2.3 cached@0.56.0 cached_proc_macro@0.25.0 cached_proc_macro_types@0.1.1 calloop-wayland-source@0.4.1 camino@1.2.6 cap-primitives@4.0.3 cargo-platform@0.3.2 cargo_metadata@0.23.1 cargo_toml@0.21.0 cast@0.3.0 cbc@0.1.2 cbindgen@0.28.0 cc@1.4.3 cesu8@1.1.0 cexpr@0.6.0 cfg-expr@0.20.9 cfg-if@1.0.4 cfg_aliases@0.2.2 chacha20@0.10.1 chardetng@0.1.17 chrono@0.4.42 chunked_transfer@1.5.0 ciborium-io@0.2.2 ciborium-ll@0.2.2 ciborium@0.2.2 cipher@0.4.4 clang-sys@1.8.1 clap@4.5.49 clap_builder@4.5.49 clap_complete@4.5.59 clap_complete_nushell@4.6.0 clap_derive@4.5.49 clap_lex@0.7.6 cmake@0.1.56 cobs@0.3.0 cocoa-foundation@0.1.2 cocoa-foundation@0.2.0 cocoa@0.25.0 cocoa@0.26.0 codespan-reporting@0.13.0 color_quant@1.1.0 colorchoice@1.0.4 combine@4.6.7 command-fds@0.3.2 compression-codecs@0.4.31 compression-core@0.4.29 concurrent-queue@2.5.0 console@0.16.3 console_error_panic_hook@0.1.7 const-oid@0.9.6 const-random-macro@0.1.16 const-random@0.1.18 const_format@0.2.35 const_format_proc_macros@0.2.34 constant_time_eq@0.1.5 convert_case@0.10.0 convert_case@0.11.0 core-foundation-sys@0.8.7 core-foundation@0.10.0 core-foundation@0.9.4 core-graphics-helmer-fork@0.24.0 core-graphics-types@0.1.3 core-graphics-types@0.2.0 core-graphics@0.23.2 core-graphics@0.24.0 core-services@1.0.0 core-text@21.0.0 core2@0.4.0 core_detect@1.0.0 core_maths@0.1.1 coreaudio-rs@0.12.1 coreaudio-rs@0.14.2 coreaudio-sys@0.2.18 cosmic-text@0.19.0 cpp_demangle@0.5.1 cpufeatures@0.2.17 cpufeatures@0.3.0 cranelift-assembler-x64-meta@0.135.6 cranelift-assembler-x64@0.135.6 cranelift-bforest@0.135.6 cranelift-bitset@0.135.6 cranelift-codegen-meta@0.135.6 cranelift-codegen-shared@0.135.6 cranelift-codegen@0.135.6 cranelift-control@0.135.6 cranelift-entity@0.135.6 cranelift-frontend@0.135.6 cranelift-isle@0.135.6 cranelift-native@0.135.6 cranelift-srcgen@0.135.6 crash-context@0.8.0 crash-handler@0.8.0 crc-catalog@2.4.0 crc-fast@1.9.0 crc32fast@1.5.0 crc@3.3.0 criterion-plot@0.8.2 criterion@0.8.2 crossbeam-channel@0.5.15 crossbeam-deque@0.8.6 crossbeam-epoch@0.9.18 crossbeam-queue@0.3.12 crossbeam-utils@0.8.21 crunchy@0.2.4 crypto-bigint@0.4.9 crypto-bigint@0.5.5 crypto-common@0.1.6 cssparser-macros@0.6.1 cssparser@0.36.0 cssparser@0.37.0 ctor@1.0.12 ctrlc@3.5.0 cursor-icon@1.2.0 cxx-build@1.0.187 cxx@1.0.187 cxxbridge-cmd@1.0.187 cxxbridge-flags@1.0.187 cxxbridge-macro@1.0.187 darling@0.20.11 darling@0.21.3 darling@0.23.0 darling_core@0.20.11 darling_core@0.21.3 darling_core@0.23.0 darling_macro@0.20.11 darling_macro@0.21.3 darling_macro@0.23.0 dary_heap@0.3.9 dashmap@6.1.0 dasp_sample@0.11.0 data-encoding@2.9.0 data-url@0.3.2 dbus@0.9.9 debug-ignore@1.0.5 debugid@0.8.0 deflate64@0.1.10 der@0.6.1 der@0.7.10 deranged@0.5.4 derive_more-impl@2.1.1 derive_more@2.1.1 derive_setters@0.1.9 dialoguer@0.12.0 diff@0.1.13 diffy@0.4.2 digest@0.10.7 dioxus-cli-config@0.7.10 dioxus-core-types@0.7.10 dioxus-core@0.7.10 dioxus-devtools-types@0.7.10 dirs-sys@0.5.0 dirs@6.0.0 dispatch2@0.3.1 dispatch@0.2.0 displaydoc@0.2.5 dlib@0.5.3 document-features@0.2.12 documented-macros@0.10.0 documented@0.10.0 dotenvy@0.15.7 downcast-rs@1.2.1 doxygen-rs@0.4.2 dtoa-short@0.3.5 dtoa@1.0.10 dugong-graphlib@0.8.0-alpha.5 dugong@0.8.0-alpha.5 dunce@1.0.5 dwrote@0.11.5 dyn-clone@1.0.20 ec4rs@1.2.0 ecdsa@0.14.8 either@1.15.0 elasticlunr-rs@3.0.2 elliptic-curve@0.12.3 email_address@0.2.9 embed-resource@3.0.6 embedded-io@0.4.0 embedded-io@0.6.1 emojis@0.9.0 encode_unicode@1.0.0 encoding_rs@0.8.35 endi@1.1.0 enumflags2@0.7.12 enumflags2_derive@0.7.12 enumn@0.1.14 env_filter@0.1.4 env_logger@0.10.2 env_logger@0.11.8 envy@0.4.2 equator-macro@0.4.2 equator@0.4.2 equivalent@1.0.2 erased-serde@0.4.9 errno-dragonfly@0.1.2 errno@0.2.8 errno@0.3.14 error-graph@0.1.1 etagere@0.2.15 etcetera@0.8.0 euclid@0.22.14 event-listener-strategy@0.5.4 event-listener@2.5.3 event-listener@5.4.1 exec@0.3.1 exr@1.74.0 extended@0.1.0 failspot@0.2.0 fancy-regex@0.19.0 fast-srgb8@1.0.0 fastrand@1.9.0 fastrand@2.3.0 fax@0.2.6 fax_derive@0.2.0 fdeflate@0.3.7 fearless_simd@0.4.1 ff@0.12.1 filedescriptor@0.8.3 filetime@0.2.29 find-msvc-tools@0.1.11 fixedbitset@0.5.7 flate2@1.1.8 float-cmp@0.9.0 float-ord@0.3.2 float_next_after@1.0.0 fluent-uri@0.4.1 flume@0.11.1 flume@0.12.0 fnv@1.0.7 foldhash@0.1.5 foldhash@0.2.0 font-types@0.10.0 font-types@0.11.0 fontconfig-parser@0.5.8 fontdb@0.23.0 foreign-types-macros@0.2.3 foreign-types-shared@0.1.1 foreign-types-shared@0.3.1 foreign-types@0.3.2 foreign-types@0.5.0 fork@0.4.0 form_urlencoded@1.2.2 fraction@0.16.0 freetype-sys@0.20.1 fs-set-times@0.20.3 fs2@0.4.3 fs_extra@1.3.0 fuchsia-cprng@0.1.1 futures-channel@0.3.34 futures-concurrency@7.7.1 futures-core@0.3.34 futures-executor@0.3.34 futures-intrusive@0.5.0 futures-io@0.3.34 futures-lite@1.13.0 futures-lite@2.6.1 futures-macro@0.3.34 futures-sink@0.3.34 futures-task@0.3.34 futures-util@0.3.34 futures@0.1.31 futures@0.3.34 gaoya@0.2.0 generational-box@0.7.10 generator@0.8.9 generic-array@0.14.7 gethostname@1.1.0 getrandom@0.2.16 getrandom@0.3.4 getrandom@0.4.1 gif@0.14.2 gimli@0.32.3 gimli@0.33.0 gio-sys@0.21.5 gl_generator@0.14.0 glib-macros@0.21.5 glib-sys@0.21.5 glib@0.21.5 glob@0.3.3 globset@0.4.17 gloo-timers@0.3.0 glow@0.18.0 glutin_wgl_sys@0.6.1 gobject-sys@0.21.5 goblin@0.9.3 gpu-allocator@0.28.0 granit-parser@1.0.0 group@0.12.1 guppy-workspace-hack@0.1.0 guppy@0.18.0 h2@0.3.27 h2@0.4.19 half@2.7.1 handlebars@4.5.0 handlebars@5.1.2 harfrust@0.5.0 hash32@0.3.1 hashbrown@0.12.3 hashbrown@0.14.5 hashbrown@0.15.5 hashbrown@0.16.1 hashbrown@0.17.1 hashlink@0.10.0 hashlink@0.8.4 hdrhistogram@7.5.4 headers-core@0.2.0 headers@0.3.9 heapless@0.9.2 heck@0.4.1 heck@0.5.0 heed-traits@0.20.0 heed-types@0.21.0 heed@0.21.0 hermit-abi@0.5.2 hex@0.4.3 hkdf@0.12.4 hmac@0.12.1 home@0.5.11 hound@3.5.1 html5ever@0.39.0 htmlize@1.1.0 http-body-util@0.1.3 http-body@0.4.6 http-body@1.0.1 http-range-header@0.3.1 http@0.2.12 http@1.3.1 httparse@1.10.1 httpdate@1.0.3 human_bytes@0.4.3 humantime@2.3.0 hyper-rustls@0.27.9 hyper-timeout@0.5.2 hyper-tls@0.5.0 hyper-util@0.1.17 hyper@0.14.32 hyper@1.11.1 iana-time-zone-haiku@0.1.2 iana-time-zone@0.1.64 icu_collator@2.3.0 icu_collator_data@2.3.0 icu_collections@2.3.0 icu_locale_core@2.3.0 icu_locale_fallback@2.3.0 icu_locale_fallback_data@2.3.0 icu_normalizer@2.3.0 icu_normalizer_data@2.3.0 icu_properties@2.3.0 icu_properties_data@2.3.0 icu_provider@2.3.0 id-arena@2.3.0 ident_case@1.0.1 idna@1.1.0 idna_adapter@1.2.1 ignore@0.4.24 image-webp@0.2.4 image@0.25.10 imagesize@0.14.0 imara-diff@0.2.0 imgref@1.12.0 include-flate-codegen@0.3.4 include-flate-compress@0.3.4 include-flate@0.3.4 indenter@0.3.4 indexmap@1.9.3 indexmap@2.14.0 indoc@2.0.6 inherent@1.0.13 inotify-sys@0.1.5 inotify@0.11.0 inout@0.1.4 instant@0.1.13 interpolate_name@0.2.4 inventory@0.3.21 io-extras@0.19.0 io-lifetimes@2.0.4 io-lifetimes@3.0.1 iovec@0.1.4 ipc-channel@0.19.0 ipnet@2.11.0 is-docker@0.2.0 is-terminal@0.4.16 is-wsl@0.4.0 is_executable@1.0.5 is_terminal_polyfill@1.70.1 itertools@0.10.5 itertools@0.13.0 itertools@0.14.0 itertools@0.15.0 itoa@1.0.18 jiff-static@0.2.15 jiff-tzdb-platform@0.1.3 jiff-tzdb@0.1.8 jiff@0.2.15 jni-macros@0.22.4 jni-sys-macros@0.4.1 jni-sys@0.3.0 jni-sys@0.4.1 jni@0.21.1 jni@0.22.4 jobserver@0.1.34 js-sys@0.3.106 json5@1.3.1 jsonschema-regex@0.51.0 jsonschema-value@0.51.0 jsonschema@0.51.0 jsonwebtoken@10.3.0 jupyter-protocol@1.4.0 jupyter-websocket-client@1.1.0 khronos_api@3.1.0 kqueue-sys@1.1.2 kqueue@1.2.0 kurbo@0.13.1 kv-log-macro@1.0.7 lalrpop-util@0.23.1 lazy_static@1.5.0 leb128@0.2.5 leb128fmt@0.1.0 lebe@0.5.3 libbz2-rs-sys@0.2.2 libc@0.2.186 libdbus-sys@0.2.6 libflate@2.3.1 libflate_lz77@2.3.0 libfuzzer-sys@0.4.10 libloading@0.8.9 libm@0.2.16 libmimalloc-sys@0.1.44 libredox@0.1.10 libsqlite3-sys@0.30.1 linebender_resource_handle@0.1.1 link-cplusplus@1.0.12 link-section@0.19.2 linkify@0.10.0 linktime-proc-macro@0.2.2 linux-raw-sys@0.12.1 litemap@0.8.0 litrs@1.0.0 lmdb-master-sys@0.2.5 lock_api@0.4.14 log@0.4.29 logos-codegen@0.15.1 logos-codegen@0.16.1 logos-derive@0.15.1 logos-derive@0.16.1 logos@0.15.1 logos@0.16.1 lol_html@3.0.1 longest-increasing-subsequence@0.1.0 loom@0.7.2 loop9@0.1.5 lru-slab@0.1.2 lru@0.16.4 lyon@1.0.16 lyon_algorithms@1.0.16 lyon_extra@1.0.3 lyon_geom@1.0.17 lyon_path@1.0.16 lyon_tessellation@1.0.16 mac-notification-sys@0.6.15 mach2@0.6.0 macro_rules_attribute-proc_macro@0.2.3 macro_rules_attribute@0.2.3 malloc_buf@0.0.6 manatee@0.8.0-alpha.5 maplit@1.0.2 markup5ever@0.39.0 markup5ever_rcdom@0.39.0+unofficial matchers@0.2.0 matchit@0.7.3 maybe-owned@0.3.4 maybe-rayon@0.1.1 md-5@0.10.6 mdbook@0.4.40 memchr@2.8.3 memfd@0.6.5 memmap2@0.9.8 memoffset@0.9.1 merge@0.1.0 merge_derive@0.1.0 merman-core@0.8.0-alpha.5 merman-render@0.8.0-alpha.5 merman@0.8.0-alpha.5 metal@0.33.0 micromap@0.3.0 miette-derive@7.6.0 miette@7.6.0 mimalloc@0.1.48 mime@0.3.17 mime_guess@2.0.5 minidump-common@0.26.1 minidump-writer@0.13.0 minidumper@0.11.0 minimal-lexical@0.2.1 miniz_oxide@0.8.9 mio@1.2.0 miow@0.6.1 moka@0.12.11 moxcms@0.8.1 msvc_spectre_libs@0.1.3 multimap@0.8.3 nanoid@0.4.0 native-tls@0.2.18 nbformat@1.2.0 ndk-context@0.1.1 ndk-sys@0.6.0+11769913 ndk@0.9.0 nested@0.1.1 new_debug_unreachable@1.0.6 nix@0.30.1 no_std_io2@0.9.4 nom@7.1.3 nom@8.0.0 noop_proc_macro@0.3.0 normpath@1.5.0 notify-rust@4.18.0 ntapi@0.4.1 nu-ansi-term@0.50.3 nucleo-matcher@0.3.1 num-bigint-dig@0.8.6 num-bigint-dig@0.9.1 num-bigint@0.4.8 num-cmp@0.1.0 num-complex@0.4.6 num-conv@0.2.0 num-derive@0.4.2 num-integer@0.1.46 num-iter@0.1.45 num-rational@0.4.2 num-traits@0.2.19 num@0.4.3 num_cpus@1.17.0 num_enum@0.7.4 num_enum_derive@0.7.4 num_threads@0.1.7 objc-foundation@0.1.1 objc-sys@0.3.5 objc2-app-kit@0.2.2 objc2-app-kit@0.3.2 objc2-audio-toolbox@0.3.2 objc2-avf-audio@0.3.2 objc2-core-audio-types@0.3.2 objc2-core-audio@0.3.2 objc2-core-data@0.2.2 objc2-core-foundation@0.3.2 objc2-core-graphics@0.3.2 objc2-core-image@0.2.2 objc2-core-media@0.3.2 objc2-core-services@0.3.2 objc2-core-text@0.3.2 objc2-core-video@0.3.2 objc2-encode@4.1.0 objc2-foundation@0.2.2 objc2-foundation@0.3.2 objc2-io-kit@0.3.2 objc2-io-surface@0.3.2 objc2-metal@0.2.2 objc2-metal@0.3.2 objc2-quartz-core@0.2.2 objc2-quartz-core@0.3.2 objc2-screen-capture-kit@0.3.2 objc2-security@0.3.2 objc2-ui-kit@0.3.2 objc2-user-notifications@0.3.2 objc2@0.5.2 objc2@0.6.3 objc@0.2.7 objc_exception@0.1.2 objc_id@0.1.1 object@0.37.3 object@0.39.1 octocrab@0.49.7 once_cell@1.21.4 once_cell_polyfill@1.70.1 oo7@0.6.0 oorandom@11.1.5 open@5.3.2 opener@0.7.2 openssl-macros@0.1.1 openssl-probe@0.2.1 openssl-sys@0.9.117 openssl@0.10.81 optfield@0.4.0 option-ext@0.2.0 ordered-float@4.6.0 ordered-float@5.5.0 ordered-stream@0.2.0 ouroboros@0.18.5 ouroboros_macro@0.18.5 outref@0.5.2 p256@0.11.1 page_size@0.6.0 palette@0.7.6 palette_derive@0.7.6 parking@2.2.1 parking_lot@0.12.5 parking_lot_core@0.9.12 parse_int@0.9.0 partial-json-fixer@0.5.3 password-hash@0.4.2 paste@1.0.15 pastey@0.1.1 pastey@0.2.3 pathdiff@0.2.3 pathfinder_geometry@0.5.1 pathfinder_simd@0.5.6 pbjson-build@0.9.0 pbjson-types@0.9.0 pbjson@0.9.0 pbkdf2@0.11.0 pbkdf2@0.12.2 pciid-parser@0.8.0 peg-macros@0.8.5 peg-runtime@0.8.5 peg@0.8.5 pem-rfc7468@0.7.0 pem@3.0.6 percent-encoding@2.3.2 perf-event-data@0.1.8 perf-event-open-sys2@5.0.6 perf-event2@0.7.4 pest@2.8.3 pest_derive@2.8.3 pest_generator@2.8.3 pest_meta@2.8.3 petgraph@0.8.3 pgvector@0.4.1 phf@0.11.3 phf@0.13.1 phf_codegen@0.13.1 phf_generator@0.11.3 phf_generator@0.13.1 phf_macros@0.11.3 phf_macros@0.13.1 phf_shared@0.11.3 phf_shared@0.13.1 pico-args@0.5.0 pin-project-internal@1.1.10 pin-project-lite@0.2.16 pin-project@1.1.10 pin-utils@0.1.0 piper@0.2.4 pkcs1@0.7.5 pkcs8@0.10.2 pkcs8@0.9.0 pkg-config@0.3.32 plain@0.2.3 plist@1.10.0 plotters-backend@0.3.7 plotters-svg@0.3.7 plotters@0.3.7 png@0.17.16 png@0.18.0 polling@3.11.0 pollster@0.2.5 pollster@0.4.0 polycool@0.4.0 pori@0.0.0 portable-atomic-util@0.2.4 portable-atomic@1.11.1 postage@0.5.0 postcard@1.1.3 potential_utf@0.1.3 powerfmt@0.2.0 ppv-lite86@0.2.21 precomputed-hash@0.1.1 presser@0.3.1 pretty_assertions@1.4.1 prettyplease@0.2.37 proc-macro-crate@3.4.0 proc-macro-error-attr3@3.1.1 proc-macro-error-attr@1.0.4 proc-macro-error3@3.1.1 proc-macro-error@1.0.4 proc-macro2-diagnostics@0.10.1 proc-macro2@1.0.107 process-backend@0.1.0 process-reader@0.1.0 procfs-core@0.18.0 profiling-procmacros@1.0.17 profiling@1.0.17 prometheus@0.14.0 proptest-derive@0.8.0 proptest-macro@0.6.0 proptest@1.12.0 prost-build@0.14.4 prost-derive@0.14.4 prost-reflect@0.16.5 prost-types@0.14.4 prost@0.14.4 protobuf-support@3.7.2 protobuf@3.7.2 protox-parse@0.9.0 protox@0.9.1 proxyvars@0.2.0 psm@0.1.30 pulldown-cmark-escape@0.10.1 pulldown-cmark@0.10.3 pulldown-cmark@0.13.4 pulley-interpreter@48.0.6 pulley-macros@48.0.6 pxfm@0.1.25 qoi@0.4.1 quick-error@1.2.3 quick-error@2.0.1 quick-xml@0.30.0 quick-xml@0.37.5 quick-xml@0.39.3 quick-xml@0.41.0 quinn-proto@0.11.17 quinn-udp@0.5.14 quinn@0.11.9 quote@1.0.47 r-efi@5.3.0 rand@0.10.2 rand@0.3.23 rand@0.4.6 rand@0.8.6 rand@0.9.4 rand_chacha@0.3.1 rand_chacha@0.9.0 rand_core@0.10.1 rand_core@0.3.1 rand_core@0.4.2 rand_core@0.6.4 rand_core@0.9.3 rand_pcg@0.10.2 rand_pcg@0.3.1 rand_xorshift@0.5.0 random_choice@0.3.2 range-alloc@0.1.4 range-map@0.2.0 rangemap@1.7.1 rav1e@0.8.1 ravif@0.13.0 raw-window-handle@0.6.2 raw-window-metal@1.1.0 rayon-core@1.13.0 rayon@1.11.0 rdrand@0.4.0 read-fonts@0.35.0 read-fonts@0.37.0 redox_syscall@0.5.18 redox_syscall@0.7.5 redox_users@0.5.2 ref-cast-impl@1.0.25 ref-cast@1.0.25 referencing@0.51.0 regalloc2@0.15.2 regex-automata@0.4.18 regex-lite@0.1.8 regex-syntax@0.8.11 regex@1.12.3 renderdoc-sys@1.1.0 reqwest@0.11.27 reqwest@0.12.24 resvg@0.46.0 rfc6979@0.3.1 rgb@0.8.52 ring@0.17.14 rle-decode-fast@1.0.3 rmp@0.8.14 rmpv@1.3.0 roughr-merman@0.12.3 roxmltree@0.20.0 roxmltree@0.21.1 rpassword@7.5.2 rsa@0.9.10 rtoolbox@0.0.3 rtrb@0.3.2 runtimelib@1.4.0 rust-embed-impl@8.11.0 rust-embed-utils@8.11.0 rust-embed@8.11.0 rust_decimal@1.39.0 rustc-demangle@0.1.26 rustc-hash@1.1.0 rustc-hash@2.1.1 rustc_version@0.4.1 rustix-linux-procfs@0.1.1 rustix-openpty@0.2.0 rustix@1.1.4 rustls-native-certs@0.8.3 rustls-pemfile@1.0.4 rustls-pemfile@2.2.0 rustls-pki-types@1.12.0 rustls-platform-verifier-android@0.1.1 rustls-platform-verifier@0.7.0 rustls-webpki@0.103.15 rustls@0.23.46 rustversion@1.0.22 rusty-fork@0.3.1 rustybuzz@0.20.1 ryu-js@1.0.2 ryu@1.0.23 saa@5.4.9 same-file@1.0.6 scc@3.5.6 schannel@0.1.28 schemars@0.9.0 schemars@1.0.4 schemars_derive@1.0.4 scoped-tls@1.0.1 scopeguard@1.2.0 screencapturekit-sys@0.2.8 screencapturekit@0.2.8 scroll@0.12.0 scroll_derive@0.12.1 sdd@4.6.2 sea-bae@0.2.2 sea-orm-macros@1.1.10 sea-orm@1.1.10 sea-query-binder@0.7.0 sea-query@0.32.7 seahash@4.1.0 sec1@0.3.0 seccompiler@0.5.0 secrecy@0.10.3 security-framework-sys@2.15.0 security-framework@3.5.1 selectors@0.37.0 self_cell@1.2.2 semver@1.0.28 send_wrapper@0.6.0 serde@1.0.229 serde_bytes@0.11.19 serde_core@1.0.229 serde_derive@1.0.229 serde_derive_internals@0.29.1 serde_fmt@1.0.3 serde_json@1.0.151 serde_json_lenient@0.2.4 serde_path_to_error@0.1.20 serde_repr@0.1.20 serde_spanned@0.6.9 serde_spanned@1.0.3 serde_urlencoded@0.7.1 serde_with@3.22.0 serde_with_macros@3.22.0 serde_yaml@0.9.34+deprecated serde_yaml_ng@0.10.0 servo_arc@0.4.3 sha-1@0.10.1 sha1@0.10.6 sha1_smol@1.0.1 sha2@0.10.9 sharded-slab@0.1.7 shell-words@1.1.0 shellexpand@3.1.1 shingles@0.1.1 shlex@1.3.0 shlex@2.0.1 signal-hook-registry@1.4.6 signal-hook@0.4.4 signature@1.6.4 signature@2.2.0 simd-adler32@0.3.7 simd_cesu8@1.2.0 simd_helpers@0.1.0 simdutf8@0.1.5 similar@2.7.0 simple_asn1@0.6.3 simplecss@0.2.2 simplelog@0.12.2 siphasher@0.3.11 siphasher@1.0.1 skrifa@0.37.0 skrifa@0.40.0 slab@0.4.11 slotmap@1.0.7 smallvec@1.16.1 smart-default@0.7.1 smol@2.0.2 smol_str@0.3.6 snafu-derive@0.8.9 snafu@0.8.9 socket2@0.5.10 socket2@0.6.5 spdx@0.10.9 spin@0.10.0 spin@0.9.8 spirv@0.4.0+sdk-1.4.341.0 spki@0.6.0 spki@0.7.3 sqlformat@0.2.6 sqlx-core@0.8.6 sqlx-macros-core@0.8.6 sqlx-macros@0.8.6 sqlx-mysql@0.8.6 sqlx-postgres@0.8.6 sqlx-sqlite@0.8.6 sqlx@0.8.6 stable_deref_trait@1.2.1 stacker@0.1.25 stacksafe-macro@1.0.3 stacksafe@1.0.3 static_assertions@1.1.0 streaming-iterator@0.1.9 strict-num@0.1.1 string_cache@0.9.0 string_cache_codegen@0.6.1 stringprep@0.1.5 strsim@0.11.1 strum@0.26.3 strum@0.28.0 strum_macros@0.27.2 strum_macros@0.28.0 subsecond-types@0.7.10 subsecond@0.7.10 subtle@2.6.1 sval@2.15.0 sval_buffer@2.15.0 sval_dynamic@2.15.0 sval_fmt@2.15.0 sval_json@2.15.0 sval_nested@2.15.0 sval_ref@2.15.0 sval_serde@2.15.0 svg_fmt@0.4.5 svgtypes@0.16.1 swash@0.2.6 symphonia-codec-pcm@0.5.5 symphonia-core@0.5.5 symphonia-format-riff@0.5.5 symphonia-metadata@0.5.5 symphonia@0.5.5 syn@1.0.109 syn@2.0.117 syn@3.0.3 sync_wrapper@0.1.2 sync_wrapper@1.0.2 synchronoise@1.0.1 synstructure@0.13.2 sys-locale@0.3.2 sysinfo@0.31.4 sysinfo@0.39.6 system-configuration-sys@0.5.0 system-configuration-sys@0.6.0 system-configuration@0.5.1 system-configuration@0.8.0 system-deps@7.0.7 taffy@0.13.0 tagptr@0.2.0 tao-core-video-sys@0.2.0 target-lexicon@0.13.5 target-spec@3.7.0 tauri-winrt-notification@0.7.3 tempfile@3.27.0 tendril@0.5.1 termcolor@1.4.1 terminal_size@0.4.3 thiserror-impl@1.0.69 thiserror-impl@2.0.17 thiserror@1.0.69 thiserror@2.0.17 thread_local@1.1.9 tiff@0.11.3 time-core@0.1.8 time-macros@0.2.27 time@0.3.47 tiny-keccak@2.0.2 tiny-skia-path@0.11.4 tiny-skia@0.11.4 tiny_http@0.12.0 tinystr@0.8.4 tinytemplate@1.2.1 tinyvec@1.10.0 tinyvec_macros@0.1.1 tokio-io@0.1.13 tokio-macros@2.7.0 tokio-native-tls@0.3.1 tokio-rustls@0.26.4 tokio-socks@0.5.2 tokio-stream@0.1.17 tokio-tungstenite@0.20.1 tokio-tungstenite@0.28.0 tokio-util@0.7.18 tokio@1.52.1 toml@0.5.11 toml@0.8.23 toml@0.9.8 toml_datetime@0.6.11 toml_datetime@0.7.3 toml_edit@0.22.27 toml_edit@0.23.7 toml_parser@1.0.4 toml_write@0.1.2 toml_writer@1.0.4 topological-sort@0.2.2 tower-http@0.4.4 tower-http@0.6.11 tower-layer@0.3.3 tower-service@0.3.3 tower@0.4.13 tower@0.5.2 tracing-attributes@0.1.31 tracing-core@0.1.36 tracing-log@0.2.0 tracing-serde@0.2.0 tracing-subscriber@0.3.22 tracing-tracy@0.11.4 tracing@0.1.44 tracy-client-sys@0.27.0 tracy-client@0.18.3 tree-sitter-bash@0.25.1 tree-sitter-c@0.24.1 tree-sitter-css@0.23.2 tree-sitter-diff@0.1.0 tree-sitter-elixir@0.3.4 tree-sitter-embedded-template@0.23.2 tree-sitter-go@0.25.0 tree-sitter-html@0.23.2 tree-sitter-jsdoc@0.23.2 tree-sitter-json@0.24.8 tree-sitter-python@0.25.0 tree-sitter-regex@0.24.3 tree-sitter-ruby@0.23.1 tree-sitter-rust@0.24.2 triomphe@0.1.15 try-lock@0.2.5 ttf-parser@0.25.1 tungstenite@0.20.1 tungstenite@0.28.0 typeid@1.0.3 typenum@1.19.0 ucd-trie@0.1.7 uds@0.4.2 uds_windows@1.1.0 unarray@0.1.4 unicase@2.8.1 unicode-bidi-mirroring@0.4.0 unicode-bidi@0.3.18 unicode-ccc@0.4.0 unicode-general-category@1.1.0 unicode-ident@1.0.24 unicode-linebreak@0.1.5 unicode-normalization@0.1.25 unicode-properties@0.1.3 unicode-script@0.5.8 unicode-segmentation@1.13.3 unicode-vo@0.1.0 unicode-width@0.1.14 unicode-width@0.2.2 unicode-xid@0.2.6 unicode_categories@0.1.1 unindent@0.2.4 unsafe-libyaml@0.2.11 untrusted@0.7.1 untrusted@0.9.0 url@2.5.7 urlencoding@2.1.3 usvg@0.46.0 utf-8@0.7.6 utf16_iter@1.0.5 utf8-chars@3.0.6 utf8_iter@1.0.4 utf8parse@0.2.2 uuid-simd@0.8.0 uuid@1.18.1 v_frame@0.3.9 valuable@0.1.1 value-bag-serde1@1.12.0 value-bag-sval2@1.12.0 value-bag@1.12.0 vcpkg@0.2.15 version-compare@0.2.0 version_check@0.9.5 vscode_theme@0.2.0 vsimd@0.8.0 vswhom-sys@0.1.3 vswhom@0.1.0 vte@0.15.0 wait-timeout@0.2.1 waker-fn@1.2.0 walkdir@2.5.0 want@0.3.1 wasi@0.11.1+wasi-snapshot-preview1 wasip2@1.0.1+wasi-0.2.4 wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06 wasite@0.1.0 wasm-bindgen-futures@0.4.79 wasm-bindgen-macro-support@0.2.129 wasm-bindgen-macro@0.2.129 wasm-bindgen-shared@0.2.129 wasm-bindgen@0.2.129 wasm-encoder@0.201.0 wasm-encoder@0.227.1 wasm-encoder@0.244.0 wasm-encoder@0.254.2 wasm-metadata@0.201.0 wasm-metadata@0.227.1 wasm-metadata@0.244.0 wasm-metadata@0.254.2 wasm-streams@0.4.2 wasmparser@0.201.0 wasmparser@0.227.1 wasmparser@0.244.0 wasmparser@0.254.2 wasmprinter@0.254.2 wasmtime-c-api-impl@48.0.6 wasmtime-environ@48.0.6 wasmtime-internal-c-api-macros@48.0.6 wasmtime-internal-component-macro@48.0.6 wasmtime-internal-component-util@48.0.6 wasmtime-internal-core@48.0.6 wasmtime-internal-cranelift@48.0.6 wasmtime-internal-fiber@48.0.6 wasmtime-internal-jit-debug@48.0.6 wasmtime-internal-jit-icache-coherence@48.0.6 wasmtime-internal-unwinder@48.0.6 wasmtime-internal-versioned-export-macros@48.0.6 wasmtime-internal-wit-bindgen@48.0.6 wasmtime-wasi-io@48.0.6 wasmtime-wasi@48.0.6 wasmtime@48.0.6 wax@0.7.0 wayland-backend@0.3.15 wayland-client@0.31.11 wayland-cursor@0.31.11 wayland-protocols-plasma@0.3.9 wayland-protocols-wlr@0.3.9 wayland-protocols@0.32.9 wayland-scanner@0.31.7 wayland-sys@0.31.11 web-sys@0.3.106 web-time@1.1.0 web_atoms@0.2.6 webpki-root-certs@1.0.9 webpki-roots@0.26.8 webpki-roots@1.0.8 weezl@0.1.10 which@8.0.5 whisper-rs-sys@0.15.0 whisper-rs@0.16.0 whoami@1.6.1 winapi-i686-pc-windows-gnu@0.4.0 winapi-util@0.1.11 winapi-x86_64-pc-windows-gnu@0.4.0 winapi@0.3.9 windows-bindgen@0.61.1 windows-collections@0.2.0 windows-collections@0.3.2 windows-core@0.56.0 windows-core@0.57.0 windows-core@0.58.0 windows-core@0.61.2 windows-core@0.62.2 windows-future@0.2.1 windows-future@0.3.2 windows-implement@0.56.0 windows-implement@0.57.0 windows-implement@0.58.0 windows-implement@0.60.2 windows-interface@0.56.0 windows-interface@0.57.0 windows-interface@0.58.0 windows-interface@0.59.3 windows-link@0.1.3 windows-link@0.2.1 windows-numerics@0.2.0 windows-numerics@0.3.1 windows-registry@0.4.0 windows-registry@0.6.1 windows-result@0.1.2 windows-result@0.2.0 windows-result@0.3.4 windows-result@0.4.1 windows-strings@0.1.0 windows-strings@0.3.1 windows-strings@0.4.2 windows-strings@0.5.1 windows-sys@0.45.0 windows-sys@0.48.0 windows-sys@0.52.0 windows-sys@0.59.0 windows-sys@0.60.2 windows-sys@0.61.2 windows-targets@0.42.2 windows-targets@0.48.5 windows-targets@0.52.6 windows-targets@0.53.5 windows-threading@0.1.0 windows-threading@0.2.1 windows-version@0.1.7 windows@0.56.0 windows@0.57.0 windows@0.58.0 windows@0.61.3 windows@0.62.2 windows_aarch64_gnullvm@0.42.2 windows_aarch64_gnullvm@0.48.5 windows_aarch64_gnullvm@0.52.6 windows_aarch64_gnullvm@0.53.1 windows_aarch64_msvc@0.42.2 windows_aarch64_msvc@0.48.5 windows_aarch64_msvc@0.52.6 windows_aarch64_msvc@0.53.1 windows_i686_gnu@0.42.2 windows_i686_gnu@0.48.5 windows_i686_gnu@0.52.6 windows_i686_gnu@0.53.1 windows_i686_gnullvm@0.52.6 windows_i686_gnullvm@0.53.1 windows_i686_msvc@0.42.2 windows_i686_msvc@0.48.5 windows_i686_msvc@0.52.6 windows_i686_msvc@0.53.1 windows_x86_64_gnu@0.42.2 windows_x86_64_gnu@0.48.5 windows_x86_64_gnu@0.52.6 windows_x86_64_gnu@0.53.1 windows_x86_64_gnullvm@0.42.2 windows_x86_64_gnullvm@0.48.5 windows_x86_64_gnullvm@0.52.6 windows_x86_64_gnullvm@0.53.1 windows_x86_64_msvc@0.42.2 windows_x86_64_msvc@0.48.5 windows_x86_64_msvc@0.52.6 windows_x86_64_msvc@0.53.1 winnow@0.7.13 winnow@1.0.2 winreg@0.50.0 winreg@0.55.0 winresource@0.1.23 winx@0.36.4 wio@0.2.2 wit-bindgen-core@0.22.0 wit-bindgen-core@0.41.0 wit-bindgen-core@0.51.0 wit-bindgen-rt@0.22.0 wit-bindgen-rt@0.41.0 wit-bindgen-rust-macro@0.22.0 wit-bindgen-rust-macro@0.41.0 wit-bindgen-rust-macro@0.51.0 wit-bindgen-rust@0.22.0 wit-bindgen-rust@0.41.0 wit-bindgen-rust@0.51.0 wit-bindgen@0.22.0 wit-bindgen@0.41.0 wit-bindgen@0.46.0 wit-bindgen@0.51.0 wit-component@0.201.0 wit-component@0.227.1 wit-component@0.244.0 wit-component@0.254.2 wit-parser@0.201.0 wit-parser@0.227.1 wit-parser@0.244.0 wit-parser@0.254.2 write16@1.0.0 writeable@0.6.4 x11@2.21.0 x11rb-protocol@0.13.2 x11rb@0.13.2 xattr@1.6.1 xcb@1.6.0 xcursor@0.3.10 xkbcommon@0.8.0 xkeysym@0.2.1 xml-rs@0.8.28 xml5ever@0.39.0 xmlparser@0.13.6 xmlwriter@0.1.0 xxhash-rust@0.8.16 y4m@0.8.0 yaml-rust2@0.8.1 yansi@1.0.1 yawc@0.4.2 yazi@0.2.1 yeslogic-fontconfig-sys@6.0.0 yoke-derive@0.8.2 yoke@0.8.3 zbus-lockstep-macros@0.5.2 zbus-lockstep@0.5.2 zbus@5.13.2 zbus_macros@5.13.2 zbus_names@4.3.2 zbus_xml@5.1.1 zed_extension_api@0.1.0 zed_extension_api@0.7.0 zeno@0.3.3 zerocopy-derive@0.8.27 zerocopy@0.8.27 zerofrom-derive@0.1.6 zerofrom@0.1.6 zeroize@1.8.2 zeroize_derive@1.4.2 zeromq@0.5.0 zerotrie@0.2.5 zerovec-derive@0.11.5 zerovec@0.11.8 zip@0.6.6 zmij@1.0.23 zstd-safe@5.0.2+zstd.1.5.2 zstd-safe@7.3.0 zstd-sys@2.0.16+zstd.1.5.7 zstd@0.11.2+zstd.1.5.2 zstd@0.13.3 zune-core@0.5.1 zune-inflate@0.2.54 zune-jpeg@0.5.15 zvariant@5.11.0 zvariant_derive@5.11.0 zvariant_utils@3.3.1 " declare -A GIT_CRATES=( [alacritty_terminal]='https://github.com/zed-industries/alacritty;4c129667ce56611becdc82de6e28218c80e2e88f;alacritty-%commit%/alacritty_terminal' [async-pipe]='https://github.com/zed-industries/async-pipe-rs;82d00a04211cf4e1236029aa03e6b6ce2a74c553;async-pipe-rs-%commit%' [async-process]='https://github.com/zed-industries/async-process;0b6d6713570af61806e1e5cb40e0f757cb93fd9d;async-process-%commit%' [async-tar]='https://github.com/zed-industries/async-tar;bd3ad6f89df9a9da7a8535958756d6bf465936a0;async-tar-%commit%' [async-task]='https://github.com/zed-industries/async-task;015845a19fc31752c02367567d3b8900a406f9da;async-task-%commit%' [calloop]='https://github.com/zed-industries/calloop;3759371fee14c40066d64777e2a36b6ffcc22590;calloop-%commit%' [cpal]='https://github.com/RustAudio/cpal;e1612d5d98152f8dc2a62e1b51ef7cbf4f7f26b7;cpal-%commit%' [dap-types]='https://github.com/zed-industries/dap-types;1b461b310481d01e02b2603c16d7144b926339f8;dap-types-%commit%/dap-types' [gh-workflow-macros]='https://github.com/zed-industries/gh-workflow;37f3c0575d379c218a9c455ee67585184e40d43f;gh-workflow-%commit%/crates/gh-workflow-macros' [gh-workflow]='https://github.com/zed-industries/gh-workflow;37f3c0575d379c218a9c455ee67585184e40d43f;gh-workflow-%commit%/crates/gh-workflow' [khronos-egl]='https://github.com/zed-industries/khronos-egl;42214b36347b108fd9630ca6254b96dde59e04fe;khronos-egl-%commit%' [libwebrtc]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/libwebrtc' [livekit-api]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/livekit-api' [livekit-protocol]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/livekit-protocol' [livekit-runtime]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/livekit-runtime' [livekit]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/livekit' [lsp-types]='https://github.com/zed-industries/lsp-types;f1783e63a7f4eb4397bf51d4148b4895a1f7ab16;lsp-types-%commit%' [naga-types]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/naga-types' [naga]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/naga' [notify-types]='https://github.com/zed-industries/notify;d842f16b2716bd60f09caf3ae3a894237ab38f54;notify-%commit%/notify-types' [notify]='https://github.com/zed-industries/notify;d842f16b2716bd60f09caf3ae3a894237ab38f54;notify-%commit%/notify' [nvim-rs]='https://github.com/KillTheMule/nvim-rs;764dd270c642f77f10f3e19d05cc178a6cbe69f3;nvim-rs-%commit%' [pet-conda]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-conda' [pet-core]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-core' [pet-env-var-path]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-env-var-path' [pet-fs]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-fs' [pet-global-virtualenvs]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-global-virtualenvs' [pet-hatch]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-hatch' [pet-homebrew]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-homebrew' [pet-jsonrpc]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-jsonrpc' [pet-linux-global-python]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-linux-global-python' [pet-mac-commandlinetools]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-mac-commandlinetools' [pet-mac-python-org]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-mac-python-org' [pet-mac-xcode]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-mac-xcode' [pet-pipenv]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-pipenv' [pet-pixi]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-pixi' [pet-poetry]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-poetry' [pet-pyenv]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-pyenv' [pet-python-utils]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-python-utils' [pet-reporter]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-reporter' [pet-telemetry]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-telemetry' [pet-uv]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-uv' [pet-venv]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-venv' [pet-virtualenv]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-virtualenv' [pet-virtualenvwrapper]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-virtualenvwrapper' [pet-windows-registry]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-windows-registry' [pet-windows-store]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-windows-store' [pet-winpython]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet-winpython' [pet]='https://github.com/zed-industries/python-environment-tools;5aad7164bfc2a58977b103c8ef8fdd7302ed2e9f;python-environment-tools-%commit%/crates/pet' [rodio]='https://github.com/RustAudio/rodio;3ee9745862279ce1d18db593155016e7ce024aeb;rodio-%commit%' [trash]='https://github.com/zed-industries/trash-rs;41c6c800d884a89351f3b8856d12894cccee261d;trash-rs-%commit%' [tree-sitter-cpp]='https://github.com/tree-sitter/tree-sitter-cpp;5cb9b693cfd7bfacab1d9ff4acac1a4150700609;tree-sitter-cpp-%commit%' [tree-sitter-gitcommit]='https://github.com/zed-industries/tree-sitter-git-commit;88309716a69dd13ab83443721ba6e0b491d37ee9;tree-sitter-git-commit-%commit%' [tree-sitter-gomod]='https://github.com/camdencheek/tree-sitter-go-mod;2e886870578eeba1927a2dc4bd2e2b3f598c5f9a;tree-sitter-go-mod-%commit%' [tree-sitter-gowork]='https://github.com/zed-industries/tree-sitter-go-work;acb0617bf7f4fda02c6217676cc64acb89536dc7;tree-sitter-go-work-%commit%' [tree-sitter-heex]='https://github.com/zed-industries/tree-sitter-heex;1dd45142fbb05562e35b2040c6129c9bca346592;tree-sitter-heex-%commit%' [tree-sitter-language]='https://github.com/tree-sitter/tree-sitter;43623ec9bf0eaaf7113285c46e8a09018f181b18;tree-sitter-%commit%/crates/language' [tree-sitter-md]='https://github.com/zed-industries/tree-sitter-markdown;b596e737286780d7bfa9fcddceaeeb754574b352;tree-sitter-markdown-%commit%' [tree-sitter-typescript]='https://github.com/zed-industries/tree-sitter-typescript;e2c53597d6a5d9cf7bbe8dccde576fe1e46c5899;tree-sitter-typescript-%commit%' [tree-sitter-yaml]='https://github.com/zed-industries/tree-sitter-yaml;baff0b51c64ef6a1fb1f8390f3ad6015b83ec13a;tree-sitter-yaml-%commit%' [tree-sitter]='https://github.com/tree-sitter/tree-sitter;43623ec9bf0eaaf7113285c46e8a09018f181b18;tree-sitter-%commit%/lib' [wasm_thread]='https://github.com/zed-industries/wasm_thread;0cf96c7708dfb97ccf3da50347e25edcf75d6937;wasm_thread-%commit%' [webrtc-sys-build]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/webrtc-sys/build' [webrtc-sys]='https://github.com/zed-industries/livekit-rust-sdks;0a1c519cfce9b365229026b55de9b9dbdb6fed3c;livekit-rust-sdks-%commit%/webrtc-sys' [wgpu-core-deps-apple]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-core/platform-deps/apple' [wgpu-core-deps-emscripten]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-core/platform-deps/emscripten' [wgpu-core-deps-linux-android-bsd]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-core/platform-deps/linux-android-bsd' [wgpu-core-deps-wasm]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-core/platform-deps/wasm' [wgpu-core-deps-windows]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-core/platform-deps/windows' [wgpu-core]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-core' [wgpu-hal]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-hal' [wgpu-naga-bridge]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-naga-bridge' [wgpu-sync]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-sync' [wgpu-types]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu-types' [wgpu]='https://github.com/gfx-rs/wgpu;3b3506ea31154edc04de64debda0e780cba2639c;wgpu-%commit%/wgpu' [windows-capture]='https://github.com/zed-industries/windows-capture;f0d6c1b6691db75461b732f6d5ff56eed002eeb9;windows-capture-%commit%' [wprcontrol]='https://github.com/zed-industries/wprcontrol;cd811f7d744f65291e13131b1d907fda63ed91a1;wprcontrol-%commit%' [xim-ctext]='https://github.com/zed-industries/xim-rs;16f35a2c881b815a2b6cdfd6687988e84f8447d8;xim-rs-%commit%/xim-ctext' [xim-parser]='https://github.com/zed-industries/xim-rs;16f35a2c881b815a2b6cdfd6687988e84f8447d8;xim-rs-%commit%/xim-parser' [zed-font-kit]='https://github.com/zed-industries/font-kit;94b0f28166665e8fd2f53ff6d268a14955c82269;font-kit-%commit%' [zed-reqwest]='https://github.com/zed-industries/reqwest;33bc764aa15ff7b200bf7c93bd96e24878d53e14;reqwest-%commit%' [zed-scap]='https://github.com/zed-industries/scap;4afea48c3b002197176fb19cd0f9b180dd36eaac;scap-%commit%' [zed-xim]='https://github.com/zed-industries/xim-rs;16f35a2c881b815a2b6cdfd6687988e84f8447d8;xim-rs-%commit%' ) # Zeo versions itself: ${PV} is Zeo's own version and says nothing about the Zed # it is built from. Gentoo's version grammar (PMS 3.2) cannot carry two upstream # versions, so the Zed source is named by EGIT_COMMIT alone -- and the distfile # after it, which is what lets the overlay autoupdate bump this ebuild (it # rewrites the date and EGIT_COMMIT; a second version variable it could not # keep current would leave a new tarball under an old, already-manifested name). EGIT_COMMIT="92447a17cc008225c73619f1c3f0cdefc8ababf3" # LLVM 23 only, so it is the default slot: llvm-r1 would always prefer slot 22 # (its newest stable) whenever 22 is listed. RUST_NEEDS_LLVM ties the Rust slot # to it, so this builds with Rust 1.99, one release past upstream's 1.98.1 pin # in rust-toolchain.toml -- the series' suites pass there (zed-patches test.sh). LLVM_COMPAT=( 23 ) RUST_MIN_VER="1.99.0" RUST_NEEDS_LLVM=1 WEBRTC_COMMIT="0001d84-4" # BENTOO-DIVERGENCE: INHERIT - llvm-r1, because series 1.20 needs a pinned LLVM # slot to build; 1.14 in ::gentoo does not. # BENTOO-DIVERGENCE: PATCHES - overlay-only, all of them wiring the # claude-agent-acp integrations; ::gentoo carries none. inherit cargo check-reqs desktop flag-o-matic llvm-r1 toolchain-funcs xdg # BENTOO-DIVERGENCE: metadata.xml - a block describing sixteen flags, # where ::gentoo's file has none. Every one of them is a flag this overlay adds # (see the IUSE tag). ::gentoo has nothing to describe because it exposes none # of them, and no ::gentoo package corresponds to this one at all. # BENTOO-DIVERGENCE: KEYWORDS - no ~arm64, where ::gentoo has it. Measured # 2026-09-07 by keywording it and running pkgcheck: dev-util/claude-agent-acp-plus # and dev-util/claude-agent-acp-tui are both DEFAULT-ON here and both ship a # prebuilt x64 binary (claude-agent-sdk-linux-x64/claude, node-pty's pty.node), # so an arm64 user would get an uninstallable package out of the box. # Arch-guarding the IUSE is not the answer - that poisons md5-cache. Reopen this # when those two gain an arm64 build; nothing else here is amd64-bound. DESCRIPTION="Zeo - the Zed editor, rebranded, with the bentoo patch series" HOMEPAGE="https://github.com/zeo-workspace/zeo https://zed.dev" SRC_URI=" https://github.com/zed-industries/zed/archive/${EGIT_COMMIT}.tar.gz -> zed-${EGIT_COMMIT}.tar.gz amd64? ( https://github.com/zed-industries/livekit-rust-sdks/releases/download/webrtc-${WEBRTC_COMMIT}/webrtc-linux-x64-release.zip -> webrtc-${WEBRTC_COMMIT}-linux-x64-release.zip ) arm64? ( https://github.com/zed-industries/livekit-rust-sdks/releases/download/webrtc-${WEBRTC_COMMIT}/webrtc-linux-arm64-release.zip -> webrtc-${WEBRTC_COMMIT}-linux-arm64-release.zip ) ${CARGO_CRATE_URIS}" # The upstream tarball unpacks to zed-; ${PN} is "zeo" here, so the # directory must be named explicitly rather than derived from it. S="${WORKDIR}/zed-${EGIT_COMMIT}" # BENTOO-DIVERGENCE: LICENSE - the vendored crate set differs six series on, so # the LICENSE+= block below names licences 1.14 never pulled in, among them # CDLA-Permissive-2.0. LICENSE="GPL-3+" # license for fuchsia-cprng-0.1.1, which is not set correctly in crate LICENSE+=" BSD" # Dependent crate licenses LICENSE+=" 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 Unlicense ZLIB BZIP2 " # whisper-rs and whisper-rs-sys (0067) are Unlicense, and whisper.cpp, which # whisper-rs-sys bundles, is MIT. They reach the binary only with USE=voice, so # the licence is conditional here. pycargoebuild puts Unlicense in the block # above, because CRATES lists every crate whatever the USE flags; after a # regeneration, move it back here. LICENSE+=" voice? ( Unlicense )" SLOT="0" # The arm64 half of SRC_URI and of src_compile's LK_CUSTOM_WEBRTC is kept even # though KEYWORDS carries no ~arm64: it is what a future re-keyword needs, and # the only thing standing in the way is the two Claude agents named above. KEYWORDS="~amd64" # BENTOO-DIVERGENCE: IUSE - claude-agent-acp-plus, claude-agent-acp-tui and # claude-code-ide gate integrations with overlay-only packages; X is exposed # separately from wayland here. # # pulseaudio was dropped on 2026-09-09 rather than carried: it changed no part # of the build. Zed's audio path is cpal, which on Linux is ALSA -- the lockfile # carries alsa/alsa-sys and no libpulse crate at all -- so the flag only added # media-libs/libpulse to the depset. A PulseAudio sink is reached through # media-plugins/alsa-plugins[pulseaudio], which is a runtime choice, not a # property of this binary. # # devtools-bridge was added on 2026-10-10 (Zeo 0.4.0, story 033): patch 0052, the # socket the zeo-devtools Vite plugin talks to. On by default; it needs the # claude-agent-acp-plus group (0040's router, 0045's new thread), not # claude-code-ide. # # devtools-panel was added on 2026-10-15 (story 055): patch 0063, the Zeo half of # the zeo-devtools panel page -- devtools threads of the project, the # `devtools: start` / `devtools: open in browser` actions, and a badge and # filter in the thread list. On by default; it extends 0058's session code, so # it needs browser-extension. # # epic was added on 2026-10-18 (story 042): patch 0066, a read-only "Epic # Stories" dock panel listing the project's .epic/ stories with their status and # tasks.md progress, followed live. On by default; it is generated on top of the # claude-agent-acp-plus group (its wiring sits beside 0035's), so it needs that # flag, and nothing else. # # voice was added on 2026-10-19 (story 044): patch 0067, dictation into the # agent composer -- a microphone button and ctrl-alt-v, transcribed on this # machine by whisper.cpp (whisper-rs), the text left unsent. On by default; it # is generated on top of the claude-agent-acp-plus group (its composer hunks sit # beside 0043-0045's), so it needs that flag, and nothing else: it applied with # no fuzz in all eleven combinations of the other optional groups that were # checked. It also pulls in # app-accessibility/whisper-models[base], so the default model is on disk and # Zeo never has to download it. # # ai-jail was added on 2026-10-03, carried over from app-editors/zed when that # package stopped being part of this chain: it pulls in sys-apps/ai-jail, a # sandbox for AI coding agents. Since story 043 it also applies patch 0057, the # Agent Sandbox: a per-project switch in Settings -> AI -> Agent Sandbox # (ai-jail) that starts the Claude adapters through ai-jail with a generated # command, a jail icon in the agent panel and an ai-memory section. It stays # off by default: the jail needs a one-time login in its own config directory, # and the portable build leaves the group out (series `# @default: off`). # # inspector is the GPUI UI inspector. # # test is not a Zed feature: src_test has existed here without it, which left # RESTRICT unable to say the suite is optional. # # collab, extensions-cli and remote-server are deliberately NOT offered here. # Each installs a binary under a name app-editors/zed uses -- collab, # zed-extension, zed-remote-server -- and renaming Zed's server infrastructure is # not what a rebrand of the editor is for. IUSE="+X ai-jail +browser-extension +claude-agent-acp-plus +claude-agent-acp-tui +claude-code-ide +devtools-bridge +devtools-panel +epic inspector +mimalloc neovim screen-capture test tracy +voice +wayland" # BENTOO-DIVERGENCE: REQUIRED_USE - the || ( X wayland ) clause, which follows # from the X and wayland flags this overlay adds (see the IUSE tag). ::gentoo # exposes neither, so it has nothing to constrain. ai-jail? requires the agent # it wraps, and the group 0057 is generated on top of (devtools-bridge's 0052). # devtools-bridge? requires the group 0052 is generated on top of. # browser-extension? requires devtools-bridge: the browser reaches Zeo through # 0052's bridge socket, and 0058 is generated on top of it. # devtools-panel? requires browser-extension: 0063 extends 0058's session code # and is generated on top of it. # epic? requires claude-agent-acp-plus: 0066 is generated on top of that group. # voice? requires claude-agent-acp-plus: 0067 is generated on top of that group, # and of no other (eleven combinations of the optional groups checked). # test? requires the adapter flags the test-only patches (0050, 0051) are # generated on top of. REQUIRED_USE=" || ( X wayland ) ai-jail? ( claude-agent-acp-plus devtools-bridge ) browser-extension? ( devtools-bridge ) devtools-panel? ( browser-extension ) devtools-bridge? ( claude-agent-acp-plus ) epic? ( claude-agent-acp-plus ) test? ( claude-agent-acp-plus claude-code-ide ) voice? ( claude-agent-acp-plus ) " RESTRICT="!test? ( test )" CHECKREQS_DISK_BUILD="18G" CHECKREQS_MEMORY="8G" # sys-apps/xdg-desktop-portal in DEPEND below: ashpd is used from BOTH gpui # backends (x11/client.rs and wayland/client.rs), so the portal is needed # whichever of the two USE flags is on -- unconditional, as ::gentoo has it. # Without it file dialogs and screen capture fail at runtime, not at build. # # The note is out here because a "#" inside DEPEND="..." is not a comment: it is # content, and portage parses it as a package atom. Putting it inside made the # whole depset unparseable while still passing bash -n. # BENTOO-DIVERGENCE: DEPEND - sys-apps/dbus, which series 1.20 links against # and 1.14 in ::gentoo does not. DEPEND=" dev-libs/glib:2 || ( media-fonts/dejavu media-fonts/cantarell media-fonts/noto media-fonts/ubuntu-font-family ) media-libs/alsa-lib media-libs/fontconfig media-libs/freetype media-libs/vulkan-loader[X?] sys-apps/xdg-desktop-portal virtual/zlib:= screen-capture? ( wayland? ( media-video/pipewire sys-apps/dbus ) ) wayland? ( dev-libs/wayland x11-libs/libxkbcommon[wayland] ) X? ( x11-libs/libX11 x11-libs/libxcb:= x11-libs/libxkbcommon[X] ) " # BENTOO-DIVERGENCE: RDEPEND - dbus as above, plus dev-util/claude-agent-acp-plus # and -tui, which exist only in this overlay, the ai-jail sandbox in either # of its two packagings, and app-accessibility/whisper-models for voice: the # speech model 0067 reads from /usr/share/whisper-models before it would # download one. # claude-agent-acp-plus >= 0.24.0: the first release that sends the # _claude/tasks snapshot 0034, 0037 and 0038 read; 0.23.6 sends only a count, # which leaves the tasks card empty. # claude-agent-acp-plus >= 0.26.0: the first release with _claude/tasks # version 2 (tail, hasOutput, _claude/tasks/output), which 0056 reads. # Exactly one editor of the family is installed at a time, by decision # (2026-10-01) rather than by a file collision with zed or zed-bin: zeo owns # /usr/bin/zeo, /usr/libexec/zeo-editor and dev.zeo.Zeo.*, which neither # installs. zeo-bin installs those same paths, so that one is a real collision. RDEPEND=" ${DEPEND} !app-editors/zed !app-editors/zed-bin !app-editors/zeo-bin ai-jail? ( || ( sys-apps/ai-jail sys-apps/ai-jail-bin ) ) browser-extension? ( www-plugins/zeo-browser ) claude-agent-acp-plus? ( >=dev-util/claude-agent-acp-plus-0.26.0 ) claude-agent-acp-tui? ( dev-util/claude-agent-acp-tui ) claude-code-ide? ( dev-util/claude-code ) neovim? ( app-editors/neovim ) voice? ( app-accessibility/whisper-models[base] ) " BDEPEND=" app-arch/unzip dev-build/cmake dev-util/vulkan-headers sys-devel/gettext wayland? ( dev-libs/wayland-protocols dev-util/wayland-scanner ) $(llvm_gen_dep ' llvm-core/clang:${LLVM_SLOT}= llvm-core/llvm:${LLVM_SLOT}= ') " QA_FLAGS_IGNORED=" usr/bin/zeo usr/libexec/zeo-editor " pkg_setup() { if tc-is-lto; then if tc-is-gcc; then export CARGO_PROFILE_RELEASE_LTO="true" elif tc-is-clang; then export CARGO_PROFILE_RELEASE_LTO="thin" fi else export CARGO_PROFILE_RELEASE_LTO="false" fi strip-unsupported-flags # flags from upstream export RUSTFLAGS="${RUSTFLAGS} -C symbol-mangling-version=v0 --cfg tokio_unstable -C link-args=-Wl,--disable-new-dtags,-rpath,\$ORIGIN/../lib" llvm-r1_pkg_setup rust_pkg_setup } src_prepare() { # 0018 carries no USE flag on purpose. It adds the drop_folder_behavior # setting, whose default is the behaviour Zed already had, so applying it # unconditionally changes nothing for anyone who does not set it -- and a # flag would only hide a setting behind a rebuild. PATCHES+=( "${FILESDIR}/0018-drop-folder-opens-project.patch" ) # 0024 is unconditional for the same reason as 0018: it adds a parameter to # an existing URL scheme (zed://agent?session=) and changes no default. # Nothing about it needs an adapter -- the session id it takes is the agent # session id, which AgentPanel::open_thread already resolved, so gating it on # claude-agent-acp-plus would withhold it from every other agent for no # reason. Numbered 0024 because 0019-0023 were already the rebrand's. PATCHES+=( "${FILESDIR}/0024-agent-deep-link-session.patch" ) # 0019-0023 are what make this package Zeo rather than Zed, so they carry no # USE flag: without them this ebuild would build app-editors/zed under a # different name and install it over the top of it. PATCHES+=( "${FILESDIR}/0019-paths-use-Zeo-state-directories.patch" "${FILESDIR}/0020-zed-name-the-application-binary-zeo.patch" "${FILESDIR}/0021-release_channel-add-the-Zeo-channel.patch" "${FILESDIR}/0022-zed-register-zeo-and-keep-accepting-zed.patch" # 0023 fixes what 0020 broke: the CLI finds the application through a # fixed list of path literals, and renaming the [[bin]] target left that # list pointing at a binary that no longer exists. Nothing connects the # literals to the Cargo target, so it compiles clean and fails at run # time. It also decides src_install below: the list is Zeo-only, so the # application MUST land at libexec/zeo-editor. "${FILESDIR}/0023-cli-point-the-launcher-at-the-Zeo-application-binary.patch" # 0025 renames the product in the strings a user actually reads. It is # 21 literals out of 404 containing "Zed" in the tree: most of the rest # name Zed Industries -- the vendor, the plans, the team, the hosted # models -- or are font-family lookup keys, a User-Agent, or theme names # referenced from user settings, and renaming any of those breaks # something. The window title is not here because it never needed a # patch: it resolves through display_name(), which 0021 already made # return "Zeo". Numbered 0025 because app-editors/zed took 0024. "${FILESDIR}/0025-zed-say-Zeo-in-the-strings-a-user-actually-reads.patch" # 0032 renames the app id and binaries the CLI's Flatpak escape looks for # (dev.zed.Zed, zed, zed-editor); without it the dev.zeo.Zeo Flatpak runs # confined. Inert outside a Flatpak. "${FILESDIR}/0032-cli-let-the-Flatpak-escape-recognise-Zeo-s-app-id-an.patch" # 0047 makes the About window name Zeo's version -- RELEASE_VERSION, which # src_compile below exports as ${PV} -- and keeps Zed's AppVersion on a # row of its own, since extensions check compatibility against it. "${FILESDIR}/0047-zed-the-About-window-names-Zeo-s-version.patch" # 0033 ships Claude Agent (Plus) and Claude Agent TUI as default agents: # npx entries in the ACP registry list, enabled in default.json, always # @latest from npm. Needs no adapter at build time, so it is not gated # by the claude-agent-acp-* flags. "${FILESDIR}/0033-agent-ship-Claude-Agent-Plus-and-Claude-Agent-TUI-as-default.patch" # 0046 makes those two default agents run the adapter installed under # /usr/bin when it exists and is executable -- which the # claude-agent-acp-* flags below guarantee -- and fall back to 0033's # npm package otherwise. Decided at launch, so it is ungrouped too. "${FILESDIR}/0046-agent-default-agents-prefer-the-system-adapter.patch" "${FILESDIR}/0048-agent-thread-organization-storage.patch" "${FILESDIR}/0049-agent-sidebar-pinned-section.patch" # 0065 (story 036) drags projects, threads and pinned threads in the # agent sidebar to reorder them, plus "Sort by Recent". It consumes # 0048's store and 0049's Pinned section, so it sits right after them; # no flag gates it. 0028-0030 and 0063 are regenerated on top of it. "${FILESDIR}/0065-agent-sidebar-drag-reorder.patch" # 0061 starts every agent with ZEO_THREAD=1, so zeo-systray's hook can # tell Zeo's sessions from any other Claude Code process and offer the # tray link (0024) only for those. Ungrouped like 0024. "${FILESDIR}/0061-agent-mark-agent-servers-with-zeo-thread.patch" # 0064 moves wasmtime/wasmtime-wasi 48.0.1 -> 48.0.6 and rustls # 0.23.45 -> 0.23.46 for 26 RustSec advisories, six of them reachable # from an installed extension or any HTTPS connection. Cargo.toml and # Cargo.lock only, so CRATES above lists the moved versions. A security # fix for every build, so ungrouped; 0002, 0035, 0052, 0057 and 0058, # which also edit Cargo.lock, are regenerated on top of it. "${FILESDIR}/0064-wasmtime-48-0-6-rustls-0-23-46.patch" ) if use claude-agent-acp-plus; then PATCHES+=( "${FILESDIR}/0001-force-enable-claude-agent-acp-plus.patch" # 0003/0004 (per-option _meta description + preview) dropped: upstream # 950ec79 now surfaces option descriptions natively via the ACP # EnumOption.description field, superseding the _claude/askUserQuestionOption # _meta machinery (and renamed MultiSelectItems::Untitled -> String). "${FILESDIR}/0005-elicitation-multiline-fields.patch" "${FILESDIR}/0006-elicitation-option-previews.patch" "${FILESDIR}/0007-manual-mode-badge.patch" "${FILESDIR}/0008-clickable-attachments.patch" # 0009 (adopt the agent's config-option response when applying # per-agent defaults) dropped: upstream 78a0da201 (#65233) routes the # defaults path through ConfigOptions::set_config_option, which # installs the agent's returned option list and wakes the watch. # 0010: a thread menu choice (permission mode, model, thinking effort, # an ACP agent's config options) applies to that thread only; Shift # also makes it the default for new threads. It applies to the packaged # source on its own, so it rides this flag by choice rather than by # dependency -- it also covers the native agent's own menus. "${FILESDIR}/0010-shift-to-set-as-default.patch" # 0011: an "Account" section in the context tooltip -- the account # quota windows (5-hour, weekly, per-model) that the adapter already # forwards under _meta["_claude/rateLimit"] and Zed discarded. Rides # this flag by dependency: no other agent sends that key. "${FILESDIR}/0011-account-usage-panel.patch" # 0012: a "Worktrees" entry in the agent panel menu, dispatching the # existing zero-arg zed_actions::git::Worktree so the picker chooses # between creating a worktree and switching to one. Zed ships # worktrees end to end and the panel already reaches them -- but only # under request.use_new_worktree, an input of the create_thread AGENT # TOOL, so the model could open one and the user could not. It applies # to the packaged source on its own, so like 0010 it rides this flag # by choice rather than by dependency. "${FILESDIR}/0012-agent-panel-worktree-entry.patch" # 0013: the per-model quota row. The adapter forwards every # rate_limits.model_scoped[] entry under one wire kind, and from_wire # had no arm for it, so the row 0011's Account section was built to # show never arrived. Adds a dynamic variant carrying the display name # the server sends -- it adds a name, it does not open the enum. # Rides this flag by DEPENDENCY, like 0011: no other agent sends the key. "${FILESDIR}/0013-model-scoped-quota-window.patch" # 0014: a copy button on the user's own message, yielding the string # the edit path already serialises rather than a second serialisation. # It sits on the shared container before the editable/non-editable # branch, so subagent messages -- always non-editable -- get it too. # Pure Zed, so it rides this flag by CHOICE, like 0010 and 0012. "${FILESDIR}/0014-copy-the-user-s-own-message.patch" # 0015: the thread archive scoped to its project. Three reads were # global, not one -- the list, the ArchivedOnly fall-back guard, and # the archived-only toggle's disabled state. Deliberately not via the # store's entries_for_path, which drops archived threads: correct for # the sidebar, fatal for an archive view. Pure Zed, by CHOICE. "${FILESDIR}/0015-scoped-thread-history.patch" # 0016: a rendered-markdown preview of the composer draft, through the # same MarkdownElement that draws every agent response, reached by the # ToggleMessagePreview action. The only one of these five that is new # UI rather than an affordance over existing machinery. Pure Zed, by # CHOICE. "${FILESDIR}/0016-composer-markdown-preview.patch" # 0017: native rendering for a compaction the adapter reports. NOT # because the ACP notification is unreachable -- that was this comment's # claim until 2026-09-22 and it was false; acp_thread.rs matches # acp::SessionUpdate::CompactionUpdate and the linked crate is 2.2.0 / # schema 1.9.1. It is because _meta.contextCompaction is the channel the # adapter actually sends, so this reads that versioned key and dispatches # into the existing push_context_compaction; an unknown version falls # through to the generic tool row. Rides this flag by DEPENDENCY: only # this adapter emits that key. "${FILESDIR}/0017-native-compaction-entry.patch" # 0026: the two end-of-turn navigation controls -- scroll to the user # message, scroll to the top -- float over the conversation instead of # riding inside the last list item, where they scrolled out of view # together with the turn that owned them. The copy button stays inline # on purpose: it copies one specific response, and a control floating # over the whole thread cannot say which. Pure Zed, by CHOICE, the way # 0010, 0012 and 0014 are. "${FILESDIR}/0026-float-thread-navigation-controls.patch" # 0027: a question the agent asks is pinned above the composer # instead of scrolling away with the conversation, and a # multi-question one is stepped through a page at a time. Zed # already renders CONNECTION-scoped elicitations in that slot with # this same card; only the SESSION-scoped half -- how # AskUserQuestion arrives -- never reached it. Behind the new # agent.elicitation_placement setting, offered as two entries in # the panel's options menu; unlike 0018 it defaults to the NEW # behaviour, upstream's inline rendering being one click away. # Pagination is gated on the adapter's un-namespaced # _askUserQuestionCustomAnswer marker, so an ordinary MCP form is # never split. Rides this flag by CHOICE, like 0010/0012/0014/0026. "${FILESDIR}/0027-pinned-elicitation-card.patch" # 0028: a folder dropped on the threads sidebar opens as a project of # its own, through the same MultiWorkspace::open_project the sidebar's # "Add Project" popover uses, so its saved session is restored. One # project per folder; files are ignored, and a folder that is already a # project in any window is skipped rather than re-activated. The sidebar # accepted no drop before, so there is no old behaviour to keep behind # a setting. Rides this flag by CHOICE, like 0010/0012/0014/0026. "${FILESDIR}/0028-sidebar-drop-folder-adds-project.patch" # 0029: a thread whose turn ended while a background shell or async # subagent keeps running gets its own sidebar status -- the running # spinner, tinted and slower -- instead of the agent's plain icon. The # count arrives as _meta["_claude/backgroundTasks"] on a # session_info_update, sent by claude-agent-acp-plus >= 0.21.0; older # adapters send nothing and the patch is inert. Rides this flag BY # DEPENDENCY, like 0011/0013: no other agent sends that key. "${FILESDIR}/0029-background-task-status.patch" # 0030: a thread whose agent asked a question and is waiting for the # answer gets its own sidebar status -- a Chat icon, "Waiting for Your # Answer" -- instead of the running spinner. Permissions keep their # warning triangle and outrank it. Generic ACP, so it rides this flag # by CHOICE, like 0027. "${