Skip to content

refactor(src): group the flat src/ into area subfolders (move-only) - #487

Merged
Maxaubert merged 3 commits into
mainfrom
refactor/src-folders
Oct 14, 2026
Merged

Maxaubert merged 3 commits into
mainfrom
refactor/src-folders

Conversation

@Maxaubert

Copy link
Copy Markdown
Owner

Closes #486

Move-only regrouping of the 118 files that sat directly in src/, following chapter 01's source map. No code changes besides include lines and path-citing comments.

Folder map

Folder Files
core/ main.cpp, uiaccess_gate.h, uiaccess_token.h, idle_policy.h, sched_priority.h, tick_stats.h, logging.*, log_queue.h, test_telemetry.h, hitch_record.*, tick_span.h, com_util.h, reload_gate.h
engine/ magnifier_model.h, engine_pick.h, shell_desktop.h, launch_quiesce.h
render/ render_engine.*, render_model.*, render_params.cpp, render_shaders.h, hlsl_compile.h, upscale_pass.*, upscale_shaders.h, upscale_nis.h, hdr_info.*, hdr_scale.h, band_window.h, png_dump.*
transform/ transform_model.*, transform.*, mag_host.*, tx_warm.h, comp_pin.*, mpo.h, mpo_boot.h, mpo_boot_logic.h, mpo_guard.h, native_cursor.h, zoom_ladder.h, dwm_watch.*
color/ color_filter.*, color_matrix.h, cursor_tint.*, cursor_tint_pixels.h
input/ input_router.*, keybind_rules.h, pointer_binds.h, keyboard_pan.h, typing_key.h, event_order.h, swallow_ledger.h
cursor/ cursor_mapper.*, lock_detector.*, drag_follow.h, gain_learner.h, cursor_sprite.*, cursor_blanker.*, cursor_decode.*, sprite_layer.h, crosshair.*, cursor_lock.*, inspect_focus.h, game_cursor.h, pan_glide.h
track/ focus_track.*, view_target.h, view_glide.h, detached_view.h, edge_pan.h, caret_rect.h, track_filter.h, java_bridge*, focus_identity.h
zoom/ zoom_controller.*
config/ config.*, config_path.h, ini_edit.*, profiles.*, profiles_io.h, profile_switch.h
tray/ tray_host.*, tray_ipc.h, tray_items.*, tray_status.h
platform/ installer_state.h, webview2_probe.h
unchanged src/version.h, src/resource.h, src/wind.rc (version readers: tools/version.ps1, installer/wind.nsi, ui/vite.config.js, CI), src/tray_app/, src/config_ui/

Include rule

A Wind header is always included by its bare file name (#include "config.h"), from src/ and tests/ alike. build.bat defines WIND_INC (every src folder, plus src itself) and passes it to every cl call; CORE_SRC lists Wind.exe's source folders once (app, uiaccess and check). Former path includes ("../config.h" in tray_app/config_ui, "../src/x.h" in tests) became bare. Exception: rc.exe gets no include path, so wind_tray.rc keeps "../resource.h"/"../version.h" (unchanged). Documented in CLAUDE.md and chapter 11 ("Source folders and includes"); chapter 01's source map gains a folder column.

Commits

  1. git mv only (118 renames, 100% similarity).
  2. build.bat (WIND_INC, CORE_SRC, explicit :test/tray/config source lists) and include lines.
  3. Docs, CLAUDE.md, code/ui/tools/NSIS comments citing src/<file>; frozen docs/specs and docs/history keep old paths, their READMEs say so.

Gates (all run on the final tree, clean build\)

  • build.bat check: exit 0
  • build.bat test: exit 0, 643/643 test cases
  • build.bat, build.bat uiaccess, build.bat tray, build.bat config (after npm ci): exit 0
  • npm run test:rules: 5/5; npx playwright test: 205 passed
  • build.bat installer (with build\WindUA.exe staged from the uiaccess build as release.ps1 does) + tools\installer_check.ps1: all checks passed (install smoke skipped, needs elevation)
  • . tools\version.ps1; Get-WindVersion: 0.29.3
  • Grep for every old src/<file> / src\<file> path outside frozen docs: 0 hits
  • git diff -M --summary origin/main...HEAD: 118 renames; 97 at 100%, the other 21 are 95-99% because an include line or a comment citing a src/ path changed

Not verified: deploy of the signed UIAccess build and a live run (no runtime change expected; binaries built from the same sources). CI's release/alpha workflows run build.bat unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TdjopXZfsUiesYxYLYHEdH

Maxaubert and others added 3 commits October 14, 2026 03:26
)

git mv only, no content changes. Include paths and consumers follow in the next commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TdjopXZfsUiesYxYLYHEdH
…#486)

build.bat gains WIND_INC (every src folder on the include path) and CORE_SRC (Wind.exe's
source folders), and every target's explicit source list follows the new paths. Includes that
reached a header through a path (../config.h, ../src/config.h) now name it bare.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TdjopXZfsUiesYxYLYHEdH
…le (#486)

Code comments, docs, CLAUDE.md, tools, ui comments and the NSIS headers now cite
src/<folder>/<file>. Chapter 01's source map gains a folder column, chapter 11 and CLAUDE.md state
the bare-name include rule and WIND_INC, and the frozen specs and history READMEs note that their
paths predate the regrouping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TdjopXZfsUiesYxYLYHEdH
@Maxaubert
Maxaubert merged commit 5153895 into main Oct 14, 2026
1 check passed
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.

Group the flat src/ into subfolders (move-only)

1 participant