The 2026-07-28 FIRST-CLASS CITIZEN POLICY was initially drafted with all 48
redbear-* recipes wired into redbear-mini. The operator corrected this:
MINI target includes just packages whicha are not related to graphics.
While FULL must contain all text+graphial packages.
So the corrected architecture is:
- redbear-mini = text-only binaries (24 original + a few more)
- redbear-full = ALL redbear-* (text + graphics, via inheritance + explicit
full-only entries)
Updated docs:
- REDBEAR-FIRST-CLASS-CITIZEN-POLICY.md: rewrote with the wiring table per
program classification (text-only binary / graphics binary / library-only /
hardware peripheral driver). Library-only recipes follow their consumers'
target: tui-theme (consumed by power/cub/tlc in mini) goes in mini;
hid-core/login-protocol/passwd (consumed by desktop-only programs) go in full.
- ORPHAN-STATUS.md: rewrote as 'Library-only Red Bear Crates' reference.
Documents the 4 library-only recipes, their consumers, and the config
they are wired into per the corrected policy.
- FIRMWARE-SUBSETS-DECISION.md: rewrote. All 5 firmware recipes (monolithic
+ 4 subsets) are now correctly classified as graphics-related and wired
into redbear-full (not mini). Original decision was to KEEP-ORPHAN them,
but the corrected FIRST-CLASS policy promotes them to first-class citizens
in redbear-full.
- REDBEAR-UFW-STATUS.md: rewrote. redbear-ufw is a text-only firewall prototype
and is wired into redbear-mini (the text-only target), not redbear-full.
The prototype is built on every canonical build invocation per the
FIRST-CLASS CITIZEN policy.
- 5 firmware README.md files: removed stale 'KEEP-ORPHAN' / 'STUB-DATA'
markers that were written before the corrected policy. Each now reads
'FIRST-CLASS CITIZEN (wired into config/redbear-full.toml [packages])'
per the corrected wiring.
All 48 redbear-* recipes remain reachable from at least one config:
- text-only binaries + their consumers' libraries in redbear-mini
- graphics binaries + library-only recipes for desktop consumers in redbear-full
- hardware peripherals in redbear-{wifi,bluetooth}-experimental.toml (inherited by full)
sync-versions.sh --check still passes (75 Cat 1 crates, 0 drift).
Phase 1 critical fixes:
1. redbear-netctl-console/recipe.toml: add missing [package] name + version
fields. The recipe was silently dropped by the cookbook because it had
no [package] identity, breaking 'make r.redbear-netctl-console'.
2. redox-drm/recipe.toml: add missing [package] name + version. Same defect
class as redbear-netctl-console.
3. redbear-tui-theme/recipe.toml: create from scratch. The source/ crate
existed but no recipe.toml meant the cookbook never cooked it. Now wired
into redbear-mini (Phase 3).
4. redbear-ufw/recipe.toml + REDBEAR-UFW-STATUS.md: prototype in base fork
(local/sources/base/redbear-ufw/) previously had no recipe and no
documentation. Per AGENTS.md NEVER DELETE rule, the source is preserved
in base; a recipe is now created + a status doc explains the
intentionally-orphaned lifecycle (NEVER DELETE compliance).
5. Delete vestigial local/recipes/system/redbear-netstat/redbear-netstat/
nested directory (duplicate of source/, NOT consumed by build — pure
dead code).
First-class-citizen policy:
- REDBEAR-FIRST-CLASS-CITIZEN-POLICY.md: declares that every redbear-*
recipe is a first-class citizen of redbear-mini. No recipe may be left
unreachable from the build. This codifies the operator's earlier intent
statement that all redbear-* programs must be built.
- ORPHAN-STATUS.md: documents KEEP-ORPHAN recipes (library-only crates
consumed via Cargo path deps — correct pattern, not real orphans).
- FIRMWARE-SUBSETS-DECISION.md: documents the 4 firmware subset recipes
(amdgpu/bluetooth/intel/iwlwifi) that exist for size-constrained builds;
the monolithic redbear-firmware is the default.
- REDBEAR-ULW-ASSESSMENT-PLAN.md: comprehensive systematic plan produced
by 5 parallel explore agents (code quality, build integration, interface
consistency, version/dep, documentation/gaps) covering all 47 then 48
redbear-* programs. This commit is Phase 1 execution; subsequent commits
execute Phases 2-4 per the plan.
Verified: sync-versions.sh --check passes (75 Cat 1 crates, 0 drift).