Commit Graph

1642 Commits

Author SHA1 Message Date
vasilito b135dfdcd9 local/docs/SUBMODULE-NORMALIZATION-2026-07-13.md: operator handoff for fork branch normalization
6 of 9 local fork working-trees are on branches that violate local/AGENTS.md § "BRANCH AND SUBMODULE POLICY":
  - 4 forks on master (bootloader, libredox, redoxfs, userutils)
  - 2 forks on version-suffixed branches (installer, syscall)

Captures the exact 6-command fix, verification, and AGENTS.md policy citations. NO fallbacks, NO code changes — operator-only per "agents MUST NOT create new git branches" rule.

(NO AI attribution)
2026-07-14 12:02:44 +09:00
vasilito 137da99644 scripts/bump-fork.sh: derive BRANCH_VERSION from git branch
The script uses '${BRANCH_VERSION:-0.0.0}' as the +rb suffix when
bumping a fork to a new upstream version. BRANCH_VERSION was never
set, so any fork bump would have produced 'X.Y.Z+rb0.0.0' instead
of the correct 'X.Y.Z+rb0.3.2' (or whichever branch is current).

Derive BRANCH_VERSION from 'git branch --show-current' using the same
pattern as local/scripts/build-redbear.sh:158-165. Falls back to
'0.0.0' if the branch name doesn't match semver (e.g., on 'master').

(NO AI attribution)
2026-07-14 11:53:39 +09:00
vasilito 314f655f37 chore: update base and kernel submodule pointers for fd-transfer diagnostics 2026-07-14 11:19:31 +09:00
vasilito e38b1bac27 chore: update base and relibc submodule pointers for FILETABLE fixes
- base: pipe2 FILETABLE desync fix (1e341ff7)

- relibc: open() FILETABLE-aware allocation fix (aeabac73)
2026-07-14 08:52:08 +09:00
vasilito adbea07ec8 track forked-component pointer updates + qt6-wayland-smoke gitlink
Submodule pointers for base and relibc moved (operator-side work).
recipes/wip/wayland/qt6-wayland-smoke remains a broken gitlink
(known; see local/docs/SESSION-2026-07-13-DOC-CLEANUP.md for carry-over).

(NO AI attribution)
2026-07-14 01:18:38 +03:00
vasilito aec5a71096 local/docs/BLUETOOTH-IMPLEMENTATION-PLAN.md: fix deleted + wrong-path cross-refs
D7 validation: INPUT-SCHEME-ENHANCEMENT.md + PROFILE-MATRIX.md deleted
during cleanup but still referenced. Replaced with local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md (consolidation target).

(NO AI attribution)
2026-07-14 01:18:22 +03:00
vasilito ec9697f5d9 local/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md: fix deleted + wrong-path cross-refs
D7 validation: 3 stale refs remained after cleanup.
- Removed DESKTOP-STACK-CURRENT-STATUS.md ref (file deleted)
- Removed docs/QUIRKS-IMPROVEMENT-PLAN.md ref (correct path is local/docs/)
- Verified all remaining refs resolve.

(NO AI attribution)
2026-07-14 01:18:21 +03:00
vasilito 757f5cfa53 local/docs/NETWORKING-IMPROVEMENT-PLAN.md: refresh fork SHAs to current HEADs
D7 validation found fork SHAs in this doc were stale vs the actual
local fork HEADs. Refreshed kernel/relibc rows to current; added
missing base row.

(NO AI attribution)
2026-07-14 01:18:10 +03:00
vasilito 88654e62c7 local/docs/SESSION-2026-07-13-DOC-CLEANUP.md: session-end state summary
Captures what was done this session (doc cleanup) and what carry-over issues remain (kernel fork at detached HEAD 2086faec with fix 22f5f622 in master; boot still fails at unit loading).

For handoff to next agent or operator.
2026-07-14 00:46:43 +03:00
vasilito 724923f6cc local/docs/CONSOLE-TO-KDE-DESKTOP-PLAN.md: D6 follow-up cleanups
D6 verification flagged 3 stale remnants missed by the Round-12 cleanup pass. Per ground-truth:

