package.json's version is hand-maintained and never changes between builds, so a bug report can't identify which bundle produced it. Vite's `define` injects __EDITOR_BUILD__ (short git SHA + build date) at compile time; editorBuild() in build-stamp.ts is the only safe way to read it, falling back to 'dev' since vitest does not apply Vite's `define` and the identifier is otherwise undeclared. The execSync call falls back to 'nogit' when building outside a git checkout (release tarballs), verified by building from a directory with no git ancestry at all. Also wires editorBuild() into a startup console.log in main.tsx -- without any reference to it, Vite tree-shakes the unused module out of the bundle entirely and __EDITOR_BUILD__ never gets substituted, silently leaving every bug report saying 'dev'. Task 19 will add the real call site when it assembles the report payload. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
6 lines
231 B
TypeScript
6 lines
231 B
TypeScript
/// <reference types="vite/client" />
|
|
|
|
/** Injected by vite.config.ts `define`. Absent under vitest -- always read
|
|
* it through `utils/build-stamp.ts`'s `editorBuild()`, never directly. */
|
|
declare const __EDITOR_BUILD__: string;
|