Files
RedBear-OS/local/recovered-stashes/README.md
T
vasilito 6fc0366abb build system: remove working-tree stashing (data-loss risk); pre-cook CI=1; target-scoped diagnostics
Remove the stash-and-restore machinery entirely. It manipulated the operator's
working tree and had a fatal bug: modern git's 'stash push' does not print the
stash SHA on stdout, so the SHA was never recorded, the stash was never restored,
and with REDBEAR_ALLOW_DIRTY=1 the operator's dirty-fork WIP was silently
stranded in 'git stash list' on every build (base had accumulated 25 strands).
The build now cooks committed HEAD, or the working tree AS-IS under
REDBEAR_ALLOW_DIRTY=1 — it never touches the tree. A read-only startup advisory
surfaces any leftover redbear-build-* strands from the old code.

Recovered the valuable stranded work to local/recovered-stashes/ (netstack
proptest, relibc get_dns_server daemon-path + getnetbyaddr impl); originals
remain in each fork's git stash list. See local/recovered-stashes/README.md.

Also: pre-cook now runs 'repo cook' with CI=1 (matches make live), fixing the
'Entering raw terminal mode ... Inappropriate ioctl' noise; and the failure
diagnostics per-recipe dump is scoped to THIS build's artifacts (mtime >= build
start) so a bare/mini build no longer lists graphical packages left over from a
prior redbear-full build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-27 12:59:08 +09:00

2.5 KiB

Recovered / stranded stashes — 2026-07-27

The build system's stash-and-restore had a bug (git stash push never prints the stash SHA on modern git, so the stash was created but never recorded, hence never restored). With REDBEAR_ALLOW_DIRTY=1, every dirty build stranded the working tree in git stash list. This directory preserves the VALUABLE strands as patch files. Nothing is lost — the originals remain in each repo's git stash list. Do NOT git stash clear any fork until you have triaged the list below.

Extracted here (valuable, currently MISSING from the tree)

Patch Repo What it is
base--netstack-proptest-prop_filter_rule_priority.patch local/sources/base stash@{0} netstack filter-table property test (confirmed absent)
base--netstack-round5-cargo+table.patch local/sources/base stash@{5} netstack Cargo.toml (proptest dep) + filter/table.rs scaffolding
relibc--get_dns_server-daemon-path.patch local/sources/relibc stash@{2} get_dns_server() reads /scheme/dns/nameservers (daemon), falls back to /etc/net/dns
relibc--getnetbyaddr+semaphore.patch local/sources/relibc stash@{0} real getnetbyaddr() impl (was unimplemented!()) + semaphore cbindgen

Review a patch, then apply with e.g.: git -C local/sources/relibc apply local/recovered-stashes/relibc--get_dns_server-daemon-path.patch (or git -C <repo> stash apply stash@{N} to pull the original from git.)

NOT extracted — no value (still in git if ever needed)

  • kernel stash@{0}ADDFILE_MIN debug logging only.
  • userutils stash@{0}LOGIN_DBG: debug prints only.
  • base stash@{6,7,8} + relibc misc — Cargo.lock-only churn (regenerable).
  • base stash@{1..4,9..24}redbear-build-* strands: mostly the same evolving netstack/Cargo.lock WIP re-stranded each build; newest (stash@{0}) supersedes.
  • base stash@{12} — "netstack+rtl8168d parallel-agent": Cargo.lock only, already in tree.

Needs HUMAN review — do not bulk-restore

  • parent repo stash@{0} ("wip-uncommitted-changes") — 202 files incl. binary prefix tarballs and ~28k deletions; a large divergent snapshot. Inspect with git stash show -p 'stash@{0}' before touching.
  • parent stash@{1} (tlc menubar) — already in tree.

Root cause fixed

Stashing was removed from build-redbear.sh (the build no longer touches your working tree). The dirty-source gate still refuses dirty builds by default; REDBEAR_ALLOW_DIRTY=1 now cooks your working tree AS-IS instead of stashing it.