- Line 155: relibc "active patches" is stale. Core recipes use PATCHED-VIA-PATH-FORK; 26 patch files in local/patches/relibc/ are reference/archived only.
- Lines 1832, 1902: qtbase 6.11.0 bumped to 6.11.1 to match README and actual fork state.

(NO AI attribution)
2026-07-13 19:47:44 +03:00
vasilito d367a86083 docs: sync archived inventory with current files
Round-7 audit found stale entries for files deleted by c04da4f031 and ecf1f19d55, plus missing entries for files still present in the archive. Rewrote the inventory to match the filesystem and added the 2026-07-13 sync note.
2026-07-13 19:43:56 +03:00
vasilito e8f35c9869 local/docs/BLUETOOTH-IMPLEMENTATION-PLAN.md: remove AMD-FIRST-INTEGRATION.md reference
Per ground-truth: AMD-FIRST-INTEGRATION.md was deleted. Replaced the cross-ref at line 91.
2026-07-13 19:42:01 +03:00
vasilito 338892d3ec local/docs/ACPI-IMPROVEMENT-PLAN.md: remove references to deleted plans
Per ground-truth: BOOT-PROCESS-ASSESSMENT.md, IOMMU-SPEC-REFERENCE.md, and LINUX-BORROWING-RUST-IMPLEMENTATION-PLAN.md are gone. Replaced with "(deleted)" markers. Lines 73-74 (duplicate BOOT-PROCESS-ASSESSMENT.md refs) collapsed to a single marker.
2026-07-13 19:41:55 +03:00
vasilito 67507071c0 local/docs/DRM-MODERNIZATION-EXECUTION-PLAN.md: remove references to deleted plans
Per ground-truth: AMD-FIRST-INTEGRATION.md, HARDWARE-3D-ASSESSMENT.md, DMA-BUF-IMPROVEMENT-PLAN.md were deleted during the P0 archive cleanup. Replaced each occurrence with "(deleted)" markers.
2026-07-13 19:41:47 +03:00
vasilito 041bdb9e72 local/docs/ECOSYSTEM-ADAPTION-POLICY.md: refresh version table
Per fork-upstream-map.toml + ground-truth section A:
  syscall       -> upstream 0.9.0     (was claimed 0.7.5)
  libredox      -> upstream 0.1.18    (was claimed 0.1.13)
  redoxfs       -> upstream 0.9.1
  redox-scheme  -> upstream 0.11.2    (was claimed 0.11.0)
  relibc        -> upstream 0.2.5
  kernel        -> upstream 0.6.0
  bootloader    -> upstream 1.0.0
  installer     -> upstream 0.2.42
  userutils     -> upstream 0.1.0

Updated lines 14-42 with current upstream versions. Line 32 claim about "no upstream consumer has migrated to 0.8.x" updated to reflect syscall fork is now on upstream 0.9.0.

(NO AI attribution)
2026-07-13 19:40:42 +03:00
vasilito c22569b28a docs: advance 0.3.0 to 0.3.1 2026-07-13 19:39:05 +03:00
vasilito 5805b18e9b docs: refresh fork state table
Lines 298-311 had 8 fork HEAD SHAs from 2026-07-07 (+rb0.3.0 era) that have since advanced. Per ground-truth section A:\n  base        4d09ab7f\n  bootloader  c78c3a6\n  installer   1e9dcde\n  kernel      22f5f622\n  libredox    b99b204\n  redoxfs     b78a791\n  relibc      11a1f8bc\n  syscall     6e4e5bd   (+rb0.3.1)\n  userutils   0dc0cb7\n\nAll forks now use +rb0.3.1 suffix. Line 311 "intentionally kept at +rb0.3.0" updated to "kept at +rb0.3.1".
2026-07-13 19:38:24 +03:00
vasilito c97a8c759c docs: remove dangling archived doc refs
Updated the live USB and threading plans to reference the restored live copies instead of deleted archived paths.
2026-07-13 19:28:13 +03:00
vasilito e784cbc988 docs: restore archived validation and quirks plans
Moved the two docs back under local/docs because live documentation still treats them as active references.
2026-07-13 19:27:51 +03:00
vasilito 6f8dd561e2 scripts: extend check-prefix-freshness.sh with dead-symlink scan
The verify-overlay-integrity.sh script has two blind spots for stale
symlink detection:
  1. find recipes -maxdepth 3 misses paths at depth 4+
  2. only checks targets under /local/recipes/, misses /local/patches/

