Two small but precise landings. sigil-apps ships a proper AA text path in the sig-sh terminal: a 4-neighbour coverage kernel, cov_blend, closing sigil-apps#1 at the 0.5.0 gate. sigil-fs ships NFS3 FSSTAT (proc 18) and SMB2 FileFsSizeInformation (QUERY_INFO class 7) — total/free block reporting for both network filesystems. 354/354 ALL PASS. (sigil-apps c78bf36, sigil-fs 95dc169, f6c8af1)
AA text in the terminal
Commit c78bf36, sigil-apps#1 0.5.0 gate. The sig-sh terminal previously used a 1-bit glyph blit — each pixel was either full-foreground or background, producing hard bitmap aliasing on diagonal strokes. This replaces it with a per-pixel coverage AA path built from four functions:
col_mask(col)— column-to-MSB-mask lookup, no bit-shift needed in cc0glyph_bit(x, y)— bounds-safe bit read from the 8×16 glyph atlasglyph_cov(x, y)— 4-neighbour coverage kernel: center×200 + nb×14, clamped 255cov_blend(fg, bg, cov)— per-channel linear interpolation fg/bg by coverage value
sig-sh output and underline cursor now render through this AA path. Screendump confirmed: grey fringing on glyph edges, no bitmap aliasing. This closes sigil-apps#1.
libwin badge centering
Commit 03917fd. lw_badge was placing text at bare y inside a 16px pill — cap height floated at the top. Fix: pill is now 20px tall, text at y+(h-16)/2 = y+2. The pill also widens by 2px. netstat/ticker badge y-offsets adjusted to match. Minor but visible improvement to libwin badge typography.
NFS3 FSSTAT
Commit 95dc169. nfs3_proc_fsstat() = 18. Two new functions:
nfs3_fsstat_call(buf, xid, fh_id)— builds the FSSTAT XDR requestnfs3_fsstat_parse(buf, xid, out_buf)— skips post_op_attr (has + optional fattr3=84B), reads XDR u64 tbytes/fbytes. Writes:out_buf[0..7]= total,out_buf[8..15]= free,out_buf[16..23]= 1 (avail flag).
nfs3_vfs_statfs wired into the VFS layer.
SMB2 FileFsSizeInformation
Commit 95dc169. Two new functions:
smb2_qinfo_fs_call(buf, ..., fh_id)— QUERY_INFO InfoType=2/FILESYSTEM, FileInfoClass=7/FileFsSizeInformation, OutputBufferLength=24smb2_qinfo_fs_parse(buf, out_buf)— StructureSize=9 gate; reads TotalAllocationUnits, ActualAvailableAllocationUnits, SectorsPerAlloc, BytesPerSector; writesunit_bytes = SectorsPerAlloc * BytesPerSector
smb2_vfs_statfs wired into the VFS layer.
VFS stub wiring
Commit f6c8af1. NFS3 readdir now calls nfs3_readdir_call(cookie=0, count=4096) before the transport-stub return. SMB2 read now calls smb2_read_call with the stored fh's persist/volatile handles into a scratch region. This ensures both codec paths compile clean at integration — only the transport send/recv stub needs replacing to go live. 354/354 ALL PASS.