diff --git a/AGENTS.md b/AGENTS.md index a1cc91078f..d6d14630c5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -106,6 +106,34 @@ redox-master/ ## BUILD COMMANDS +## SCHEME COMPATIBILITY POLICY (ABSOLUTE — CRITICAL) + +**Red Bear OS MUST be fully compliant with upstream Redox schemes.** Schemes created by +upstream Redox — their paths, listing formats, open/create/stat semantics, error codes, +and on-disk representations — are a compatibility contract, not an implementation detail. +Userspace written against upstream Redox MUST work on Red Bear OS without modification. + +- **Upstream schemes are frozen contracts.** Any bug fix or feature work inside an + upstream scheme (e.g. `scheme:irq`, `scheme:pci`, `scheme:memory`, `scheme:serio`, + `scheme:time`, `scheme:kernel.acpi`) MUST preserve the upstream contract exactly — + path shapes (e.g. `/scheme/irq/cpu-{:02x}`), directory listing formats, handle + semantics, and error behavior. +- **New Red Bear-only schemes MAY be introduced** where upstream has no equivalent + (e.g. `scheme:quirks`, `scheme:firmware`, `scheme:driver-params`). They must be + clearly named, documented in `local/docs/`, and must never collide with or alter the + meaning of any upstream scheme namespace. +- **Upstream scheme evolution is adopted, never resisted.** When upstream Redox changes + a scheme, Red Bear adapts to the new upstream contract (per the GOLDEN RULE) — we do + not hold back, fork, or "improve" upstream scheme semantics on our own. +- **Canonical violation (regression, 2026-08-05):** the MADT-normalization rewrite + changed the `/scheme/irq/cpu-NN` listing from upstream `cpu-{:02x}` to variable-width + `cpu-{:x}`, and broke `cpu-XX/` handle creation entirely (split_once consuming + the separator) — panicking xhcid and virtio-netd with "no interrupt vectors left". + Both were fixed immediately. This is the reference example of a scheme-contract + violation: an upstream scheme's contract was changed as a side effect of unrelated + feature work. Any change touching an upstream scheme's observable behavior must be + called out explicitly in its commit message and verified against upstream semantics. + ### ⛔ CANONICAL BUILD POLICY (ABSOLUTE — READ FIRST) **The ONLY way to build Red Bear OS is `./local/scripts/build-redbear.sh`.** diff --git a/local/sources/kernel b/local/sources/kernel index 88ca99c1a8..46ea4facf4 160000 --- a/local/sources/kernel +++ b/local/sources/kernel @@ -1 +1 @@ -Subproject commit 88ca99c1a87be6f75464129020747cfa2b740133 +Subproject commit 46ea4facf42948255a26e49515630019059996f1