54 lines
2.9 KiB
Markdown
54 lines
2.9 KiB
Markdown
# macOS metadata and source discovery
|
|
|
|
macOS can create AppleDouble companions whose path components start with `._`.
|
|
These files contain filesystem metadata and are not application source. On the
|
|
external-drive review checkout, the former Vitest include pattern selected
|
|
`src/avatar/._*.test.ts` files and attempted to transform their binary contents.
|
|
TypeScript 5.8 already skips the tested dot-prefixed paths with its existing
|
|
`src` include. Its new explicit exclusions document the same metadata policy
|
|
while preserving compiler options and ordinary input discovery.
|
|
|
|
Shared source issue [#11](https://git.whoagland.com/phenom/healer-man/issues/11)
|
|
owns the default discovery correction:
|
|
|
|
- `vite.config.ts` retains `configDefaults.exclude` and adds `**/._*` plus
|
|
`**/._*/**` to the test exclusions.
|
|
- `tsconfig.app.json` retains its compiler options and `include: ["src"]`.
|
|
Its exclusions retain the package-directory defaults and add the same
|
|
metadata patterns.
|
|
|
|
The two patterns cover companion files and files inside a companion directory,
|
|
including nested directories. A component must start with `._`; ordinary
|
|
underscore names and names containing those characters elsewhere remain source.
|
|
Existing metadata files are retained. This changes root input discovery;
|
|
TypeScript's normal handling of explicit imports still applies.
|
|
|
|
`tools/verify-appledouble-metadata-discovery.mjs` supplies a focused regression
|
|
proof through actual Vitest discovery/execution and TypeScript configuration
|
|
input parsing. It uses fresh task-owned fixtures to verify the rejection path
|
|
and two ordinary test sentinels to verify continued execution. It does not certify
|
|
full application typechecking, a browser production build, gameplay, balance,
|
|
character rendering or dungeon behavior.
|
|
|
|
Exact commands, input identities and observed results accompany the issue and
|
|
`metadata-discovery-validation.json`. Shared source issue
|
|
[#9](https://git.whoagland.com/phenom/healer-man/issues/9) still owns its separate
|
|
browser build/live visual acceptance gap. Native checkpoint
|
|
[#292](https://git.whoagland.com/Codex/healer-man-godot/issues/292) is already
|
|
installed and merged. This tooling change requires no native runtime rebuild:
|
|
the native writable source mirror is a subset without these browser configs.
|
|
|
|
Run the focused proof after installing the repository dependencies:
|
|
|
|
```sh
|
|
node tools/verify-appledouble-metadata-discovery.mjs --evidence-dir /absolute/fresh-path
|
|
```
|
|
|
|
Use a fresh absolute path outside the checkout. The helper keeps its fixtures
|
|
and reports; it refuses existing destinations, overlap and symlink paths. It
|
|
works from another current directory and uses the Node executable that launched
|
|
it. The final external-drive control records three binary metadata transform
|
|
failures; fixed Vitest defaults run both ordinary tests. TypeScript API and CLI
|
|
resolve the same two ordinary inputs, with and without the explicit metadata
|
|
filters. The Vite/Node configuration typecheck passes.
|