policy: upstream scheme compatibility is ABSOLUTE; kernel: bump gitlink
redbear-ci / check (push) Has been cancelled

New SCHEME COMPATIBILITY POLICY: upstream Redox schemes are frozen
contracts (paths, listing formats, semantics, error codes); Red Bear-only
schemes may be introduced but must never collide with upstream namespaces;
the 2026-08-05 cpu-NN regression is recorded as the canonical violation.
Kernel gitlink bump carries the {:02x} listing revert.
This commit is contained in:
2026-08-05 11:32:02 +03:00
parent 501a06434f
commit b51aa9503f
2 changed files with 29 additions and 1 deletions
+28
View File
@@ -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/<irq>` 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`.**