summaryrefslogtreecommitdiff
path: root/docs/divergences.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/divergences.md')
-rw-r--r--docs/divergences.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/docs/divergences.md b/docs/divergences.md
new file mode 100644
index 00000000..fada830c
--- /dev/null
+++ b/docs/divergences.md
@@ -0,0 +1,70 @@
+# Divergences
+
+What is not on `main`, and what on `main` is known to be wrong. Written so
+that moving a bookmark does not quietly orphan work or hide a failure.
+
+## Two lines, forked at `01104e7c`
+
+`main` is not the only living line, and the other one is not behind it —
+they are siblings:
+
+```
+◆ rruwvuzm 09-17 editor work: syntax, panes, modal, gui, fs, output
+│ ◆ xqxpolmw 2b547e15 main 09-20 "Serve Unix and TCP 9P through cloud9.serve"
+├─╯
+◆ lsnxpxtq 01104e7c 09-16 "Add macOS backdrop blur and preserve PDF ink opacity"
+```
+
+* **`main`** carries the 9P work: the `cloud9.serve` runner, and now the
+ posted-9P registry (`docs/cloud9.md`).
+* **`rruwvuzm`** carries editor work — roughly 1300 lines across
+ `src/syntax.zig`, `src/panes.zig`, `src/modal.zig`, `src/gui/gui.zig`,
+ `src/fs.zig`, `src/pardes.zig`, `test/output.zig`, `docs/fs.md`. Reach it
+ with `jj edit rruwvuzm`.
+
+The fork matters for one concrete reason: **the cloud9 pin lives on `main`
+only**. `rruwvuzm` still pins `ae310a20` (2026-09-14), `main` now pins
+`9c4d668c`. Rebasing or merging the editor line will want the newer pin, or
+`zig build` there fetches a cloud9 that predates `fs.Server`'s current shape.
+
+## Other bookmarks
+
+| bookmark | | |
+|---|---|---|
+| `reload-perf-wip` | 09-11 | unfinished: Reload presentation transport regression |
+| `reload` | 09-10 | reload core code with shell-owned allocators |
+| `reload-start` | 09-10 | names the Core/Shell seam, deferred Reload request |
+| `ninep` | 08-27 | a 9P design note and a design registry to argue it in |
+| `macos-fix` | 07-23 | |
+| `full-prototype`, `term`, `tty-colors-mouse`, `vibes-ghostty`, `mouse` | 06-xx | older prototypes, also on the `vps` remote |
+
+None of these are published to the FreeBSD mirror: only `main` is pushed
+there, deliberately, because that box serves a public site.
+
+## Known-failing on `main`, not caused by the 9P work
+
+* **`zig build fs-test`** fails on a syntax-highlighting assertion — the
+ word `fn` is expected bold and comes back unstyled:
+
+ ```
+ AssertionError: ('fn', [{'fg': {'rgb': [201, 176, 228]}, ..., 'bold': False}, ...])
+ ```
+
+ Verified by restoring `main`'s own `src/9p_io.zig`, `build.zig` and
+ `build.zig.zon` and re-running: it fails identically. The editor line
+ (`rruwvuzm`) has substantial `src/syntax.zig` changes and may well be the
+ fix in progress.
+
+* **pardes does not start headless.** `pardes --9p=<name>` with no terminal
+ exits 1 from the argument-forwarding path; the installed build fails
+ earlier still, with `error.NoDevice` opening a terminal device. So the
+ registry posting above is covered by unit tests
+ (`zig build 9p-io-test`) rather than by running the editor.
+
+## Upstream
+
+`build.zig.zon` pins cloud9 `9c4d668c`. That commit exists because pinning
+cloud9 `534c084f` here failed: cloud9's `build.zig` `@import`s each program's
+build fragment, and `9harness` was missing from its `.paths`, so the
+published package built from a checkout and not from a tarball. The pardes
+build was the first consumer to notice.