config + ghost recipes: wire redbear-dnsd + document WIP stubs

CRITICAL F21 from NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md
§3.6: redbear-dnsd was built but not wired into any config target.

- config/redbear-mini.toml: added redbear-dnsd to [packages] list
- config/redbear-mini.toml: added 11_dnsd.service init entry that
  requires_weak=10_dhcpd.service (DNS comes up after DHCP)
- The service uses redbear-dnsd directly (not the old 'dnsd' name)

WIP stubs documented per AGENTS.md 'WIP recipes MUST start with
#TODO describing what is missing' (the previous minimal recipe.toml
files violated this):

- local/recipes/system/netd/recipe.toml: WIP skeleton for the
  Red Bear network event/notification daemon. Documents 4 gaps:
  source/ missing, scheme:netd contract, redbear-netctl integration,
  QEMU integration tests.
- local/recipes/system/audiodevd/recipe.toml: WIP skeleton for the
  audio device aggregator. Documents 4 gaps: source/ missing,
  scheme:audiodev contract, audio backend integration, HDA tests.
- local/recipes/system/usbd/recipe.toml: WIP skeleton for the USB
  device manager (distinct from the existing redbear-usb-hotplugd).
  Documents 4 gaps: source/ missing, scope split from usb-hotplugd,
  config integration, QEMU tests.

These are NOT removed (per AGENTS.md 'Never delete to fix a build').
The right fix is implementation; this commit just brings them into
WIP-policy compliance so the gap is explicit and trackable.
This commit is contained in:
2026-07-27 15:54:28 +09:00
parent 5656f8ccbe
commit 6b105c7cee
4 changed files with 87 additions and 2 deletions
+19
View File
@@ -41,6 +41,11 @@ redbear-traceroute = {}
redbear-mtr = {}
redbear-nmap = {}
# Caching DNS daemon (loopback listener + scheme:dns). Wired as a service
# below; see [init] section. Provides positive + negative caching and an
# mDNS responder so the loopback resolver hits cache before upstream.
redbear-dnsd = {}
# Wi-Fi control daemon (firmware-loader excluded — no firmware blobs in mini).
redbear-wifictl = {}
@@ -148,6 +153,20 @@ args = ["-f"]
type = "oneshot_async"
"""
[[files]]
path = "/etc/init.d/11_dnsd.service"
data = """
[unit]
description = "Caching DNS daemon (loopback listener + scheme:dns)"
requires_weak = [
"10_dhcpd.service",
]
[service]
cmd = "redbear-dnsd"
type = "oneshot_async"
"""
[[files]]
path = "/etc/issue"
data = """
@@ -1,3 +1,24 @@
# Red Bear audiodevd — WIP skeleton
#
#TODO audiodevd is the Red Bear audio device aggregator (analogous to
# Linux's PulseAudio/PipeWire daemon in role, not implementation).
# It multiplexes multiple audio backends (HDA, AC97, USB Audio Class)
# into a single scheme:audiodev. Per AGENTS.md "WIP recipes MUST start
# with `#TODO` describing what is missing", this header documents the
# gaps:
#
# - [ ] Source: `source/` directory does not yet exist. Building
# this recipe will fail at fetch.
# - [ ] Backend contract: scheme:audiodev (stream/connect/disconnect)
# is not yet defined.
# - [ ] Integration: HDA/AC97/USB audio drivers (ac97d, ihdad,
# redbear-usbaudiod) do not publish to audiodevd.
# - [ ] Tests: at least one integration test playing audio through
# a QEMU guest with a HDA emulation is required.
#
# The right fix is to implement the daemon. Track under
# `local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6
# (ghost-recipe gap) until implementation lands.
[package]
name = "audiodevd"
version = "0.3.1"
@@ -7,3 +28,4 @@ path = "source"
[build]
template = "cargo"
+23 -2
View File
@@ -1,8 +1,29 @@
# Red Bear netd — WIP skeleton
#
#TODO netd is the Red Bear network event/notification daemon (analogous
# to Linux's `networkd` for netlink-driven interface events, link state
# changes, and address acquisition). This recipe exists as a WIP
# skeleton so the build pipeline can reference it once the implementation
# lands. Per AGENTS.md "WIP recipes MUST start with `#TODO` describing
# what is missing", this header documents the gaps:
#
# - [ ] Source: `source/` directory does not yet exist. The current
# recipe is a placeholder; building it will fail at fetch.
# - [ ] Scheme contract: scheme:netd (or wired into an existing
# scheme:netcfg extension) is not yet defined.
# - [ ] Integration: redbear-netctl does not subscribe to netd
# events; netd is not in any redbear-*.toml [packages] list.
# - [ ] Tests: at least one integration test against a QEMU guest
# with two NICs is required before promoting to non-WIP.
#
# The right fix is to implement the daemon. Track under
# `local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6
# (ghost-recipe gap) until implementation lands.
[source]
path = "source"
[build]
template = "cargo"
[package]
name = "netd"
version = "0.3.1"
bins = ["netd"]
+23
View File
@@ -1,3 +1,25 @@
# Red Bear usbd — WIP skeleton
#
#TODO usbd is the Red Bear USB device manager (analogous to Linux's
# udevd for USB-class hotplug, but specifically for the USB subsystem
# surface: class-driver autospawn policy, persistent device naming,
# and a scheme:usb namespace). Per AGENTS.md "WIP recipes MUST start
# with `#TODO` describing what is missing", this header documents the
# gaps:
#
# - [ ] Source: `source/` directory does not yet exist. Building
# this recipe will fail at fetch.
# - [ ] Distinction: redbear-usb-hotplugd (exists) already handles
# USB hotplug events. usbd is a higher-level manager that
# owns class-driver autospawn policy and persistent naming.
# The exact split between the two is not yet finalized.
# - [ ] Integration: usbd is not in any redbear-*.toml [packages] list.
# - [ ] Tests: at least one integration test exercising USB
# hotplug against a QEMU guest is required.
#
# The right fix is to implement the daemon. Track under
# `local/docs/NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.6
# (ghost-recipe gap) until implementation lands.
[package]
name = "usbd"
version = "0.3.1"
@@ -7,3 +29,4 @@ path = "source"
[build]
template = "cargo"