Docs: install steps, build requirements, Watch reporting and session-guide header names - #6
Merged
Merged
Conversation
…date README said 0.1.2 and that nothing after 0.1.0 had been played; it now says 0.1.3, what has been played since, and that the zip is dist\PerformanceLog-<version>.zip (the manifest's version, as build.ps1 names it). CLAUDE.md said "about 70" C# checks; it is 91 at 0.1.3, and it now points at docs/TESTING.md for the current count. Its "what is verified" note mentioned only the 0.1.0 run. docs/TESTING.md said nothing from 0.1.1 onward had run in a game. The 0.1.3 session 2026-09-21_23-13-11 (43.9 minutes, ten mods, defaults) shows item 1 (the 0.1.1 fixes: 3 wrapper swaps, workingMB 5587-7090, game singletons labelled "game", heap growth on 310 loading rows, Draw Calls largest 37554, LoadAll 1) and item 8 (deep installed, 47081184 sampled component calls, 3475 component rows). They move to a new "verified in a real game" section with the lines that show them. Item 1 keeps only zipping a folder while the game runs, which no recording can show. Items 2, 3 and 7 stay open; item 7 now notes that PerformanceSettings.Load() ran against the real Mod Settings services (a load row in profile.csv, and defaults that an unloaded setting would have clamped to 1 or 0). The mod's own cost estimate (0.45% of a frame) is recorded with the caveat that it rests on patchCallNs 0. The CHANGELOG's 0.1.3 heading drops "not yet played", and its note that nobody had played it now says that was at release. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Timing is inclusive per key, and the game runs event handlers at once: EventBus.Post calls every [OnEvent] method synchronously once the bus is ready, and C# events such as Inventory.InventoryChanged (which StockpileVisualizers.OnInventoryChanged listens to, and MixedStorage patches) fire inside the code that changed something. So a mod's patch on a handler has no row of its own: its time lands in the entity, component or singleton that raised the event, or in otherMs. Events posted while the game loads are queued until EventBus.PostLoad and are charged to its post-load row. The session guide (docs/SESSION-README.md, copied into every session folder) now says so in "Which mod is it?", points at the # patch|other| and # patch|shared| lines that name these handlers, and says that a Watch entry with that name times the handler with every patch on it (Watch patches with Priority.First/Last). The # patch| bullet also lists the "other" tag it had left out. Both fixtures' README.md are regenerated from it; their frames.csv is left as it was, because regenerating also rewrites allocKB values that differ from run to run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Review of the PL8 docs found three small inaccuracies: - TESTING.md quoted two frame counts for the same session (236917 from summary.md, 236918 from the closing lines, which count the first frame too). The wrapper bullet now says "for the whole recording" instead of a second figure. - README.md and TESTING.md's intro said the 0.1.3 recording shows "the 0.1.1 fixes" working, while TESTING.md keeps one of them (zipping a session folder while the game runs) open because a recording cannot show it. Both now say "every 0.1.1 fix a recording can show". - The rewritten last sentence of the CHANGELOG 0.1.3 entry kept an older false clause: the five-minute check does not start by checking overheadUs; its step 10 measures the cost. It now says that. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
README: install steps now link the Releases page and say to take the newest pre-release's ZIP under Assets. The build needs the Mod Settings Workshop mod as well as Harmony (both csproj files reference it). A refused Watch entry is reported in the frames.csv "# watch|" line and in summary.md, not in Player.log. Watch takes at most 40 methods and every overload. Mention the list command, the session folder name format and how to run the checks against a non-default game folder. BeaverBuddies tags are named as tags. Split long sentences. TESTING: American spelling, the "Mods enabled" section name, and a shorter opening paragraph. CHANGELOG: spelling only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The computer facts are "# key: value" lines (HeaderBuilder.Add, via EnvironmentInfo.Collect), so the guide now says "# display:", "# gpu:" and "# gc:" instead of "# display|", "# gpu|" and "# gc|". Also "judgment". The two fixture README.md files are the rendered guide and get the same edit, so WriterTests.FixturesAreCurrent still passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on #4, which merges first.
# watch|header line offrames.csvand insummary.md, not in Player.log. The 40-method limit and the overload behavior are documented.# display:,# gpu:and# gc:. The fixtures' README copies change with it, because a test compares them byte for byte.Part of an org-wide documentation audit: accuracy against the code and releases, consistent wording and footers across every Timbermods site, and American English. Documentation only: no code, version or build changes.
🤖 Generated with Claude Code