FileTally

Count pages. Index files. Stay local.

This package scans a folder and exports a file index with path, name, size, extension, category, count method, and page count.

What is included
1. Compiled GUI launcher: FileTally.exe
2. Script GUI launcher: Open-FileTally-Gui.cmd
3. Hidden GUI fallback launcher: Open-FileTally-Gui.vbs
4. CLI launcher: Run-FileTally.cmd
5. Install helper: Install-FileTally.cmd
6. Uninstall helper: Uninstall-FileTally.cmd
7. Package builder: Build-Package.ps1

Accuracy notes
1. PDF counts are most accurate when the app runs in PowerShell 7 (`pwsh`).
2. Word, Excel, and PowerPoint counts are most accurate when Microsoft Office is installed.
3. Audio and video files record duration and can optionally be estimated into page counts by policy.
4. Text-like files can be estimated, counted as 1 page, or left blank by policy.
5. Specific extensions can now override category defaults, including fixed page counts such as `.msg` -> 2 pages, alongside `.zip` -> blank or `.csv` -> text estimate.

Premium-beta UI highlights
1. The GUI now includes a diagnostics tab that explains which exact versus fallback count paths are available on the current machine.
2. The Review Issues tab lets users filter and inspect rows that need attention, including failures, blanks, and fallback-heavy results.
3. The Extension Rules tab now supports fixed page counts in addition to blank, count-as-1, and text-estimate overrides.
4. The top of the GUI now separates Source folder, Export folder, and Export name with clearer defaults and less friction.
5. Scan completion now uses a clearer state badge and resets the progress bar after successful scans instead of leaving a persistent completed bar.

Install options
1. Portable use: open this folder and launch `FileTally.exe` for the cleanest GUI entry point, or use the script launchers directly if needed.
2. Installed use: run the packaged setup executable for a guided installer with install-location, desktop-shortcut, and Explorer-menu choices, or use `Install-FileTally.cmd` for a direct script-based install.
3. User settings now live under `%LOCALAPPDATA%\FileTally`. If settings from an earlier build are present, FileTally migrates them automatically on first launch.

Screenshot automation
1. Run `Build-Package.ps1 -CaptureScreenshots` to generate fresh GUI screenshots into `dist\Screenshots`.
2. Advanced users can run `FileTally.Gui.ps1 -SelfTest -ScreenshotState Completed -ScreenshotPath C:\Somewhere\gui.png` to capture a deterministic preview image.
3. The package builder now compiles both `FileTally.exe` and the setup executable directly from bundled C# launcher sources before it creates the portable zip and setup executable.
4. `FileTally.exe` now hosts the PowerShell GUI in-process, which keeps the app launch path cleaner and avoids falling back to a separate PowerShell host window.

Important packaging note
This preview package is unsigned in this environment. For commercial release, ship a code-signed installer.