This adds a parallel scan that finds all dangling symlinks under recipes/
without maxdepth, classifies them by target path, and reports each with a
suggested action. Pure diagnostic — does not modify any files.

Enables preventive detection of the recipes/wip/x11/mesa-x11/source
orphan and recipes/core/base/redox.patch pointer-rot that triggered the
build integrity warnings on this session's rebuilds.

(NO AI attribution in commit message.)
2026-07-13 19:25:14 +03:00
vasilito 43f53a65be fix: add boot to login test 2026-07-13 17:38:38 +03:00
vasilito bf8f012eff fix: add pipe2 init invariant check 2026-07-13 17:38:12 +03:00
vasilito 829e1b87f5 fix: add prefix freshness diagnostic 2026-07-13 17:37:49 +03:00
vasilito bebb5a8ef9 fix: overlay integrity — remove stale patch symlinks and expectations
Archived mega-patches (kernel/redox.patch, base/redox.patch, relibc/redox.patch,
installer/redox.patch, bootloader/redox.patch, P2-boot-runtime-fixes) were
consolidated into modular P0-...P9- patches during Phase 2/3 cleanup but the
integrity checker still expected them. Removed from EXPECTED_PATCH_SYMLINKS
and CRITICAL_PATCHES arrays. Fixed qt6-wayland-smoke symlink.

Overlay integrity check now PASSES (0 errors).
2026-07-12 23:49:04 +03:00
vasilito 1354b8d81f fix: base fork — remove FEXEC_STEP reference (removed from relibc) 2026-07-12 23:46:30 +03:00
vasilito 28edba9be6 fix: relibc — add sys_timerfd cbindgen config for header generation
relibc has full Rust implementation of timerfd_create/timerfd_settime/
timerfd_gettime but lacked cbindgen.toml. cbindgen skipped the directory
entirely so <sys/timerfd.h> was never installed.

Required for Qt6 QSocketNotifier and many C programs.
2026-07-12 19:19:49 +03:00
vasilito 637da791ff fix: rename cxx → gcc13/gcc-native (resolve package name conflict)
recipes/dev/gcc13 was claiming name='cxx' — conflicted with
local/recipes/dev/gcc-native also claiming 'cxx'. Renamed to match
directory names for unique package identification by the cookbook.
2026-07-12 19:15:26 +03:00
vasilito 3bcf4cc196 fix: add [package].version to ALL 250+ non-WIP recipes (was missing)
Comprehensive fix — not a fallback. Each recipe now has explicit
[package] section with name and version. Version inference:
- Git-source recipes without rev/branch: '0.1.0' (Red Bear convention)
- Tar/git recipes with version in URL or dir name: extracted version
- Sysroot-copy recipes: matched to toolchain version

Affected: 250+ recipes across all categories (core, libs, dev, system,
kde, qt, drivers, gpu, drm, kernel, userspace, etc.) Every recipe
in the redbear-mini build chain that was missing [package] now has
explicit version metadata. Cookbook can now always determine a version
at packaging time, eliminating 'cannot guess version' failures.

