A Windows startup / session-restore monitor. Reentry starts first among user apps at logon and shows pending, starting, interactive, failed, and hung app initializations with elapsed time. Reentry-configured startup entries sort first and carry a Reentry-managed badge.
Built by Funcular Labs.
Windows has no public pending-restore list. After a reboot, Explorer, Outlook, Chrome, and friends reopen windows from private session files that we do not parse.
Reentry infers restore work from a last-session snapshot we take ourselves (ARR-registered processes we can see, visible windows, plus the current startup inventory) and matches that to live processes and windows. That is an inference, not an official Windows API.
- Always-on-top HUD after
/autostartor an unexpected shutdown. - Banner for boot kind: expected (User32 1074), unexpected (6008 / Kernel-Power 41), or ordinary.
- Session restore (inferred) and Startup apps sections.
- Settings: list inventory, enable/disable user-scope items via StartupApproved (the Run value is not deleted), add/remove a Reentry-owned user Run entry.
- First-run consent: Start with Windows so we can show restore progress after a reboot.
- Single-instance. Registers itself with
RegisterApplicationRestart. WM_QUERYENDSESSION/WM_ENDSESSIONwritelast-session.json./uninstall(or/cleanup) deletes the Run value, StartupApproved value, and logon task.
Reentry never kills a hung app.
Requires Windows and the .NET 10 SDK. You cannot compile the WinUI head on Linux;
Reentry.Core (and its tests) target net10.0 and are fakeable.
dotnet run --project src/Reentry.App
dotnet test tests/Reentry.Core.Tests/Reentry.Core.Tests.csprojDistributable single-file exe (needs the .NET 10 Desktop Runtime on the target):
pwsh ./publish.ps1 # framework-dependent (small)
pwsh ./publish.ps1 -SelfContained # bundles the .NET runtime (portable, larger)→ publish/Reentry.exe
The app is unpackaged (WindowsPackageType=None) and uses the installed Windows App SDK 2.4 runtime (WindowsAppSDKSelfContained=false). The self-contained 2.4 CoreMessagingXP payload fail-fasts on Windows 11 25H2.
Everything is local. Settings, the last-session snapshot, and the managed-entry
sidecar live in %LOCALAPPDATA%\Reentry (settings.json, last-session.json,
managed-entries.json). Delete that folder to reset. Set REENTRY_DATA_DIR to
relocate it. Nothing is uploaded; nothing phones home.
Reentry.Core— paths, settings, inventory, StartupApproved merge, snapshot store, boot classifier, tracker state machine, managed-entry map. No UI, no Win32.net10.0, unit-tested with fakes.Reentry.App— WinUI 3 unpackaged HUD, settings, tray, CsWin32 / Task Scheduler implementations of the Core interfaces.Reentry.Core.Tests— xUnit. Not inReentry.slnx(Aperture pattern); CI runsdotnet teston the csproj directly.
v0 scaffold (0.1.0-alpha1) — dogfood the HUD and inventory on a real Windows box.
MIT © 2026 Funcular Labs.