Go to file T
Code
.github ci: the port and oracle jobs' timeouts to 180 minutes for campaign 05's suites, fuzzers and 2× steps
ci ci/tl30.md: the plant, seen red (run 39611325709)
docs docs/MAP: §7 yw05 landed
notes Format completion harness call (perf_cmdcomp.c:247-304)
runtime runtime/completions: sagitta's 24 completion specs, verbatim
src edit_drawbufs_test: SKIP the zero-ledger asserts by name where the ledger charges a reused buffer's pushes (the checked machine)
tests tests/fuzz/corpus/fuzz_comphelp: sagitta's seeds at 9ace98c2, verbatim
tools Format completion harness call (perf_cmdcomp.c:247-304)
ucd Copy Unicode 16.0.0's data files with their licence and manifest
.gitignore Add wolf.pkg; ignore the staged toolchain and target/
CHANGELOG.md CHANGELOG: yw05
CLAUDE.md CLAUDE.md: the root-level test layout and the self-spawn hand-shake
LICENSE Add GPL-3.0 and the wolf Training Data Permission
LICENSE-TRAINING-DATA Add GPL-3.0 and the wolf Training Data Permission
README.md README: the status through yw05 (campaigns 00-04 and campaign 05's first half at wolf 0.2.34); the aarch64 refusal without a stale version
sagitta.pin Pin the oracle: sagitta 9ace98c2
wolf-toolchain.toml Pin wolf 0.2.34, lupin 0.1.55 and wolf-std e036bec
wolf.pkg Add wolf.pkg; ignore the staged toolchain and target/

yew

yew — the maintainer's modal terminal editor ("tmux and vim had a baby": C11 + POSIX, zero dependencies, 218 KLOC at tenseleyFlow/sagitta, with its scripting language Fletch) — ported to wolf, byte-identical, so that PAX's console has an editor built in its own language and wolf has its largest real program. Track 12 of the planning repo (sprints/yew/index.md, ruling #89).

The oracle

C yew built from the commit in sagitta.pin is the oracle. The wolf binary is held to C yew's own tests, unchanged: its PTY goldens (tests/pty/runner --yew <binary>), script, Fletch, syntax and torture suites. tools/oracle fetches and builds it; tools/goldens --yew <binary> runs its suites against any binary and prints one pass/fail/skip line per suite with a diff per failure. A golden that disagrees with the port is a STOP and a ruling, never a golden edit; no sagitta change is made here. Fletch stays Fletch: its scripts, data files and recorder output run on both editors.

C yew's numeric quality gates (keypress to paint p99 <= 5 ms, cold start <= 20 ms, a 100 MB file <= 150 ms, binary <= 2,310,144 B, memory <= 1.6x the file) are the port's targets: every lane records the wolf/C ratio for the gates its subsystem touches, measured on one host beside C yew's number from the same run, and a 2x gate holds from the first paint.

Status

Campaigns 00 to 04 of sagitta's fifteen and campaign 05's first half (yw00 to yw05), at wolf 0.2.34: util and unicode (tables generated from ucd/16.0.0/, identical to sagitta's); the terminal (raw mode, the input decoder, the cell grid and damage renderer, the restore on every exit path); the text engine (piece tree, byte-exact load, the atomic and synced save, the crash journal, undo); the modal core (modes, keymaps, dispatch, selection, multi-cursor); the : prompt with its completion engine, the regex engine, search and replace, and shell jobs (:!, the stream, the region filter, :r !, the persistent session); and the workspace's first half: the pane tree, tabs with the strip and its overflow, and tab groups. Each campaign's PTY goldens are gated by name against C yew's (campaign 05's startup_multiple_files waits on the fuzzy finder, yw06); every path not yet ported hard-errors naming its sagitta sprint and the port lane that lands it. The map of every sagitta directory and sprint to a port lane, and of every wolf gap the port has met, is docs/MAP.md; CHANGELOG.md has each lane.

Build and test

tools/fetch-toolchain            # wolf, lupin and std by digest, into .wolf-bin/
tools/build                      # target/native/yew and target/release/yew
tools/check-test                 # the unit tests, warnings denied
tools/check-tables               # tables.lu is the generator's, and sagitta's
tools/oracle --unit              # C yew at the pin, gcc and clang, its unit suite
tools/goldens --yew target/release/yew

Builds and tests run on linux x86-64 and macOS arm64; on linux aarch64 wolf builds no tier at the pin (wolf-lang#614) and CI asserts the refusal by name, as pelt does. The oracle builds everywhere.

The rules in brief

Reading sagitta is allowed and expected (every commit on it is the maintainer's); every wolf unit cites what it ports. Clean-room for everything else: never another editor's source, never fackr's crates, never a regex, JSON, HTTP or VT library's source. No dependencies but wolf-std. Unicode tables are generated from ucd/ by a wolf program, checked in, with a drift check. Every wolf, std or lupin gap is filed upstream with a witness and listed in the map; the port never works around a compiler bug silently. CLAUDE.md has the rest.

Licence

GPL-3.0-only (LICENSE), with the wolf Training Data Permission (LICENSE-TRAINING-DATA), as pax and boreutils. ucd/ is Unicode, Inc.'s data under the Unicode licence (ucd/LICENSE).