mirror of
https://github.com/codewhale-hq/Codewhale.git
synced 2026-11-07 10:36:05 -10:00
Move the Engine band, extension host, fixtures and shared test support into codewhale-engine; wire TUI/CLI to that owner. Preserve human-decision construction boundaries and lower reusable test helpers. Remove unused copied dependencies and repair path-based guards, scripts and crate maps. Correct the blocking scanner external-module scope leak; raised counts equal the corrected pre-move source. Refresh embedded built-in hashes after path-only bundle regeneration. Restore the provider-free prompt budget to the exact pre-b984e31290 macOS bytes and representative identities; tool catalogs are unchanged. Portable prompt-fixture pinning remains follow-up work. Local validation: Engine/TUI/CLI clippy --tests --no-deps -D warnings passed with the existing allow-list; production CLI check passed; fmt passed. Focused native run: 705 passed / 83 failed initially; after hash/path repairs, 81 affected cases plus 2 existing build-relocation cases passed (83/83). Thus 786/788 original cases pass; 2 compiled-release-image cases lack input and are not qualified. Frozen input inventories unchanged. macOS test-link unwind-table warnings remain. Four metric tests pass; all 55 budgets pass. Host Node: 413 pass, 7 skip; Bun: 414 pass, 6 skip. Existing scanner checks: 34 + 33 pass. Compiled-delivery synthetic fixtures: 7 pass. Web: 42 pass. Import, blocking, dead-code, coarse-map, version and facts checks pass. CW-7701. No hosted CI, provider call, release build or publication. Stage A part 2 and the old App Server/ratatui dependencies remain separate.
83 lines
4.5 KiB
Plaintext
83 lines
4.5 KiB
Plaintext
# Ensure LF line endings for files consumed by include_str!() on all platforms.
|
|
# include_str!() preserves raw bytes; CRLF breaks substring assertions and
|
|
# produces different compiled binaries on Windows vs Linux/macOS.
|
|
# Cover nested mode/approval/personality prompts — a top-level *.md glob alone
|
|
# left modes/*.md on CRLF under Windows autocrlf and blew the agent token budget.
|
|
crates/engine/src/prompts/**/*.md text eol=lf
|
|
crates/engine/src/prompts/*.md text eol=lf
|
|
crates/engine/src/prompts/*.txt text eol=lf
|
|
|
|
# The rest of the include_str!() inputs. `* text=auto` below converts these to
|
|
# CRLF on a Windows checkout, which is invisible for the ones that are only
|
|
# parsed or substring-matched and fatal for the one that is compared byte for
|
|
# byte: crates/telemetry/tests/golden/v1.json is asserted against
|
|
# serde_json::to_string_pretty output, which always emits LF, so Windows CI
|
|
# failed `golden_payload_v1` with a pure \r\n diff.
|
|
crates/telemetry/tests/golden/*.json text eol=lf
|
|
# Generated pet native artifacts are regenerated in memory and compared byte
|
|
# for byte by `npm --prefix pet run check` (pet/scripts/build-pet.mjs), and the
|
|
# TUI copy is embedded with include_str!() (pet_watch/owner.rs). The generator
|
|
# emits LF, so a CRLF Windows checkout reported all three as stale and would
|
|
# embed different bytes.
|
|
crates/tui/src/tui/pet_watch/pet-native.js text eol=lf
|
|
pet/ios/Resources/pet-native.js text eol=lf
|
|
pet/ios/Resources/demo.jsonl text eol=lf
|
|
# Tideline component goldens (crates/tui/src/tui/goldens/*.txt) are
|
|
# fs::read_to_string'd and compared byte for byte against buffer dumps that
|
|
# always join rows with LF (golden_harness.rs::render_golden_text), so a
|
|
# CRLF checkout failed all eight Windows golden tests with a pure \r\n diff.
|
|
crates/tui/src/tui/goldens/*.txt text eol=lf
|
|
# FEAT-025 baseline export goldens (crates/tui/src/commands/fixtures/*.md) are
|
|
# include_str!()'d and compared byte for byte against a document the exporter
|
|
# builds with LF, so a CRLF checkout failed the four Windows golden tests with a
|
|
# pure \r\n diff (Windows CI caught this; Linux cannot see it).
|
|
crates/tui/src/commands/fixtures/*.md text eol=lf
|
|
# FEAT-029 debug diagnostics baselines (crates/tui/src/commands/fixtures/
|
|
# diagnostics/*) are compared byte for byte against command output joined
|
|
# with LF, so a CRLF checkout failed every Windows baseline parity test with a
|
|
# pure \r\n diff.
|
|
crates/tui/src/commands/fixtures/diagnostics/* text eol=lf
|
|
# Conformance fixtures are recorded wire bytes (SSE framing is line-exact) and
|
|
# goldens compared byte for byte; a CRLF checkout must not rewrite either.
|
|
crates/tui/tests/fixtures/conformance/** text eol=lf
|
|
crates/*/assets/**/*.json text eol=lf
|
|
crates/*/assets/**/*.md text eol=lf
|
|
crates/*/locales/*.json text eol=lf
|
|
workflows/*.js text eol=lf
|
|
# Executable documentation: the Fleet tutorial's JSON fence is parsed by the
|
|
# task-spec contract test, so its bytes must agree on Windows and Unix.
|
|
docs/FLEET_WORKFLOW_TUTORIAL.md text eol=lf
|
|
# The dsh bundle scene is include_str!() into the generated client.js and
|
|
# hashed for stale detection; CRLF would change both across platforms.
|
|
crates/tui/src/integrations/dsh/*.js text eol=lf
|
|
# The native DSH import fixture bundle is hashed into the conversion receipt,
|
|
# so a CRLF checkout changed the expected digest on Windows.
|
|
scripts/fixtures/dsh-web-app/** text eol=lf
|
|
|
|
# The extension host's generated protocol TS is compared byte for byte with
|
|
# the generator's LF output (protocol/tests.rs), and its dist bundle is
|
|
# include_bytes!()'d and digest-checked at launch; a CRLF Windows checkout
|
|
# failed the former and would embed different bytes.
|
|
crates/engine/extension-host/src/protocol.generated.ts text eol=lf
|
|
crates/engine/extension-host/dist/** text eol=lf
|
|
# Reviewed extension-host fixtures carry exact source SHA-256 receipts.
|
|
# A Windows checkout must not rewrite their admitted source closure to CRLF.
|
|
crates/engine/tests/fixtures/extension_host/** text eol=lf
|
|
crates/engine/extension-host/src/dsh/dsh-message-compat.js text eol=lf
|
|
|
|
# Rustfmt writes LF; keep Rust sources stable across Windows/Linux/macOS.
|
|
*.rs text eol=lf
|
|
|
|
# Release shell scripts are invoked directly by bash on Windows
|
|
# checkouts; CRLF turns `set -euo pipefail` into an invalid option.
|
|
scripts/release/*.sh text eol=lf
|
|
|
|
# Keep repository attributes themselves stable on every platform.
|
|
.gitattributes text eol=lf
|
|
|
|
# Everything else auto-detects (default).
|
|
* text=auto
|
|
|
|
# Preserve the qualified upstream font license, including its trailing space.
|
|
web/public/brand/fonts/OFL.txt text eol=lf whitespace=-blank-at-eol
|