`Test (windows-latest)` failed `codewhale-telemetry` `golden_payload_v1`
with a diff that was nothing but \r\n vs \n. The golden is pulled in with
include_str!() and compared byte for byte against
serde_json::to_string_pretty output, which always emits LF, so the
`* text=auto` default corrupted it on a Windows checkout.
This file already documents that hazard for the prompt assets; the newer
include_str!() inputs (telemetry golden, bundled catalogs and skills under
crates/*/assets, the locale packs, the workflow scripts) had never been
added. The others survived only because they are parsed or
substring-matched rather than compared exactly.
`git add --renormalize .` reports no content change: every one of these is
already stored with LF, so this only affects what Windows checks out.
Keep nested prompt assets LF-normalized and measure prompt budget against LF text so Windows autocrlf checkouts do not trip the mode-delta guard. Trim the Agent mode delta for extra budget margin and finish the TOOL_LIFECYCLE work_update manifest update.
Signed-off-by: Hunter B <hmbown@gmail.com>
Add a release guard that rejects tag-triggered releases whose source commit is not reachable from the canonical main branch. Wire it into release.yml before asset publishing and document the merge-before-tag order in the release runbook and checklist.
Closes#2985.
Add a --remote option so post-merge branch hygiene can inspect upstream release refs from fork checkouts while keeping origin as the default.
Pin the branch-hygiene shell helper and test to LF line endings, make the hermetic test independent of global git identity, and document the post-merge dry-run/prune workflow in the release runbook and checklist.
Fixes#3214
Validation:
- cargo fmt --all -- --check
- bash scripts/release/branch-hygiene.test.sh
- bash scripts/release/branch-hygiene.sh --remote upstream --release-branch hunter/0.8.62-glm-subagents --main-ref upstream/main
- cargo test --workspace --all-features --locked (local run reached codewhale_tui; session_manager temp-dir tests fail because this machine has C:\\.git, and the pandoc/sidebar failures passed when rerun in isolation)
(cherry picked from commit 6952914463274e1513937071975b6ce1ae553907)
- composer_history: raise deadline to 10s on Windows for writer thread
- prompts: make memory_guidance tier-order assertion CRLF-agnostic
- gitattributes: enforce LF line endings for include_str!() prompt files
Regression from the v0.8.44 release changes — the writer thread batching
and the updated constitutional tier ordering in memory_guidance.md both
uncovered Windows-only test flakes.