ba0856e1ea
* fix(errors): one condition vocabulary, one classifier per language A condition is named once (FsCondition) and every boundary keeps only a table from that name to its own number: posix, wasi preview1, and the monty guest view. CycleError gets its ELOOP seat (was EIO at every kernel and guest boundary), the wasi wire's EXDEV is 75 per wasi-libc (18 is EDOM there), and the cross-mount-rename-is-ENOENT decision moves from an adapter arm into the wasi table row. * fix(stat): one stat view per language, offset-less stamps read as UTC mtime, dir-ness, content size and the mode bits live once per language (utils/stat_view), delegating to the existing naive-stamp-is-UTC parsers. Three of the four translators (node FUSE, the runtime bridge, py wasm) read an offset-less backend stamp as local time, so python FUSE and node FUSE disagreed by the host's UTC offset for the same stamp; all four now answer the same epoch, pinned by tests. * refactor(errors): move the wasi and cpython tables into their runtimes * refactor(errors): classifier arm tables into constants modules * fix(errors): address review on the ValueError arm and epoch-zero mtime