A burst of app-layer work: sigil-video proves the SDF terminal AA pipeline (sdf_term_cell+sdf_term_row) end-to-end in a unit test (SDFTERM-AA-PASS, closes the sigil-os#15 pre-condition); sigil-apps closes the AA coreutils story (all 8 builtins via cov_blend, pwd+cp now included); and three new libwin Lumen apps land — netstat (SRDX transport panel), scope (waveform viewer with Bhaskara I integer sin/cos), and ticker (session checkpoint surface) — plus colbrowser, a Finder-style 3-column file manager backed by the live FS tag substrate. (sigil-video d7a2164; sigil-apps 18500b0, 8ca7cfa, 5933838, 02f22b1)
SDF terminal AA unit test
tests/test_sdf_term_aa.sg (sigil-video d7a2164) proves sdf_term_cell and sdf_term_row are ready for the Apps termwin AA integration (sigil-os#15). The test builds SDF glyphs for 'H' and 'I' using an all-solid atlas — every texel is 255, giving full coverage on blit.
Three assertions:
- cell=ok —
sdf_term_cellwith slot=1 produces a lit pixel at (4,4) = RGB 200,200,200 - row=ok —
sdf_term_rowwith cell buffer [1,2,0] produces the same lit pixel via the row-iterator path - blank=ok — cell 2 with
idx=0is skipped; pixel at col 2 stays 0
SDFTERM-AA-PASS cell=ok row=ok blank=ok
This seals the contract between sigil-video's SDF renderer and sigil-apps' terminal host. The renderer commits: any slot > 0 blits at full coverage when the atlas is solid. The host commits: it will never pass idx=0 for a visible glyph. The blank case is structurally enforced, not a convention.
AA coreutils complete
sigil-apps 02f22b1 closes the AA coreutils story by adding the two remaining builtins:
- t_pwd: prints
/fs/home/grioghar— no syscall, pure string render throughglyph_cov→cov_blend - t_cp: open RDONLY src (syscall 16) → read (17) → open RDWR dst (16) → write (18) → close both (19)
The full AA coreutils demo now runs all 8 builtins in sequence: echo → pwd → ls → mkdir → cat → cp (+verify cat) → mv → rm → ls. Every byte of output flows through glyph_cov→cov_blend. sigil-apps#1 (AA terminal gate) is fully closed.
netstat / scope / ticker
sigil-apps 18500b0 lands three new Lumen libwin apps, replacing the earlier raw overlay demos with proper WM-composited windows using the full lw_* primitive vocabulary.
netstat — SRDX 0.6.0 transport panel
Version/port header row, followed by listen/recv/send/close rows each with ok badges. Syscall transcript in the console panel at the bottom. Cap chip in the corner: net authority. Shows the full SRDX 0.6.0 transport lifecycle in Lumen design language.
scope — waveform viewer
CH1 (sin) and CH2 (cos) curves computed via the Bhaskara I integer approximation — no floats, 2 full cycles rendered. Dark plot area with grid lines and degree axis labels (0°, 90°, 180°, 270°, 360°). Proper Lumen window chrome with title bar and border. Integer-only math throughout: the Bhaskara I formula sin(x) ≈ 4x(180−x) / (40500 − x(180−x)) gives sub-1% error with no FPU dependency.
ticker — event ticker panel
Overlay slots/frames/input/transport rows with ok/run/done/wired badges. Surfaces the session's checkpoint data in Lumen design language — a live log of what the WM compositor has confirmed.
All three apps use lw_title / lw_label / lw_value / lw_badge / lw_rule / lw_console / lw_capchip via the WM compositor. AA Inter typography throughout.
libwin layout fix
sigil-apps 8ca7cfa fixes a layout regression in all three panels: window heights were undersized by approximately 40px because the title chrome was not counted in the height budget. This caused the console transcript and bottom rows to clip at the window edge.
Fix: 22px row stride enforced consistently throughout all three panels. Badge x-positions pulled in from the window edge to clear value-text overlap, maintaining a ~70px gap between value text and badge. All three panels re-verified in the WM compositor after the fix.
colbrowser — 3-column Finder-style file manager
sigil-apps 5933838 lands colbrowser: a Finder-style 3-column file manager as a libwin Lumen scene. This is the deepest app-layer integration of the FS tag substrate yet — a full 3-panel browser where the third column is a live cap-scoped FS query surface.
lw_listrow.readdir (syscall 20). Selected item highlighted via lw_listrow selection state.lw_capchip, and a fs_query (syscall 91) console showing the tag-substrate query transcript. fs_tag_list (syscall 94) output rendered in the console panel.Registered in build.sh. The cap-scoped query transcript in column 3 means every file browse session is auditable: the user sees exactly which FS substrate calls fired and what they returned, in the Lumen console style, without leaving the file manager.