Round 9 (Phase 8.x) outcomes: - Phase 8.1: Legacy archive audit — 0 cross-archive duplicates, 3 empty dirs removed (legacy-absorbed/base/redoxfs/userutils), 97 superseded + 62 absorbed = 159 archived verified - Phase 8.2: Collision detection now tracks base's dynamic build paths from Makefile (18 hardcoded entries: initfs, init.d, pcid.d, drivers). Source field shows 'build-dynamic'. Production: 162 paths surveyed, 0 collisions. - Phase 8.3: New fork-push-status doc for Round 9 (local/docs/fork-push-status/2026-07-12-Round-9-phase-8.3.md) documenting the operator's reversion of Round 5 pushes and the current deadlock state. Updated: - PATCH-PRESERVATION-AUDIT cumulative reduction table: added After Phase 8.2 row - README.md fork-push-status link updated to Round 9 doc Cumulative: 122 patches, 0 orphans (0%) through 9 rounds.
3.6 KiB
Fork-Branch Push Status — 2026-07-12 (Round 9, Phase 8.3)
This obsoletes the Round 5 doc. See the later section for the current state after operator reversion and multiple rounds of observation.
Round 5 pushes (2026-07-12, since reverted by operator)
In Round 5 Phase 4.0, 6 forks were force-pushed to origin:
| Fork | Before | After | Status |
|---|---|---|---|
| installer | 6afa6e5 |
8294ecb |
reverted |
| kernel | 77e745a |
b2a92287 |
reverted |
| syscall | c8bc43a |
6e4e5bd |
reverted |
| libredox | 52c324c | b99b204 |
reverted |
| userutils | ac3cff2 |
0dc0cb7 |
reverted |
| relibc | bae63d9 |
d157c227 |
reverted |
Round 7 audit discovered all 6 pushes were operator-reverted
between Round 5 and Round 7. The origin's submodule/<fork> refs
were deleted (replaced with the older master or removed). The local
fork work is preserved in local/sources/<fork> regardless of origin
state.
Current state (Round 9, 2026-07-12)
| Fork | Local SHA | Ahead | Behind | Notes |
|---|---|---|---|---|
| base | ab0da306 |
2569 | 190 | DEADLOCKED — gitea receive.shallowUpdate=true |
| bootloader | c78c3a6 |
11 | 128 | 927 vs 77 files divergence (permanent) |
| installer | 8294ecb |
61 | 0 | diverged mode (advisory) |
| kernel | b2a92287 |
49 | 0 | pushed in Round 5, reverted |
| libredox | b99b204 |
69 | 11 | pushed in Round 5, reverted |
| relibc | 5ee906ee |
3437 | 60 | pushed in Round 5, reverted |
| syscall | 6e4e5bd |
448 | 3 | pushed in Round 5, reverted |
| userutils | 0dc0cb7 |
202 | 12 | pushed in Round 5, reverted |
Base fork push deadlock (Round 5 → Round 9 — STILL PRESENT)
The gitea server's receive.shallowUpdate=true config (default true on
gitea) refuses to accept a push that would deepen the existing
submodule/base ref.
Operator-side resolution (3 paths):
Path A — gitea admin shell:
ssh operator@gitea.redbearos.org
gitea admin repo-edit --receive.shallowUpdate=false vasilito/RedBear-OS
Path B — gitea web UI: Settings → Branches → uncheck shallow update
Path C — use local/scripts/unblock-base-push.sh for guidance
Bootloader fork divergence (permanent as of Round 9)
927 files vs upstream 1.0.0's 77 files. The bootloader was created from
a 0.1.0 pre-patched archive, NOT from a git clone of upstream 1.0.0.
The divergence is structural — 856 files of legitimate Red Bear work.
An upgrade-forks.sh bootloader would need to re-create the entire
release from scratch. Marked as permanent divergence in
local/fork-upstream-map.toml ('diverged' mode).
Audit notes
- All fork work lives in
local/sources/<fork>/local clones. The origin refs are optional — the build system usespath = "..."source type for all Cat 2 forks and does not depend on the origin refs. - The
push-fork-branches.shscript was created in Round 5 and supplemented withunblock-base-push.shin Round 6. - For a consolidated status report at any time, run:
./local/scripts/patch-status.sh(or--brief/--json). - The
verify-fork-versions.shcheck passes for all 9 Cat 2 forks (2 are advisory 'diverged', 1 has kernel-couldn't-ls-remote).
See also
local/docs/PATCH-PRESERVATION-AUDIT-2026-07-12.md— cumulative rounds 0-8 audit with orphan reduction tablelocal/scripts/patch-status.sh— operator-facing status toollocal/scripts/push-fork-branches.sh— operator-reviewed fork pushlocal/scripts/unblock-base-push.sh— base fork deadlock resolver