K22-CODE-24: every source file starts with a copyright line and an SPDX
license identifier, the same header the KofTwentyTwo IntelliJ copyright
profile inserts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
Formatting only, no behavior change. Produced mechanically:
- dotnet format on the solution (3-space indent, Allman braces, `if(`,
usings, `var`, System.Threading.Lock); the linked samples/Shared file is
formatted through one project, because formatting it through both writes
conflict markers into it.
- Kingsrook blank lines the .NET formatter cannot express (K22-CODE-06,
K22-CODE-CS-03): three blank lines around methods, constructors, types, and
multi-line properties; at most one blank line inside code blocks and between
single-line members; two after the using list. Applied with a Roslyn rewriter
equivalent to Rider's resharper_blank_lines_* keys.
- XML-family files (.csproj, .props, .slnx, .xaml, manifests, .runsettings)
re-indented to three spaces.
- git add --renormalize: every text file is stored with LF.
Listed in .git-blame-ignore-revs so git blame skips it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
Extracts the app-agnostic plumbing proven in gclo 1.0 into four packages that
every future KofTwentyTwo Windows app builds on:
- KofTwentyTwo.AppKit: AppInfo identity, AppPaths, BuildVersion, crash-safe
FileActivityLog with retention, LogTail, atomic SettingsStore<T> with
ShellSettings, Credential Manager secret vault, IUserPrompter seam
- KofTwentyTwo.AppKit.Updates: Velopack startup hook, never-throwing GitHub
Releases update service with stable/dev channel selection, and the shared
"check for updates" flow (UpdateCoordinator)
- KofTwentyTwo.AppKit.WinUI / .Wpf: code-built splash overlay, About, live log
viewer, crash net, theme and window helpers, dialog adapters
The two framework-free packages are held to 100% line coverage (109 tests).
WinUI and WPF sample apps exercise every service and are driven end to end by
12 FlaUI tests. BrandTool generates the vector mark and multi-size .ico.
CI mirrors gclo's gates (zero warnings, coverage, UI tests, format, CodeQL,
dependency review); the release workflow packs, checksums, attests build
provenance, publishes a GitHub release, and pushes to nuget.org.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>