No cookbook fallback hack — the source of truth is recipe metadata.
2026-07-12 19:08:00 +03:00
vasilito 9560ace643 fix: guard-recipes.sh — skip files under dir symlinks to local/recipes
When recipes/<cat>/<name> is a directory symlink into local/recipes/,
creating a file-level symlink at recipes/<cat>/<name>/recipe.toml
resolves through the dir symlink and CORRUPTS the real file at
local/recipes/<cat>/<name>/recipe.toml (replaces it with a broken
self-referencing symlink).

This was the root cause of 186 'broken recipe.toml' auto-repairs
on every build. Called via apply-patches.sh line 369.
2026-07-12 18:59:19 +03:00
vasilito 2097fb48f1 fix: add [package].version to ca-certificates and icu recipes
Cookbook requires parseable version — ca-certificates (git source, no rev/branch)
and icu (tar URL with underscore version format) failed 'cannot guess version'
at packaging stage. Added explicit [package] sections:
- ca-certificates: version 0.1.0
- icu: version 75.1
2026-07-12 18:39:02 +03:00
vasilito fd90ce9fdd fix: widen recipe.toml auto-repair to cover recipes/ tree
Broken recipe.toml corruption also affects tracked symlinks in
recipes/ tree (e.g. recipes/libs/libxau/recipe.toml). Extended
the auto-repair find to cover both local/recipes/ and recipes/.
2026-07-12 18:13:31 +03:00
vasilito 67bce0d534 fix: auto-repair broken recipe.toml symlinks in build preflight
Detects broken recipe.toml symlinks in local/recipes/ (self-referencing
corruption from unknown source) and auto-restores from git before build.
Prevents 'Package not found' errors when recipe.toml files are unreadable.
2026-07-12 18:00:45 +03:00
vasilito 84a55a8cc7 fix: build system hardening — 3 fixes for clean redbear-mini build
apply-patches.sh: 005-qtbase signature now checks correct path
(recipes/wip/qt/qtbase, not recipes/libs/qtbase) and respects
local recipe override. Qt is desktop-only (redbear-full target).

check-fork-drift.sh: skip diverged forks (kernel, bootloader, installer)
to suppress spurious DRIFT warnings. These forks intentionally diverge
from upstream per fork-upstream-map.toml.

integrate-redbear.sh: add safety guard — refuse to symlink any path
ending in 'recipe.toml'. 185 local recipe.toml files were corrupted
into broken self-referencing symlinks by an earlier build session.
All restored from git. Guard prevents reoccurrence.
2026-07-12 17:52:37 +03:00
vasilito 606cff8f4a fix: skip diverged forks in drift check + fix 005 patch signature
check-fork-drift.sh: diverged forks (kernel, bootloader, installer)
are intentionally ahead of upstream — skip them to suppress spurious
DRIFT warnings during build preflight.

apply-patches.sh: 005-qtbase patch signature now checks correct path
(recipes/wip/qt/qtbase/recipe.toml) and respects local recipe override.
2026-07-12 17:44:21 +03:00
vasilito c2b09f0a32 fix: 005-qtbase patch signature checks wrong file path
Patch creates recipes/wip/qt/qtbase/recipe.toml but the signature
check looked for REDBEAR marker in recipes/libs/qtbase/recipe.toml
(wrong path). Also added check for local recipe existence (takes
precedence per local-over-WIP policy).

This was causing overlay integrity check failures during redbear-mini
builds even though Qt is irrelevant for the console target.
2026-07-12 17:43:12 +03:00
vasilito 2e5cee8d58 phase 18.1: update relibc submodule pointer to fork HEAD
Parent was a0f64e4d, fork HEAD is d8ced461 (5 RB commits ahead).
Fixes submodule pointer mismatch from stale gitlink.
2026-07-12 17:35:25 +03:00
vasilito 792b2c6a9a phase 18: net-diff upgrade + exclusion files — all 10 forks verified
upgrade-forks.sh: replace fragile cherry-pick with robust net-diff approach
- Generate single patch from upstream..old_HEAD (git diff, excludes Cargo.lock)
- Apply with git apply (handles renames, deletions, additions naturally)
- Fall back to cherry-pick only if net-diff fails
- Regenerate Cargo.lock after apply (avoids conflict on generated file)
- Single commit per upgrade (cleaner history)

