Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: icu.dll with its forwarders, written from the public ICU API documentation and UAX #11, #14 and #29, with its test
raven-web.dll serves HttpClient, HttpBaseProtocolFilter with its cache
control, HttpMethod, HttpRequestMessage, HttpResponseMessage, the request,
response and content header collections (with Connection, User-Agent,
dates, lengths and Retry-After typed), response content read as a
buffer, string or stream, and Windows.Foundation.Uri over urlmon's IUri.
Requests go through WinINet, which Windows' base protocol filter sits on
too; redirections are followed and reflected in the request's URI.
winget checks its package source's version with a HEAD request this way.
The interfaces are the C declarations generated from Microsoft's
published metadata (windows.web.http.h, on raven-winrt's foundation.h);
the component is always built. native/upstream/raven-winrt holds the
plumbing the classes share (objects answering several interfaces,
asynchronous operations, boxed values, buffers, string maps, item
lists), for later components to use as well. Typed header values not
modelled yet, the request property bag, transport information and
custom certificate validation answer E_NOTIMPL.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the component, the shared plumbing, CMake and registry wiring, the web_client test
raven-appx.dll serves the AppxFactory and AppxBundleFactory classes
that package managers open packages with (winget reads its source
package this way). A package reader checks that the package is a ZIP
archive (ZIP64 records included) with a manifest, a block map and
content types, and that the block map lists every payload file with its
size; a file's content is then inflated and checked against the block
map's hash one 64 KiB block at a time as it is read, failing with
APPX_E_CORRUPT_CONTENT where it differs. The manifest reader gives the
identity with the package's full and family names, properties,
dependencies, target device families, capabilities, resources,
prerequisites and applications; the block map reader its files and
blocks. A bundle opened as a package, or a package as a bundle, answers
APPX_E_MISSING_REQUIRED_FILE, as programs tell the two apart.
The component is built by provision-installer.py beside cabinet.dll, on
the same zlib, and reads XML with xmllite; the factories are registered
in both registry views. Writing packages, reading bundles, block maps
validated against a signature, IAppxDigestProvider and the later
manifest reader interfaces answer E_NOTIMPL.
The test writes its packages with appx_fixtures.py, as package writers
make them, and reads them back in 64-bit and 32-bit processes.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the component, its provisioning, registry and packaging wiring, the fixture generator and the appx_client test
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Switched provisioning and packaging to the own components, removed the replaced ReactOS sources and the xmllite patch that no longer applied.
Windows has carried SQLite as winsqlite3.dll since Windows 10, and
programs such as winget keep their package index in it.
scripts/provision-sqlite.py builds the pinned public-domain
amalgamation (3.54.1, SHA3-256 checked) with MinGW, exporting the
unsuffixed sqlite3_* interface; the runtime places it in the system
directory like its other components.
Only the 64-bit library for now: Windows' 32-bit winsqlite3 uses the
standard calling convention for its interface and callbacks, which the
published amalgamation does not declare.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: provisioning script, CMake wiring, license records and the sqlite_client test
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the window controls, dialog manager, message boxes, text layout, drawing helpers and generated resources as own code from Microsoft's documentation, using published test expectations for behaviour only; removed the retired text component and its layout tests.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote rundll32 as a new command-line tool from its public description, listed it for prefixes and packages, and added tests.
find, findstr, more, sort, where, xcopy, attrib, timeout, choice, whoami, hostname, tasklist, taskkill and reg, one program
each for both widths, copied into System32 and SysWOW64.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the fourteen tools and their shared runtime from Microsoft's public command reference, and the batch-file test.
A console program started from a terminal gets it as its console without --stdio=inherit. CreateProcess runs .bat and .cmd
files through cmd /c, as Windows does. The console code pages start as UTF-8, since Raven has no table for code page 437.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Wrote the subsystem check, the batch-file launch, a first command processor from Microsoft's public cmd documentation and its test.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Added the MSXML 6 classes and XmlLite to the ReactOS component build, a libxml2 regexp patch and the tests.