Commit Graph
21 Commits
Author SHA1 Message Date
Ray Bennett 4699a741c1 feat: give console programs the terminal as their console (#31)
* feat: give console programs the terminal as their console

A standard handle that is a terminal, and CONIN$, CONOUT$ and CON, now act as a console: modes map to terminal settings,
reads and writes convert between UTF-16 and the terminal's UTF-8, terminal input becomes key events, and Ctrl+C runs the
control handlers. Files and pipes still fail the console functions, as on Windows.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the console functions over the terminal, their pty test and the guest test program from the public console API documentation.

* test: let the console client run by hand, saying which step failed

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Made the exact size and cursor checks optional and gave each step an instruction and a failure number.

* feat: follow the console cursor through the output instead of asking the terminal

Programs that redraw their command line read and move the cursor on every key; asking the terminal each time was slow, and
wrong on terminals that never answer. The terminal is now asked only when the position may be stale.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the cursor tracker, WriteConsoleOutputCharacter, ScrollConsoleScreenBuffer, the resize events and their tests.
2026-10-28 17:11:25 +01:00
mirkobrombin 643cf9ac29 feat: register extended session notifications 2026-10-28 10:51:50 +00:00
mirkobrombin 5fa9c467a8 feat: add application recovery and error report metadata registration
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the application recovery and error report metadata registrations.
2026-10-28 11:02:11 +00:00
mirkobrombin 3577bf76d1 feat: find no stored credentials 2026-10-28 10:51:49 +00:00
mirkobrombin 1f428eeee3 feat: report IPv4 adapters in GetAdaptersInfo and the user's region code
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote GetAdaptersInfo and GetUserDefaultGeoName from their documentation, with tests.
2026-10-27 08:38:05 +00:00
mirkobrombin 44a593867c feat: run an SSH client's terminal and file transfer windows 2026-10-26 23:13:38 +00:00
mirkobrombin 609a4ae4c4 feat: receive socket messages and wait on socket events 2026-10-26 14:17:43 +00:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
mirkobrombin f9f3a67f1c fix: serve the Windows calls that Inno Setup, 7-Zip and VLC make 2026-10-23 21:27:15 +00:00
Mirko Brombin 5d98622454 feat: run 32-bit custom actions of 64-bit packages and open the 32-bit registry view from 64-bit programs 2026-10-03 10:21:22 +00:00
Mirko Brombin c02f68dc74 feat: keep DPI awareness, tell awareness contexts apart, extract icons and serve UI Automation's reserved values for WPF 2026-10-03 10:21:06 +00:00
Mirko Brombin f4509d0c1f feat: implement the Windows APIs that .NET programs and their installers call 2026-09-23 00:12:56 +00:00
Mirko Brombin 0aa82061b6 feat: name the accounts behind known SIDs 2026-09-21 16:09:02 +00:00
Mirko Brombin 6d1fe0f7e9 feat: report that the machine has no directory object name, as one outside a domain 2026-09-21 14:16:58 +00:00
Mirko Brombin fbc56c89d1 feat: answer GetVolumeInformationA 2026-09-21 14:16:58 +00:00
Mirko Brombin a4eb005a73 feat: answer QueryDosDevice, ANSI disk and crypto names and CryptGenRandom, and return handles at the program's pointer width 2026-09-21 12:31:04 +00:00
Mirko Brombin 7398593ae3 feat: add list the prefix drives with GetLogicalDrives and GetLogicalDriveStrings 2026-09-21 10:01:03 +00:00
Mirko Brombin c0946f8c44 feat: add RtlGetVersion, DOS and local file times, the SysWOW64 directory, UrlIs and PathStripToRoot, and answer the user's own account by its Windows name 2026-09-21 04:26:15 +00:00
Mirko Brombin ead54d6b10 feat: run Google Chrome with NT object queries, COM apartments, file completion ports and SDDL descriptors 2026-09-03 21:44:05 +02:00
Mirko Brombin 26fbeabc78 feat: run Steam's web UI with cross-process handles, per-thread message queues, socket events and process identity 2026-09-03 16:48:12 +02:00
Mirko Brombin 66087052d8 feat: run Chromium's helper processes with DirectWrite, named pipes, jobs, inherited handles and shared sections 2026-09-03 06:06:54 +02:00