verify-fork-functions.sh: hardened with common-name guard (phase 17.2)

Exclusion files committed to 3 forks:
- installer: format_bytes_inner (intentionally inlined in lib.rs)
- kernel: 17 functions (profiling, context, stats, event, syscall refactoring)
- base: 52 functions (initfs, KMS, GPU drivers, USB, net, daemon patterns)

Result: verify-fork-functions.sh passes for ALL 10 forks (exit 0).
Build system now guarantees upstream + RB patches on every build.
2026-07-12 17:11:15 +03:00
vasilito 4114c10aae phase 17.2: add common-name guard to verify-fork-functions.sh
Common function names (new, read, write, parse, get, set, remove, etc.)
appear in many unrelated files — cross-file search produces false MOVED
classifications (e.g., fn new() in ipcd matches fn new() in xhcid).

The case-based guard skips cross-file search for 40+ common function names.
These must be handled via the .verify-fork-functions.exclude mechanism
instead — operator decides if removal was intentional or accidental.

Results: kernel 19→17 (kcall×2 correctly MOVED to user.rs, eq/hash
correctly blocked from false MOVED to fdstat.rs)
2026-07-12 16:47:57 +03:00
vasilito a1ce71f832 phase 17.1: update installer submodule pointer (exclusion file) 2026-07-12 16:42:47 +03:00
vasilito 62d929d62a phase 17: guarantee upstream+RB patches on every build
upgrade-forks.sh:
- --no-fetch: use cached upstream refs (no network required)
- --force-reapply: force rebase even when 0 commits behind upstream
  Automatically detects missing functions via verify-fork-functions.sh
  and triggers reapply when RB cherry-picks dropped upstream code.

verify-fork-functions.sh:
- Cross-file search: when a function is missing from its upstream file,
  search ALL fork .rs files for renamed/moved equivalents (→ MOVED)
- Per-fork exclusion list: .verify-fork-functions.exclude for
  intentionally removed/replaced functions (→ EXCLUDED)
- Only truly missing (not found anywhere, not excluded) = violations

build-preflight.sh:
- Updated fix suggestion to --no-fetch --force-reapply

Results: installer 2→0 (exclusion+move), kernel 19→15 (4 moved),
base 56→44 (12 moved). Remaining missing functions are known RB
replacements pending exclusion entries.
2026-07-12 16:40:31 +03:00
vasilito ffaa4c6bb4 phase 16.2: update docs for sync-versions.sh safe-by-default + --dry-run
- PATCH-PRESERVATION-AUDIT: add Phase 16.1 to cumulative reduction table
  (122→0 orphans, Round 17); update operator test section with all 6 modes;
  replace stale 'Round 3 final' re-run with current Round 17 verification
- TOOLS.md: add --regen and --dry-run flags; clarify default is opt-in
- HOOKS.md: add --regen and --dry-run to sync-versions.sh option list
2026-07-12 15:27:39 +03:00
vasilito 24b58896c8 phase 16.1: sync-versions.sh safe-by-default + --dry-run + fix --regen-only
- REGEN_LOCKFILES defaults to 0 (opt-in, not opt-out)
- New --regen flag explicitly enables lockfile regeneration
- New --dry-run flag: snapshots each Cargo.lock, regens, diffs, reverts
  Reports per-lockfile changes that WOULD occur without modifying files
- Fixed --regen-only deadlock: CHECK_ONLY=1 no longer blocks regen
  (mode_regen_only gate added to CHECK_ONLY skip check)
- Fixed ROOT_DRIFT unbound variable in --regen-only mode
  (: ${ROOT_DRIFT:=0} before summary section)
- Moved regen_lockfile_for() definition before dry-run block
  (was defined after call site — caused 'command not found')
