# 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
	aes@0.8.4
	agent-client-protocol-derive@2.0.0
	agent-client-protocol-schema@1.5.0
	agent-client-protocol@2.0.0
	ahash@0.7.8
	ahash@0.8.12
	aho-corasick@1.1.3
	aliasable@0.1.3
	aligned-vec@0.6.4
	aligned@0.4.3
	allocator-api2@0.2.21
	alsa-sys@0.3.1
	alsa@0.10.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.2
	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.17.1
	aws-lc-sys@0.42.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.5
	aws-smithy-observability@0.2.5
	aws-smithy-query@0.60.15
	aws-smithy-runtime-api@1.11.4
	aws-smithy-runtime@1.10.1
	aws-smithy-types@1.4.7
	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.8.0
	bit-set@0.9.1
	bit-vec@0.8.0
	bit-vec@0.9.1
	bit_field@0.10.3
	bitflags@1.3.2
	bitflags@2.13.1
	bitstream-io@4.9.0
	bitvec@1.0.1
	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.5.7
	borsh@1.5.7
	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
	bytecheck@0.6.12
	bytecheck_derive@0.6.12
	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
	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.1
	cap-fs-ext@4.0.3
	cap-primitives@4.0.3
	cap-std@4.0.3
	cargo-platform@0.1.9
	cargo-platform@0.3.2
	cargo_metadata@0.19.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.1.1
	cfg_aliases@0.2.1
	cgl@0.3.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
	circular-buffer@1.2.0
	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-graphics2@0.5.2
	core-graphics@0.23.2
	core-graphics@0.24.0
	core-services@1.0.0
	core-text@21.0.0
	core-video@0.5.2
	core2@0.4.0
	core_maths@0.1.1
	coreaudio-rs@0.12.1
	coreaudio-rs@0.13.0
	coreaudio-sys@0.2.18
	cosmic-text@0.19.0
	cpal@0.17.1
	cpp_demangle@0.5.1
	cpufeatures@0.2.17
	cpufeatures@0.3.0
	cranelift-assembler-x64-meta@0.135.1
	cranelift-assembler-x64@0.135.1
	cranelift-bforest@0.135.1
	cranelift-bitset@0.135.1
	cranelift-codegen-meta@0.135.1
	cranelift-codegen-shared@0.135.1
	cranelift-codegen@0.135.1
	cranelift-control@0.135.1
	cranelift-entity@0.135.1
	cranelift-frontend@0.135.1
	cranelift-isle@0.135.1
	cranelift-native@0.135.1
	cranelift-srcgen@0.135.1
	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.5.0
	criterion@0.5.1
	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
	crossbeam@0.8.4
	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
	dashmap@6.1.0
	dasp_sample@0.11.0
	data-encoding@2.9.0
	data-url@0.3.2
	dbus@0.9.9
	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
	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
	fsevent-sys@4.1.0
	fuchsia-cprng@0.1.1
	funty@2.0.0
	futures-channel@0.3.32
	futures-concurrency@7.7.1
	futures-core@0.3.32
	futures-executor@0.3.32
	futures-intrusive@0.5.0
	futures-io@0.3.32
	futures-lite@1.13.0
	futures-lite@2.6.1
	futures-macro@0.3.32
	futures-sink@0.3.32
	futures-task@0.3.32
	futures-util@0.3.32
	futures@0.1.31
	futures@0.3.32
	gaoya@0.2.0
	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.17.0
	glutin_wgl_sys@0.6.1
	gobject-sys@0.21.5
	goblin@0.9.3
	gpu-allocator@0.28.0
	gpu-descriptor-types@0.2.0
	gpu-descriptor@0.3.2
	granit-parser@1.0.0
	group@0.12.1
	h2@0.3.27
	h2@0.4.12
	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
	hexf-parse@0.2.1
	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.24.2
	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.7.0
	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
	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
	inotify@0.9.6
	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
	io-surface@0.16.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.11.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.97
	json5@1.3.1
	json_dotpath@1.1.0
	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-egl@6.0.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
	leak@0.1.2
	leaky-cow@0.1.1
	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
	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
	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.5.0
	mach2@0.6.0
	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@0.8.11
	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
	naga@29.0.4
	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
	new_debug_unreachable@1.0.6
	nix@0.28.0
	nix@0.30.1
	nom@7.1.3
	nom@8.0.0
	noop_proc_macro@0.3.0
	normpath@1.5.0
	notify-debouncer-mini@0.4.1
	notify-rust@4.18.0
	notify@6.1.1
	ntapi@0.4.1
	nu-ansi-term@0.50.3
	nucleo-matcher@0.3.1
	nucleo@0.5.0
	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-format@0.4.4
	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-location@0.3.2
	objc2-core-services@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-open-directory@0.3.2
	objc2-quartz-core@0.2.2
	objc2-quartz-core@0.3.2
	objc2-screen-capture-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
	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
	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
	portable-pty@0.9.0
	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-attr@1.0.4
	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
	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
	ptr_meta@0.1.4
	ptr_meta_derive@0.1.4
	pulldown-cmark-escape@0.10.1
	pulldown-cmark@0.10.3
	pulldown-cmark@0.13.4
	pulley-interpreter@48.0.1
	pulley-macros@48.0.1
	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
	radium@0.7.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_distr@0.5.1
	rand_pcg@0.10.2
	rand_pcg@0.3.1
	rand_xorshift@0.4.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
	rend@0.4.2
	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
	rkyv@0.7.45
	rkyv_derive@0.7.45
	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.101.7
	rustls-webpki@0.103.13
	rustls@0.21.12
	rustls@0.23.40
	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
	sct@0.7.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.27
	serde@1.0.228
	serde_bytes@0.11.19
	serde_core@1.0.228
	serde_derive@1.0.228
	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
	serial2@0.2.33
	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
	shared_library@0.1.9
	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.15.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
	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-bundle-flac@0.5.5
	symphonia-bundle-mp3@0.5.5
	symphonia-codec-aac@0.5.5
	symphonia-codec-pcm@0.5.5
	symphonia-codec-vorbis@0.5.5
	symphonia-core@0.5.5
	symphonia-format-isomp4@0.5.5
	symphonia-format-ogg@0.5.5
	symphonia-format-riff@0.5.5
	symphonia-metadata@0.5.5
	symphonia-utils-xiph@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
	take-until@0.2.0
	tao-core-video-sys@0.2.0
	tap@1.0.1
	target-lexicon@0.13.5
	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.24.1
	tokio-rustls@0.26.4
	tokio-socks@0.5.2
	tokio-stream@0.1.17
	tokio-tungstenite@0.20.1
	tokio-tungstenite@0.21.0
	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.35
	tracing-log@0.2.0
	tracing-serde@0.2.0
	tracing-subscriber@0.3.22
	tracing-tracy@0.11.4
	tracing@0.1.43
	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.21.0
	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
	warp@0.3.7
	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.70
	wasm-bindgen-macro-support@0.2.120
	wasm-bindgen-macro@0.2.120
	wasm-bindgen-shared@0.2.120
	wasm-bindgen@0.2.120
	wasm-encoder@0.201.0
	wasm-encoder@0.227.1
	wasm-encoder@0.244.0
	wasm-encoder@0.254.0
	wasm-metadata@0.201.0
	wasm-metadata@0.227.1
	wasm-metadata@0.244.0
	wasm-metadata@0.254.0
	wasm-streams@0.4.2
	wasmparser@0.201.0
	wasmparser@0.227.1
	wasmparser@0.244.0
	wasmparser@0.254.0
	wasmprinter@0.254.0
	wasmtime-c-api-impl@48.0.1
	wasmtime-environ@48.0.1
	wasmtime-internal-c-api-macros@48.0.1
	wasmtime-internal-component-macro@48.0.1
	wasmtime-internal-component-util@48.0.1
	wasmtime-internal-core@48.0.1
	wasmtime-internal-cranelift@48.0.1
	wasmtime-internal-fiber@48.0.1
	wasmtime-internal-jit-debug@48.0.1
	wasmtime-internal-jit-icache-coherence@48.0.1
	wasmtime-internal-unwinder@48.0.1
	wasmtime-internal-versioned-export-macros@48.0.1
	wasmtime-internal-wit-bindgen@48.0.1
	wasmtime-wasi-io@48.0.1
	wasmtime-wasi@48.0.1
	wasmtime@48.0.1
	wast@35.0.2
	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.97
	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
	wgpu-core-deps-apple@29.0.4
	wgpu-core-deps-emscripten@29.0.4
	wgpu-core-deps-wasm@29.0.4
	wgpu-core-deps-windows-linux-android@29.0.4
	wgpu-core@29.0.4
	wgpu-hal@29.0.4
	wgpu-naga-bridge@29.0.4
	wgpu-types@29.0.4
	wgpu@29.0.4
	which@8.0.5
	whoami@1.6.1
	wiggle-generate@48.0.1
	wiggle-macro@48.0.1
	wiggle@48.0.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.10.1
	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.0
	wit-parser@0.201.0
	wit-parser@0.227.1
	wit-parser@0.244.0
	wit-parser@0.254.0
	witx@0.9.1
	write16@1.0.0
	writeable@0.6.4
	wyz@0.5.1
	x11-clipboard@0.9.3
	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.15
	y4m@0.8.0
	yaml-rust2@0.8.1
	yansi@1.0.1
	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-sys@2.0.16+zstd.1.5.7
	zstd@0.11.2+zstd.1.5.2
	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/smol-rs/async-task;b4486cd71e4e94fbda54ce6302444de14f4d190e;async-task-%commit%'
	[calloop]='https://github.com/zed-industries/calloop;eb6b4fd17b9af5ecc226546bdd04185391b3e265;calloop-%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'
	[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%'
	[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'
	[proptest-macro]='https://github.com/proptest-rs/proptest;3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b;proptest-%commit%/proptest-macro'
	[proptest]='https://github.com/proptest-rs/proptest;3dca198a8fef1b32e3a66f1e1897c955b4dc5b5b;proptest-%commit%/proptest'
	[rodio]='https://github.com/RustAudio/rodio;e50e726ddd0292f6ef9de0dda6b90af4ed1fb66a;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'
	[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'
	[yawc]='https://github.com/zed-industries/yawc;71a452f551cac178367eaac5d7418a09afa1f3a2;yawc-%commit%'
	[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%'
)

EGIT_COMMIT="d9e1c024f393832765a03f4de204d6c8cd9abcb2"
LLVM_COMPAT=( 22 )
RUST_MIN_VER="1.97.1"
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 <use> block describing fourteen flags,
# where ::gentoo's file has none. Every one of them is a flag this overlay adds
# (see the IUSE tag): X, wayland, collab, neovim, mimalloc, tracy, inspector,
# remote-server, the three claude-agent ones and the rest. ::gentoo has nothing
# to describe because it exposes none of them.
# 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="The fast, collaborative code editor"
HOMEPAGE="https://zed.dev https://github.com/zed-industries/zed"
SRC_URI="
	https://github.com/zed-industries/zed/archive/${EGIT_COMMIT}.tar.gz -> ${PF}.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}"

S="${WORKDIR}/${PN}-${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 ZLIB BZIP2
"
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.
#
# inserted the same day: inspector (the GPUI UI inspector, upstream feature
# zed/inspector) and remote-server (crates/remote_server, the SSH remote-editing
# daemon Zed otherwise downloads from zed.dev at run time -- packaging it is
# what lets a server host serve it from portage instead).
#
# test is not a Zed feature: src_test has existed here without it, which left
# RESTRICT unable to say the suite is optional.
IUSE="+X +claude-agent-acp-plus +claude-agent-acp-tui +claude-code-ide collab
	extensions-cli inspector +mimalloc neovim remote-server screen-capture test
	tracy +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.
REQUIRED_USE="|| ( X wayland )"
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.
RDEPEND="
	${DEPEND}
	claude-agent-acp-plus? ( dev-util/claude-agent-acp-plus )
	claude-agent-acp-tui? ( dev-util/claude-agent-acp-tui )
	neovim? ( app-editors/neovim )
"
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/zedit
	usr/libexec/zed-editor
	usr/bin/collab
	usr/bin/zed-extension
	usr/bin/zed-remote-server
"

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" )

	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, so options that appear as a side effect (Fast
			# mode once the resolved model supports it) surface without a manual
			# model switch.
			"${FILESDIR}/0009-Adopt-agent-s-config-option-response-when-applying-d.patch"
			# 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. The ACP
			# compaction_update variant is unreachable here -- agent-client-protocol
			# 2.0.0 carries zero occurrences of "compaction" -- so this reads the
			# adapter's versioned _meta.contextCompaction 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"
		)
	fi

	# terminal-ide story 001: Claude Code IDE integration (upstream PR #58300 + API-drift fixes).
	if use claude-code-ide; then
		PATCHES+=( "${FILESDIR}/0002-claude-code-ide-integration.patch" )
	fi

	default

	export APP_CLI="zedit"
	# The ebuild forces RELEASE_CHANNEL="nightly" below, so the runtime app_id
	# (Wayland app_id / X11 WM_CLASS) is "dev.zed.Zed-Nightly". The .desktop
	# filename, the Icon name and StartupWMClass MUST all match it, or Wayland
	# compositors draw the generic icon instead of Zed's.
	export APP_ID="dev.zed.Zed-Nightly"
	export APP_ICON="${APP_ID}"
	export APP_NAME="Zed Nightly"
	export APP_ARGS="%U"
	export DO_STARTUP_NOTIFY="true"
	envsubst < "crates/zed/resources/zed.desktop.in" > ${APP_ID}.desktop || die

	# StartupWMClass goes in the [Desktop Entry] section (before the Actions=
	# line) for X11 compatibility and as the Wayland compositor fall-back.
	sed -i "/^Actions=/i StartupWMClass=${APP_ID}" "${APP_ID}.desktop" || die

	# Set release channel to nightly so the remote_server auto-download
	# works (dev channel hard-fails, nightly fetches "latest" from zed.dev).
	echo "nightly" > crates/zed/RELEASE_CHANNEL || die

	# Cargo offline fetch workaround
	local ASYNC_PROCESS_COMMIT="0b6d6713570af61806e1e5cb40e0f757cb93fd9d"
	local ASYNC_PROCESS_GIT="async-process = { git = \"https://github.com/zed-industries/async-process.git\""
	ASYNC_PROCESS_GIT+=", rev = \"${ASYNC_PROCESS_COMMIT}\""
	local ASYNC_PROCESS_PATH="async-process = \\{ path = \"${WORKDIR}/async-process-${ASYNC_PROCESS_COMMIT}\""

	local ASYNC_TASK_COMMIT="b4486cd71e4e94fbda54ce6302444de14f4d190e"
	local ASYNC_TASK_GIT="async-task = { git = \"https://github.com/smol-rs/async-task.git\""
	ASYNC_TASK_GIT+=", rev = \"${ASYNC_TASK_COMMIT}\""
	local ASYNC_TASK_PATH="async-task = \\{ path = \"${WORKDIR}/async-task-${ASYNC_TASK_COMMIT}\""

	local CALLOOP_COMMIT="eb6b4fd17b9af5ecc226546bdd04185391b3e265"
	local CALLOOP_GIT="calloop = { git = \"https://github.com/zed-industries/calloop\""
	local CALLOOP_PATH="calloop = \\{ path = \"${WORKDIR}/calloop-${CALLOOP_COMMIT}\""

	local LIVEKIT_COMMIT="0a1c519cfce9b365229026b55de9b9dbdb6fed3c"
	local LIVEKIT_GIT="livekit = { git = \"https://github.com/zed-industries/livekit-rust-sdks\""
	LIVEKIT_GIT+=", rev = \"${LIVEKIT_COMMIT}\""
	local LIVEKIT_PATH="livekit = \\{ path = \"${WORKDIR}/livekit-rust-sdks-${LIVEKIT_COMMIT}/livekit\""

	local LIBWEBRTC_GIT="libwebrtc = { git = \"https://github.com/zed-industries/livekit-rust-sdks\""
	LIBWEBRTC_GIT+=", rev = \"${LIVEKIT_COMMIT}\""
	local LIBWEBRTC_PATH="libwebrtc = \\{ path = \"${WORKDIR}/livekit-rust-sdks-${LIVEKIT_COMMIT}/libwebrtc\""

	local WIN_CAP_COMMIT="f0d6c1b6691db75461b732f6d5ff56eed002eeb9"
	local WIN_CAP_GIT="windows-capture = { git = \"https://github.com/zed-industries/windows-capture.git\""
	WIN_CAP_GIT+=", rev = \"${WIN_CAP_COMMIT}\""
	local WIN_CAP_PATH="windows-capture = \\{ path = \"${WORKDIR}/windows-capture-${WIN_CAP_COMMIT}\""

	local WEBRTC_SYS_GIT="webrtc-sys = { git = \"https://github.com/zed-industries/livekit-rust-sdks\""
	WEBRTC_SYS_GIT+=", rev = \"${LIVEKIT_COMMIT}\""
	local WEBRTC_SYS_PATH="webrtc-sys = \\{ path = \"${WORKDIR}/livekit-rust-sdks-${LIVEKIT_COMMIT}/webrtc-sys\""

	local NOTIFY_COMMIT="d842f16b2716bd60f09caf3ae3a894237ab38f54"
	local NOTIFY_GIT="notify = { git = \"https://github.com/zed-industries/notify\""
	NOTIFY_GIT+=", rev = \"${NOTIFY_COMMIT}\""
	local NOTIFY_PATH="notify = \\{ path = \"${WORKDIR}/notify-${NOTIFY_COMMIT}/notify\""

	local TREE_SITTER_COMMIT="43623ec9bf0eaaf7113285c46e8a09018f181b18"
	local TREE_SITTER_GIT="tree-sitter = { git = \"https://github.com/tree-sitter/tree-sitter\""
	TREE_SITTER_GIT+=", rev = \"${TREE_SITTER_COMMIT}\""
	local TREE_SITTER_PATH="tree-sitter = \\{ path = \"${WORKDIR}/tree-sitter-${TREE_SITTER_COMMIT}/lib\""

	local TS_LANGUAGE_GIT="tree-sitter-language = { git = \"https://github.com/tree-sitter/tree-sitter\""
	TS_LANGUAGE_GIT+=", rev = \"${TREE_SITTER_COMMIT}\""
	local TS_LANGUAGE_PATH="tree-sitter-language = \\{ path = \"${WORKDIR}"
	TS_LANGUAGE_PATH+="/tree-sitter-${TREE_SITTER_COMMIT}/crates/language\""

	local NOTIFY_TYPES_GIT="notify-types = { git = \"https://github.com/zed-industries/notify\""
	NOTIFY_TYPES_GIT+=", rev = \"${NOTIFY_COMMIT}\""
	local NOTIFY_TYPES_PATH="notify-types = \\{ path = \"${WORKDIR}/notify-${NOTIFY_COMMIT}/notify-types\""

	sed -e "s#${ASYNC_PROCESS_GIT}#${ASYNC_PROCESS_PATH}#" \
		-e "s#${ASYNC_TASK_GIT}#${ASYNC_TASK_PATH}#" \
		-e "s#${CALLOOP_GIT}#${CALLOOP_PATH}#" \
		-e "s#${LIVEKIT_GIT}#${LIVEKIT_PATH}#" \
		-e "s#${LIBWEBRTC_GIT}#${LIBWEBRTC_PATH}#" \
		-e "s#${WEBRTC_SYS_GIT}#${WEBRTC_SYS_PATH}#" \
		-e "s#${WIN_CAP_GIT}#${WIN_CAP_PATH}#" \
		-e "s#${NOTIFY_TYPES_GIT}#${NOTIFY_TYPES_PATH}#" \
		-e "s#${NOTIFY_GIT}#${NOTIFY_PATH}#" \
		-e "s#${TS_LANGUAGE_GIT}#${TS_LANGUAGE_PATH}#" \
		-e "s#${TREE_SITTER_GIT}#${TREE_SITTER_PATH}#" \
		-i "${S}/Cargo.toml" || die "Cargo fetch workaround failed"

	# Toggle gpui display backend features based on USE flags
	if ! use wayland; then
		sed -e '/\"gpui\/wayland\"/d' \
			-e '/^\s*\"wayland\",$/d' \
			-e 's/, "wayland"//' \
			-e 's/"wayland", //' \
			-i "${S}/crates/zed/Cargo.toml" || die "Failed to disable wayland feature"
	fi
	if ! use X; then
		sed -e '/\"gpui\/x11\"/d' \
			-e '/^\s*\"x11\",$/d' \
			-e 's/, "x11"//' \
			-e 's/"x11", //' \
			-i "${S}/crates/zed/Cargo.toml" || die "Failed to disable x11 feature"
	fi

	# Toggle screen-capture feature on gpui_platform
	# The first expression deletes the whole LINE: since ef50ad95 the
	# gpui_platform features array is multi-line, so removing only the text
	# would leave an orphan comma ("extra comma in array") that makes the TOML
	# invalid. The other three keep covering the inline form, in case upstream
	# collapses the array again.
	if ! use screen-capture; then
		sed -e '/^[[:space:]]*"screen-capture",\?[[:space:]]*$/d' \
			-e 's/"screen-capture", //' \
			-e 's/, "screen-capture"//' \
			-e 's/"screen-capture"//' \
			-i "${S}/crates/zed/Cargo.toml" || die "Failed to disable screen-capture feature"
	fi

	# Enable neovim integration in vim crate
	if use neovim; then
		sed -e 's/vim\.workspace = true/vim = { workspace = true, features = ["neovim"] }/' \
			-i "${S}/crates/zed/Cargo.toml" || die "Failed to enable neovim feature"
	fi
}

src_compile() {
	export RELEASE_VERSION="${PV}"
	export ZED_UPDATE_EXPLANATION='Updates are handled by portage'
	if use arm64; then
		export LK_CUSTOM_WEBRTC="${WORKDIR}/linux-arm64-release"
	elif use amd64; then
		export LK_CUSTOM_WEBRTC="${WORKDIR}/linux-x64-release"
	fi
	local features=()
	use inspector && features+=( zed/inspector )
	use mimalloc && features+=( zed/mimalloc )
	use tracy && features+=( zed/tracy )

	local packages=(
		--package zed
		--package cli
	)
	use collab && packages+=( --package collab )
	use extensions-cli && packages+=( --package extension_cli )
	# remote_server is built from this same workspace rather than upstream's
	# separate musl target, so it links the system libraries the rest of the
	# package already depends on. That is what makes it usable on a host that
	# has this package installed, and it is why it is not a drop-in replacement
	# for the static binary zed.dev serves.
	use remote-server && packages+=( --package remote_server )

	# "${features[*]}" alone would be an empty --features argument when no flag
	# is on; the count is what decides whether the option appears at all.
	local feature_args=()
	(( ${#features[@]} )) && feature_args=( --features "${features[*]}" )

	cargo_src_compile "${packages[@]}" "${feature_args[@]}"
}

src_install() {
	newbin "$(cargo_target_dir)"/cli "${APP_CLI}"
	exeinto "/usr/libexec"
	newexe "$(cargo_target_dir)"/zed zed-editor

	if use collab; then
		dobin "$(cargo_target_dir)"/collab
	fi

	if use extensions-cli; then
		newbin "$(cargo_target_dir)"/zed-extension zed-extension
	fi

	# The client looks the daemon up by a name it builds at run time, under the
	# remote user's ~/.zed_server -- a path no ebuild can write to. Installing
	# it here is therefore half the job; pkg_postinst spells out the other half.
	if use remote-server; then
		newbin "$(cargo_target_dir)"/remote_server zed-remote-server
	fi

	# The nightly channel's own icon set, which the source ships, installed
	# under the APP_ID name so Wayland compositors resolve it.
	newicon -s 512 crates/zed/resources/app-icon-nightly.png "${APP_ID}.png"
	newicon -s 1024 crates/zed/resources/app-icon-nightly@2x.png "${APP_ID}.png"
	domenu "${S}/${APP_ID}.desktop"
}

src_test () {
	mkdir -p "${HOME}/.config/zed" || die
	mkdir -p "${HOME}/.local/share/zed/logs/" || die

	SHELL=/usr/bin/sh RUST_BACKTRACE=full cargo_src_test -vv \
		-- --skip zed::tests::test_window_edit_state_restoring_enabled
}

pkg_postinst() {
	xdg_pkg_postinst

	if use claude-agent-acp-tui; then
		elog ""
		elog "The claude-agent-acp-tui ACP bridge was installed as 'claude-agent-acp-tui'."
		elog "To enable it in Zed, add to ~/.config/zed/settings.json:"
		elog ""
		elog "    \"agent_servers\": {"
		elog "        \"Claude Agent TUI\": { \"command\": \"claude-agent-acp-tui\", \"args\": [] }"
		elog "    }"
	fi

	if use remote-server; then
		elog ""
		elog "The remote editing daemon was installed as 'zed-remote-server'."
		elog "Installing it is only half of what makes it used: a Zed client"
		elog "looks the daemon up on the remote host by a name it builds at run"
		elog "time, under that user's home:"
		elog ""
		elog "    ~/.zed_server/zed-remote-server-nightly-<VERSION>"
		elog ""
		elog "so the daemon has to be reachable under exactly that name. Connect"
		elog "once without it and Zed downloads its own copy there -- the name it"
		elog "wrote is the name to use:"
		elog ""
		elog "    mkdir -p ~/.zed_server"
		elog "    ln -sf /usr/bin/zed-remote-server \\"
		elog "        ~/.zed_server/zed-remote-server-nightly-<VERSION>"
		elog ""
		elog "This build comes from the same workspace as the editor, not from"
		elog "upstream's separate static musl target, so it needs this package's"
		elog "shared libraries present on the host that runs it."
	fi

	if use claude-code-ide; then
		elog ""
		elog "Claude Code IDE integration uses an unofficial, reverse-engineered"
		elog "protocol that may break without notice."
		elog "It activates automatically in Zed-spawned terminals via environment"
		elog "variables; no settings.json configuration is needed."
		elog "The 'claude' CLI is required at runtime; it is distributed via npm"
		elog "and is not packaged by this overlay."
		elog "Verify the connection by running /ide inside 'claude'."
	fi
}