Drop breadsearch from the default BOS install #12

Merged
Breadway merged 1 commit from fix/search-4-drop-breadsearch-default into main 2026-09-11 11:03:57 +08:00
Owner

Summary

Semantic file search (breadsearch + its breadmill indexer) was baked into every BOS image and breadmill.service was --global enable'd on first login. It is memory-heavy and not something every user wants running. This removes it from the default install. It stays one command away: bakery install breadsearch pulls both binaries, the breadmill.service unit, and the config example.

Verified against the live stable bakery index (https://dl.breadway.dev/index.json): breadsearch 0.3.3 is a standalone package that bundles breadmill-x86_64 + breadsearch-x86_64, ships breadmill.service (enable: true), and has a post_install that starts breadmill. So bakery install breadsearch fully restores the previous behaviour.

Changes

  • iso/bread-lockfile.toml: remove breadsearch and breadmill from required_bins; remove the breadsearch = "0.3.2" version pin; note the opt-in path in the header comment.
  • iso/airootfs/usr/lib/systemd/user-preset/90-bos-bakery.preset: drop enable breadmill.service (the bake regenerates this list from the units actually copied, so this just keeps the committed default honest).
  • Hypr autostart in all three places (autostart.json, hyprland.lua, scripts/system/autostart.lua): drop the breadsearch listen command-bus entries. They were already command -v breadsearch >/dev/null guarded, so on a system without breadsearch they were already no-ops.
  • iso/airootfs/etc/skel/.local/share/applications/breadsearch.desktop: removed.
  • Comments in iso/packages.x86_64, iso/airootfs/usr/local/bin/bos-update, iso/airootfs/etc/skel/.config/bread/modules/breadhelp-tour.lua, and iso/airootfs/etc/calamares/post-install.sh: drop the breadsearch/breadmill mentions.
  • README.md and packaging/arch/README.md: document that breadsearch is not shipped by default and how to add it (bakery install breadsearch).

Scope notes

  • New ISO installs only. bos-update does not touch breadsearch on existing systems, so anyone who already has it keeps it. A forced cleanup of existing installs would be a separate bos-update change, deliberately not done here.
  • Left build-local.sh:254 untouched: it is a historical comment listing example bakery services (breadbox-sync, breadmill, breadclipd, ...) and the statement stays true (breadmill is still a bakery-package service, just not baked). That file also has unrelated in-progress local work, so I avoided touching it.

Verification

  • python3 -c json.load on the edited autostart.json: valid
  • luac -p on all three edited Lua files: clean
  • bash -n on bos-update and post-install.sh: clean
  • scripts/ci-stage-bakery.py reads required_bins / [versions] generically with no hardcoded package names, so the shorter lists are fine
  • Full ISO build not run locally (needs Arch + root); the release-iso workflow will exercise it

breadboard: SEARCH-4. Tracking issue: Breadway/breadsearch#4.

## Summary Semantic file search (`breadsearch` + its `breadmill` indexer) was baked into every BOS image and `breadmill.service` was `--global enable`'d on first login. It is memory-heavy and not something every user wants running. This removes it from the default install. It stays one command away: `bakery install breadsearch` pulls both binaries, the `breadmill.service` unit, and the config example. Verified against the live stable bakery index (`https://dl.breadway.dev/index.json`): `breadsearch` 0.3.3 is a standalone package that bundles `breadmill-x86_64` + `breadsearch-x86_64`, ships `breadmill.service` (`enable: true`), and has a `post_install` that starts breadmill. So `bakery install breadsearch` fully restores the previous behaviour. ## Changes - `iso/bread-lockfile.toml`: remove `breadsearch` and `breadmill` from `required_bins`; remove the `breadsearch = "0.3.2"` version pin; note the opt-in path in the header comment. - `iso/airootfs/usr/lib/systemd/user-preset/90-bos-bakery.preset`: drop `enable breadmill.service` (the bake regenerates this list from the units actually copied, so this just keeps the committed default honest). - Hypr autostart in all three places (`autostart.json`, `hyprland.lua`, `scripts/system/autostart.lua`): drop the `breadsearch listen` command-bus entries. They were already `command -v breadsearch >/dev/null` guarded, so on a system without breadsearch they were already no-ops. - `iso/airootfs/etc/skel/.local/share/applications/breadsearch.desktop`: removed. - Comments in `iso/packages.x86_64`, `iso/airootfs/usr/local/bin/bos-update`, `iso/airootfs/etc/skel/.config/bread/modules/breadhelp-tour.lua`, and `iso/airootfs/etc/calamares/post-install.sh`: drop the breadsearch/breadmill mentions. - `README.md` and `packaging/arch/README.md`: document that breadsearch is not shipped by default and how to add it (`bakery install breadsearch`). ## Scope notes - **New ISO installs only.** `bos-update` does not touch breadsearch on existing systems, so anyone who already has it keeps it. A forced cleanup of existing installs would be a separate `bos-update` change, deliberately not done here. - Left `build-local.sh:254` untouched: it is a historical comment listing example bakery services (`breadbox-sync, breadmill, breadclipd, ...`) and the statement stays true (breadmill is still a bakery-package service, just not baked). That file also has unrelated in-progress local work, so I avoided touching it. ## Verification - `python3 -c json.load` on the edited `autostart.json`: valid - `luac -p` on all three edited Lua files: clean - `bash -n` on `bos-update` and `post-install.sh`: clean - `scripts/ci-stage-bakery.py` reads `required_bins` / `[versions]` generically with no hardcoded package names, so the shorter lists are fine - Full ISO build not run locally (needs Arch + root); the release-iso workflow will exercise it breadboard: SEARCH-4. Tracking issue: Breadway/breadsearch#4.
Semantic file search was baked into every BOS image and enabled on first
login (breadmill.service), but it is heavy and not something every user
wants. Remove it from the default install; it stays one command away with
`bakery install breadsearch`, which pulls both the breadsearch and
breadmill binaries plus the breadmill.service unit (verified against the
live stable bakery index, breadsearch 0.3.3).

- iso/bread-lockfile.toml: drop breadsearch + breadmill from required_bins
  and the breadsearch version pin
- 90-bos-bakery.preset: drop 'enable breadmill.service'
- hypr autostart (autostart.json, hyprland.lua, scripts/system/autostart.lua):
  drop the 'breadsearch listen' command-bus entries. They were already
  'command -v breadsearch' guarded, so absence is a clean no-op
- remove the breadsearch.desktop launcher from skel
- drop breadsearch/breadmill mentions from packages.x86_64, bos-update and
  breadhelp-tour.lua comments and the calamares post-install comment
- README.md and packaging/arch/README.md: document that breadsearch is no
  longer default and how to add it back

This only affects new ISO installs. bos-update does not remove breadsearch
from existing systems; a forced cleanup would be a separate bos-update
change.

breadboard: SEARCH-4. Tracking issue: Breadway/breadsearch#4.
Author
Owner

Reviewed, looks ready to merge. Leaving the merge to you since bos is on the release train.

Acceptance criteria (from the issue body and the breadsearch SEARCH-4 direction it implements): drop breadsearch/breadmill from the default install (lockfile required_bins and version pin, the breadmill.service preset, the three hypr autostart entries, the desktop launcher) while keeping it available via bakery install breadsearch, update the assorted comments, and document the opt-in path in README.md and packaging/arch/README.md. Full diff review confirms all of that, nothing more and nothing less: 12 files, all doc/config/comment changes, no code. Scope notes in the PR body (new-installs-only, bos-update untouched, build-local.sh left alone due to unrelated in-progress work there) are accurate and appropriately conservative.

One gap: I could not get a commit status for this PR (get_commit_status returned empty for both the branch and the head sha), so I cannot confirm CI actually ran here. Worth checking before merge that a check did run and passed, since bos's CI setup may differ from the other repos.

This also satisfies SEARCH-4 (breadsearch repo), since all the actual work lives in this PR per that issue's own tracking note. Commented there separately.

Reviewed, looks ready to merge. Leaving the merge to you since bos is on the release train. Acceptance criteria (from the issue body and the breadsearch SEARCH-4 direction it implements): drop breadsearch/breadmill from the default install (lockfile required_bins and version pin, the breadmill.service preset, the three hypr autostart entries, the desktop launcher) while keeping it available via `bakery install breadsearch`, update the assorted comments, and document the opt-in path in README.md and packaging/arch/README.md. Full diff review confirms all of that, nothing more and nothing less: 12 files, all doc/config/comment changes, no code. Scope notes in the PR body (new-installs-only, bos-update untouched, build-local.sh left alone due to unrelated in-progress work there) are accurate and appropriately conservative. One gap: I could not get a commit status for this PR (get_commit_status returned empty for both the branch and the head sha), so I cannot confirm CI actually ran here. Worth checking before merge that a check did run and passed, since bos's CI setup may differ from the other repos. This also satisfies SEARCH-4 (breadsearch repo), since all the actual work lives in this PR per that issue's own tracking note. Commented there separately.
Breadway deleted branch fix/search-4-drop-breadsearch-default 2026-09-11 11:03:57 +08:00
Sign in to join this conversation.
No description provided.