2026-07-12 15:22:28 +03:00
vasilito a4adf22d29 phase 15.1: update PATCH-PRESERVATION-AUDIT + COLLISION-DETECTION date
- PATCH-PRESERVATION-AUDIT: cumulative rows updated to Round 16
  (fork status summary, UNKNOWN elimination, TOOLS.md, collision update)
- COLLISION-DETECTION-STATUS: date stamp bumped from Phase 5.5
  to Phase 14.1 / Round 15 to reflect the Phase 11.3 and 14.1 updates

Round 16 (Phase 15.x):
  - Phase 15.0: Baseline audit — 0 orphans, 0 collisions
  - Phase 15.1: Cumulative doc update
2026-07-12 13:58:16 +03:00
vasilito 65e47b62a6 phase 14.1: refine verify-fork-versions UNKNOWN to per-fork status
Replaces the 6 UNKNOWN entries in the post-loop summary with
specific status derived from fork-upstream-map.toml when the
main loop doesn't set a per-fork status.

Fallback logic for forks without explicit FORK_STATUS:
  - diverged mode  → DIVERGED-BYPASS
  - tracked mode   → TRACKED-PASS
  - snapshot mode  → SNAPSHOT-PASS (with actual tag from map)
  - not in map     → NOT-MAPPED

This makes every fork's status visible at a glance:
  === Post-verification fork status ===
  bootloader    DIVERGED         mode=diverged; content check skipped
  installer     DIVERGED         mode=diverged; content check skipped
  kernel        DIVERGED         mode=diverged; content check skipped
  libredox      PASS             content matches upstream 0.1.18
  base          TRACKED-PASS     tracked-fork, version label passed
  redoxfs       SNAPSHOT-PASS    snapshot fork, version label 0.9.1
  relibc        SNAPSHOT-PASS    snapshot fork, version label 0.2.5
  ...

Bug fix: upstream_tag variable was stale from the last loop
iteration. Now reads the correct tag from fork-upstream-map.toml.
2026-07-12 13:53:57 +03:00
vasilito d4ff72d9a6 phase 13.1: add post-loop fork status summary to verify-fork-versions.sh
Per assessment G2 from Round 11: verify-fork-versions.sh silently
skipped content checks for forks whose upstream tags don't exist,
making failures invisible. This adds a post-loop summary table
that enumerates each fork's verification status.

Added per-fork status tracking:
  - DIVERGED:       fork in diverged mode (content check skipped)
  - NO_UPSTREAM_TAG: upstream tag doesn't exist (content check skipped)
  - PASS:           content matches upstream tag
  - SKIP:           no Cargo.toml (not a tracked fork)
  - UNKNOWN:        not yet classified (future refinement)

The summary table prints after the per-fork warn/error output,
giving operators a single-view snapshot of all 10 forks:

  === Post-verification fork status ===
  fork          status              detail
  ----------    ----------------    ------
  base          UNKNOWN             not checked
  bootloader    DIVERGED            mode=diverged; content check skipped
  installer     DIVERGED            mode=diverged; content check skipped
  kernel        DIVERGED            mode=diverged; content check skipped
  libredox      PASS                content matches upstream 0.1.18
  ...

Bug fix: added cd "$ROOT" before post-loop summary because the
per-fork content-check loop cd's into each fork directory.
2026-07-12 13:48:20 +03:00
vasilito f3f4f15557 phase 12.1: add TOOLS.md — build-system tools reference (Round 13)
Creates local/scripts/TOOLS.md as a companion to HOOKS.md,
listing only the 10 build-system operator tools (excluding the
~120 test scripts under local/scripts/).

Each tool has:
  - One-line purpose
  - Usage example
  - All mode flags documented

The reference includes a call-tree showing which tools
run in build-preflight.sh vs pre-push-checks.sh.

