UR-Nexus 1.68.18
-
The shell is presentational and imports only ink and useTerminalSize. A first
version read live state itself (settings, provider registry, app state, git),
and importing it from REPL changed REPL's module graph enough to flip a
command from hidden to visible — caught bycommandRegistryIntegrity, which
passed with the REPL edit stashed and failed with it applied. Loading a module
is not free here; some register on load. Session values now arrive as props
from a caller that already holds them. -
Reconstructed three more stub type files, clearing 177 further errors:
keybindings/types.ts(six empty interfaces),ink/cursor.ts, and
commands/plugin/unifiedTypes.ts. Same defect as the MCP types in 1.68.14 —
an empty interface means "has no members" to TypeScript, not "shape unknown",
so every property access on one was an error and the consuming files carried
@ts-nocheckas a result. -
KeybindingBlock.bindingsis keyed by chord string, not an array. A first
attempt typed itParsedBinding[], which made every entry in the default
binding table an error — the declaration form ('ctrl+d': 'app:exit') and the
parsed form (chord resolved into keystrokes) are different shapes, and
conflating them broke a file that had been fine. -
KeybindingActionis a string rather than a union of known actions:
defaultBindings.tsassembles entries conditionally from feature flags, so a
value missing from a union would turn a working binding into an error. -
Suppression list: 140 -> 132. Eight keybinding and ink files came off.
-
Totals for the sweep so far: 223 -> 132 files, 868 -> 563 errors, and almost
none of it file-by-file. Four stub files accounted for 258 errors on their
own.