Merge nucleic/nimble-umber-toad-20h7 into dev

This commit is contained in:
2026-08-11 20:11:26 -07:00
parent 959a80f5ec
commit 8e934d8996
16 changed files with 196 additions and 196 deletions
+8 -8
View File
@@ -1,7 +1,7 @@
# nucleic-brush
A fork of [**brush**](https://github.com/reubeno/brush) — the Bo(u)rn(e) RUsty SHell by
reuben olinsky — carrying the patches Nucleic needs to build **nash**, its agent shell.
reuben olinsky — carrying the patches Nucleic needs to build **hash**, its agent shell.
Pinned at upstream tag **`brush-shell-v0.4.0`** (commit `96a26d0`).
@@ -18,11 +18,11 @@ commands, their exits, and the data crossing pipes and redirections — from ins
shell rather than by wrapping it. That is what these patches provide. Everything else
is upstream brush, unmodified.
Every divergence carries a `// nash:` comment, so the complete diff against upstream is
Every divergence carries a `// hydrashell:` comment, so the complete diff against upstream is
one grep away:
```console
$ grep -rn "nash:" --include="*.rs" --include="*.yaml" .
$ grep -rn "hydrashell:" --include="*.rs" --include="*.yaml" .
```
### 1. The observation gate
@@ -65,12 +65,12 @@ and belong upstream:
### 3. Branding
The binary this workspace builds is still named `brush`, but identifies itself as nash
The binary this workspace builds is still named `brush`, but identifies itself as hash
so an agent-facing shell doesn't misrepresent what it is:
| File | Change |
| --- | --- |
| `brush-shell/src/productinfo.rs` | `PRODUCT_NAME` → `nash`; display string reads `nash (Nucleic agent shell, brush fork) …` |
| `brush-shell/src/productinfo.rs` | `PRODUCT_NAME` → `hydrashell`; display string reads `hydrashell (hash — Hydrangea agent shell, brush fork) …` |
| `brush-shell/src/args.rs` | usage and version strings rebranded |
| `brush-core/src/prompt.rs` | `\$` renders the atom sign `⚛` (U+269B) for non-root; root still shows `#` |
@@ -80,8 +80,8 @@ current verification status.
## How it's consumed
Nucleic's `shell/` workspace depends on `brush-shell` and `brush-parser` by path. The
`nash` binary is a thin wrapper that loads a root-owned operator policy, installs its
`Gate` implementation (`nash-observe`), flushes events at exit, and otherwise defers
`hydrashell` binary is a thin wrapper that loads a root-owned operator policy, installs its
`Gate` implementation (`hydrashell-observe`), flushes events at exit, and otherwise defers
entirely to brush's bash-compatible CLI. None of the fork's crates are published; the
`brush` binary built from here is a development artifact.
@@ -105,7 +105,7 @@ ones a baseline run reproduces, plus the 3 IFS tests the expansion fix repairs.
1. Diff this tree against the pinned upstream tag.
2. Re-vendor the new tag.
3. Re-apply the fork patches — `grep -rn "nash:"` on the old tree enumerates all of
3. Re-apply the fork patches — `grep -rn "hydrashell:"` on the old tree enumerates all of
them.
4. Re-run the brush compat suite and Nucleic's transcript-replay corpus.
5. Update the pin and the patch table in [`NUCLEIC_FORK.md`](NUCLEIC_FORK.md).