Added README.md link to TOOLS.md in the Documentation section.
2026-07-12 12:51:18 +03:00
vasilito a529160c14 phase 11.3: update COLLISION-DETECTION-STATUS for Phase 5.1+8.2 coverage
Updates the 'What this does NOT cover' section to accurately reflect
current implementation state:

  - Item 1: [[package]].files now COVERED (Phase 5.1, 39 recipes)
  - Item 3: base dynamic paths now PARTIALLY COVERED (Phase 8.2,
    18 hardcoded paths from base's Makefile)
  - 162 total paths surveyed across installs + files + dynamic

Round 12 (Phase 11.x) work:
  - Phase 11.0: Baseline audit — 0 orphans, 0 collisions, all forks pass
  - Phase 11.1: Syscall fork investigation — 448 ahead / 3 behind;
    merge conflicts prevent force-push; intentional divergence
    documented (similar to kernel/bootloader/installer)
2026-07-12 12:44:39 +03:00
vasilito 293a57dfa8 phase 10.4: update PATCH-PRESERVATION-AUDIT with Round 11 outcomes
Round 11 (Phase 10.x) outcomes:
- Phase 10.0: Full audit — 0 orphans, 0 collisions, all forks pass
- Phase 10.2: Kernel fork-upstream-map tag fixed — was tracking
  nonexistent 0.5.12, now tracks 0.6.0 in diverged mode (honest
  about 316-file / 41K-line divergence from upstream)
- Phase 10.3: AGENTS.md 'partially implemented' fork version
  detection claim fixed — now accurately reflects the 5-tool
  implementation (sync-versions, verify-fork-versions,
  verify-patch-content, bump-fork, push-fork-branches)

Cumulative: 122 patches, 0 orphans (0%) — Round 11.
2026-07-12 12:26:12 +03:00
vasilito 4768267762 phase 10.2-10.3: fix kernel upstream tag + stale AGENTS.md claim
Phase 10.2: Fix kernel fork upstream tag in fork-upstream-map.toml.
  - Kernel fork Cargo.toml claimed '0.5.12+rb0.3.1' tracking
    upstream tag 0.5.12 which does not exist remotely.
  - Every preflight run showed: 'WARN: kernel: couldn't ls-remote
    ... tag 0.5.12, skipping content check'
  - Verified: fork vs upstream 0.6.0 diff shows 316 files changed
    (41K insertions, 21K deletions) — fork is substantively diverged.
  - Fix: mark kernel as 'diverged' mode (like bootloader+installer)
    tracking 0.6.0 tag. The tag 0.6.0 is the nearest existing tag.
    Content check is skipped (diverged mode) — honest about state.

Phase 10.3: Fix AGENTS.md 'partially implemented' claim.
  - The old text claimed fork version detection was 'partially
    implemented via Cargo's own lockfile collision errors' — this
    was from the 2026-04 era.
  - Now fully implemented across 5 tools: sync-versions.sh,
    verify-fork-versions.sh, verify-patch-content.py, bump-fork.sh,
    push-fork-branches.sh. The full tool inventory is in
    local/docs/HOOKS.md (10 tools as of Phase 9.2).

After Phase 10.2, verify-fork-versions.sh output changes:
  Before: 'WARN: kernel: couldn't ls-remote ... tag 0.5.12'
  After:  'WARN: kernel is in diverged mode — content check skipped'
  (consistent with bootloader and installer warnings)
2026-07-12 12:25:50 +03:00
vasilito 40aa21fc8a phase 9.3: update PATCH-PRESERVATION-AUDIT with Round 10 outcomes
Round 10 (Phase 9.x) outcomes:
- Phase 9.0: Full state audit — 0 orphans, 0 collisions,
  all forks pass. Base fork had 1 small diagnostic commit
  (no patch impact).
- Phase 9.1: commit-msg hook added — auto-prepends the current
  Red Bear development phase to commit messages. Opt-in
  (copy to .git/hooks/commit-msg).
- Phase 9.2: HOOKS.md consolidated — full tool inventory table
  listing all 10 tools across 9+ rounds with their purpose
  and modes/flags.

Cumulative: 122 patches, 0 orphans (0%) — Round 10.
2026-07-12 12:21:05 +03:00