Skip to content

docs: bring the GitHub docs in line with 0.10.x - #280

Merged
Maxaubert merged 1 commit into
mainfrom
docs/279-docs-refresh
Sep 29, 2026
Merged

Maxaubert merged 1 commit into
mainfrom
docs/279-docs-refresh

Conversation

@Maxaubert

Copy link
Copy Markdown
Owner

Brings the docs shown on GitHub in line with the product (0.10.4).

Audit: one sonnet agent per doc group compared each doc with the code, and a second sonnet agent tried to refute every finding. 51 confirmed, 1 rejected (a non-verbatim mermaid line). 50 are applied here; the 51st is the repo description, a GitHub setting (not in this PR).

Changes

  • README.md: The desktopTransform bullet describes it as an experimental, ini-only opt-in (implying it defaults off), but src/config.h shows it now defaults to 1 (owner decision, issue Make the transform engine the default on the desktop (desktopTransform=1) #271/feat(engine): transform is the default engine on the desktop #272) precisely because every install gets UIAccess via the per-PC local signing added in Installer: give every install uiAccess by signing Wind on the PC #261/feat(installer): sign Wind on each PC so every install gets UIAccess #262.
  • README.md: The Signing section says release builds are unsigned and that this switches off the "UIAccess-only behaviour above" (elevated-window shortcuts, desktop transform) until a purchased certificate is arranged.
  • .github/release-notes.md: The "Two things to know before you download" section tells users that being unsigned costs them UIAccess (elevated-window shortcuts and the desktop transform path), which was true before issue Installer: give every install uiAccess by signing Wind on the PC #261/feat(installer): sign Wind on each PC so every install gets UIAccess #262 shipped but is no longer accurate: Setup now signs the UIAccess build locally on the user's own PC during install, so a normal install gets both of those things regardless of a purchased certificate.
  • README.md: The Features list has no mention of tracking modes (caret tracking, keyboard-focus tracking, mouse edge mode, spring glide), a major feature shipped in Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276/feat(tracking): caret, keyboard focus and mouse edge tracking (#276) #277 with its own new Settings > Tracking section.
  • README.md: The Config section, which lists every ini key family with a short description, has no entry for the new tracking keys (trackCaret, trackFocus, trackGlideMs, mouseAlign), even though it lists comparable keys like lockApps in the same style and the README states every ini key keeps working even without a Settings row..
  • .github/release-notes.md: The "What is in it" list, shown on every GitHub release, has no mention of tracking modes (caret/focus/mouse-edge), a major feature already in this version..
  • docs/KNOWN-ISSUES.md: The doc's status line still says Issue 4 (in-game FPS hitching) is 'unchanged' with the direction decision open.
  • docs/KNOWN-ISSUES.md: Summary table still lists Issue 4's status as 'Unchanged...
  • docs/KNOWN-ISSUES.md: Issue 4's own section says the FPS-hitching direction decision ('accept the limit and finalize v1, vs.
  • docs/KNOWN-ISSUES.md: The 'Cross-cutting note' asserts as a present-tense fact that Wind never remaps input and that MagSetInputTransform is 'deliberately unused' since it needs UIAccess.
  • docs/ROADMAP.md: The 'One default engine' item lists 'extended field testing of desktopTransform=1' as a prerequisite still needed before flipping any default, and lists txKeepAliveMaxLevel A/Bs as still relevant.
  • docs/ROADMAP.md: The 'Installer / public release' item says the installer 'must' add an opt-in MPO-disable step and calls the MPO-buster idea 'unbuilt'.
  • docs/ROADMAP.md: The 'Next session - start here' item frames the cursor-size trade-off (constant size vs.
  • installer/README.md: Table says screens.nsh implements 'the four screens', but the licence-acceptance screen (issue feat(installer): licence acceptance screen #258) added a fifth screen; screens.nsh's own header comment says 'the five screens'..
  • installer/README.md: The licence-acceptance screen (issue feat(installer): licence acceptance screen #258) - the accept box gating Continue, 'Read the full licence' opening a de-elevated temp copy, and LICENSE.txt landing next to the app either way - is a current, shipped feature with no mention anywhere in this README..
  • docs/VERIFICATION.md: Section header and text describe a config key engine=render/engine=mag that no longer exists.
  • docs/VERIFICATION.md: Checklist item references the removed engine=render key..
  • docs/VERIFICATION.md: Checklist item references the removed engine=mag key; today's equivalent model is model=magnify..
  • docs/VERIFICATION.md: The installer's Human-only checklist has no item for the licence-acceptance screen (issue feat(installer): licence acceptance screen #258), a currently shipped page a manual tester would otherwise miss entirely..
  • docs/VERIFICATION.md: All four 'known v1 behavior' notes are now stale: config reload no longer resets zoom to 1.0x (fixed), cursorScaleWithZoom is a retired/ignored key (renamed to cursorConstantSize), multi-monitor support now exists as an opt-in, engine=mag doesn't exist, and a keyboard hook (WH_KEYBOARD_LL) is now wired for zoom/recenter/cursorLock binds..
  • docs/architecture/11-build-test-release.md: States the tree is at version 0.2.0; the actual current version is 0.10.3, and the surrounding bullets otherwise describe present-day (post issue fix: the 12 confirmed findings of the 2026-09-28 code review #275/Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276) behaviour..
  • docs/architecture/11-build-test-release.md: Describes release.ps1's no-certificate path as building only the ordinary uiAccess=false variant.
  • docs/architecture/11-build-test-release.md: Says paths-ignore only skips docs and issue templates; it also skips LICENSE and tools/testenv/**, which cannot change the installer either..
  • docs/architecture/11-build-test-release.md: The release-automation section never mentions that the published asset can go to a separate repo (Maxaubert/Wind-releases) instead of this one, which is current, load-bearing behaviour for anyone trying to find the download..
  • tools/testenv/README.md: The bench.ps1 commands are corrupted: a literal TAB and BACKSPACE control character sit inside the path where backslashes belong, so 'tools\testenv\bench.ps1' renders/copies as garbage and will not run as written..
  • docs/architecture/README.md: The book claims to be current as of v0.2.0, but main is at v0.10.3 and dozens of shipped features (profiles, HDR, tracking, per-window engine selection, DRM handling, the installer, alpha channel, etc.) postdate v0.2.0..
  • docs/architecture/README.md: Chapter 07's one-line summary omits tracking (caret/keyboard-focus/mouse-edge), a major feature the chapter itself already documents (issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276/feat(tracking): caret, keyboard focus and mouse edge tracking (#276) #277)..
  • docs/architecture/01-overview.md: The "Every file in src/" table is missing src/detached_view.h and src/edge_pan.h, both current tracking files (issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276)..
  • docs/architecture/01-overview.md: The file table is missing src/focus_track.cpp/.h and src/gain_learner.h, both current files (issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276)..
  • docs/architecture/01-overview.md: The file table is missing src/sprite_layer.h, src/test_telemetry.h and src/tick_stats.h, all current files..
  • docs/architecture/01-overview.md: The file table is missing src/tray_draw.h and src/tray_status.h, both current files backing the tray menu..
  • docs/architecture/01-overview.md: The file table is missing src/tx_warm.h, the pure transform warm-keeping file CLAUDE.md itself describes at length (txWarmHz/txWarmMode)..
  • docs/architecture/01-overview.md: The file table is missing src/view_glide.h and src/view_target.h, the pure tracking-geometry files (issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276)..
  • docs/architecture/01-overview.md: The file table is missing src/wobble_cage.cpp/.h, the dev-only wobble detector file..
  • docs/architecture/01-overview.md: The "Product rules" section, which the chapter states are load-bearing commitments, has no mention of tracking (caret/keyboard-focus/mouse-edge), a major shipped product feature with its own default-on behavior and Settings section..
  • docs/architecture/02-tick-loop.md: The "Pan delta resolution: three regimes" section documents only free/locked/Inspect, but the code resolves a fourth case afterward: tracking (caret/focus/mouse-edge) overrides the mapper result entirely via a detached view, and is a genuinely different code path readers following this chapter would not know exists..
  • docs/architecture/02-tick-loop.md: The description of weld suppression (suppressCursorSync) omits tracking, which is now one of the conditions that sets it..
  • docs/architecture/02-tick-loop.md: The "Threads" section states Wind has exactly two threads that matter (the hook thread and the Magnification-owning thread), but the focus tracker (issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276) runs on its own dedicated std::thread that this section never mentions, making the claim factually wrong..
  • docs/architecture/02-tick-loop.md: Missing description of the focus-tracker thread (issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276), which the corrected section heading above now promises..
  • docs/architecture/02-tick-loop.md: The chapter's Pointers list omits the tracking source files even though a new paragraph in this same chapter now discusses them..
  • docs/architecture/03-engines.md: The EnginePickInputs table and the "four lines" of ShouldPickTransform are stale: the real function (issue feat(engine): per-window-type engine selection, and never render DRM content #237) now has three precedence tiers ahead of/around that Auto logic - a DRM/capture-protection override that forces transform, and a per-window-category user preference (engineGame/engineAcrylic/engineDesktop/engineOther) - none of which are documented.
  • docs/architecture/03-engines.md: The quoted "four lines" of ShouldPickTransform is only the Auto tier; it omits the DRM override and per-window preference that run ahead of it, so a reader would believe Auto is the whole decision and never learn a game can be pinned to Render or that DRM always forces Transform even for a windowed browser tab..
  • docs/architecture/03-engines.md: The flowchart is captioned as "the hybrid pick" evaluated by ShouldPickTransform, but it only diagrams the Auto tier; without a caveat a reader would not know the DRM override and per-window preference (added by feat(engine): per-window-type engine selection, and never render DRM content #237, now documented just above) run before this diagram's logic..
  • docs/architecture/04-render-engine.md: Says the render engine 'is the default engine for desktop sessions' - stale since issue feat(engine): transform is the default engine on the desktop #272 (2026-09-28): src/config.h now ships desktopTransform=1 by default, and the hybrid pick (src/engine_pick.h ShouldPickTransform) chooses the transform engine on the desktop whenever the input-transform publish is verified available (i.e.
  • docs/architecture/05-transform-engine.md: Describes the desktop transform as merely 'optionally' picked, which understates that desktopTransform now ships as 1 (on) by default since issue feat(engine): transform is the default engine on the desktop #272/Make the transform engine the default on the desktop (desktopTransform=1) #271 (2026-09-28 owner decision) - it is opt-out now, not opt-in, on any install with a verified input-transform publish..
  • docs/architecture/05-transform-engine.md: Says the sampling-mode flag 're-applies the configured mode once per context (samplingApplied_)', but the fix: the 12 confirmed findings of the 2026-09-28 code review #275 code-review fix (2026-09-28) renamed the field to appliedSampling_ and changed the logic to a bounded retry (up to 3 attempts, 1 s apart) because the setter's return value is unreliable - a wrong-thread failure used to leave the filter unapplied for the whole context..
  • docs/architecture/09-settings-ui.md: The row-type table names a Settings row type mpo bound to extra, not values.
  • docs/architecture/09-settings-ui.md: The doc says the showIf gating mechanism has no current users ('the cleanup removed the last users').
  • docs/architecture/09-settings-ui.md: The chapter never mentions the Tracking section (trackCaret, trackFocus, trackAlign, mouseAlign, mouseMarginPct), a sixth top-level settings section shipped in issue Tracking modes: caret tracking, keyboard-focus tracking, mouse edge mode #276/feat(tracking): caret, keyboard focus and mouse edge tracking (#276) #277.
  • docs/architecture/09-settings-ui.md: The row-type table's keybind entry omits the second capture slot: zoom-in/zoom-out rows carry a buttonKey2/vkKey2/modsKey2 sibling set so either binding fires the action (the core OR-combines them), added when the separate 'Alternate keybinds' gate left the UI on 2026-08-22.

Verification

  • Docs only, no runtime surface. Every replacement matched its original text exactly once. No em-dashes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KPUNAWcwghXdHCApcKKjSG

Docs audit 2026-09-29 (one sonnet auditor + one adversarial verifier per doc
group, 51 confirmed, 50 applied): per-PC local signing means installs get
UIAccess, desktopTransform defaults to 1, tracking modes, licence screen, Star
on GitHub, shipped roadmap items and fixed known issues, stale commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPUNAWcwghXdHCApcKKjSG
@Maxaubert
Maxaubert merged commit 6aea649 into main Sep 29, 2026
1 check passed
@Maxaubert
Maxaubert deleted the docs/279-docs-refresh branch September 29, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant