codeburn/app/package.json
iamtoruk e9655fa03c fix: hydration completeness markers, cold-only splash, honest switching, prefetch
P0: an interrupted cold hydration left partial caches that the
emptiness check read as warm — the daily backfill froze (missing older
days) while session parsing healed gradually (drifting totals),
poisoning every surface sharing the cache. Both caches now carry an
explicit complete marker: partial resumes cold under the hydration
lock; unmarked caches self-heal with one re-hydration. Regression test
seeds the exact frozen artifact and asserts bit-for-bit convergence
with a never-interrupted run.

- splash indexing reveals only on genuinely cold scans (explicit cold
  flag in the progress protocol), never on warm incremental re-parses
- uncached filter switches clear to skeleton instead of showing the
  previous filter's numbers; cached switches paint same-commit;
  background prefetch warms every detected provider after idle
- build stamp (git sha + date) in splash and About ends build ambiguity
- payload parity test: identical payloads on identical cache, and
  payload totals equal the CLI report path
- Sessions empty state keeps the provider filter row; zero savings
  line hidden; TCC usage-description strings + Full Disk Access docs
- warm profile documented: optimize scan ~1.47s dominant (safe
  refactor deferred), parse ~1s, aggregation ~30ms

Root 1848, app 320, typechecks clean.
2026-07-16 14:05:11 -07:00

118 lines
3.8 KiB
JSON

{
"name": "codeburn-desktop",
"private": true,
"version": "0.9.15",
"description": "CodeBurn Desktop \u2014 Electron app fed by the codeburn CLI",
"main": "dist/electron/main.js",
"scripts": {
"build:electron": "tsc -p tsconfig.electron.json",
"build:renderer": "vite build",
"build": "npm run build:electron && npm run build:renderer",
"dev": "npm run build:electron && concurrently -k -n vite,electron -c cyan,magenta \"vite\" \"wait-on tcp:127.0.0.1:5173 && cross-env VITE_DEV_SERVER_URL=http://127.0.0.1:5173 electron .\"",
"test": "vitest run",
"typecheck": "tsc --noEmit -p tsconfig.json",
"stage-cli": "npm --prefix .. run build:cli && node scripts/stage-cli.mjs",
"package": "npm run stage-cli && npm run build && electron-builder --mac",
"package:arm64": "npm run stage-cli && npm run build && electron-builder --mac --arm64",
"package:x64": "npm run stage-cli && npm run build && electron-builder --mac --x64",
"package:win": "npm run stage-cli && npm run build && electron-builder --win",
"package:linux": "npm run stage-cli && npm run build && electron-builder --linux"
},
"dependencies": {
"@gsap/react": "^2.1.2",
"gsap": "^3.15.0",
"react": "^19.2.7",
"react-dom": "^19.2.7"
},
"devDependencies": {
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/node": "^26.1.1",
"@types/react": "^19.2.17",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^4.7.0",
"@vitest/ui": "^3.2.7",
"concurrently": "^10.0.3",
"cross-env": "^10.1.0",
"electron": "^43.1.0",
"electron-builder": "^26.15.3",
"jsdom": "^29.1.1",
"typescript": "^7.0.2",
"vite": "^6.4.3",
"vitest": "^3.2.7",
"wait-on": "^9.0.10"
},
"build": {
"appId": "org.agentseal.codeburn-desktop",
"productName": "CodeBurn",
"directories": {
"output": "release"
},
"files": [
"dist/electron/**/*",
"dist/renderer/**/*",
"package.json"
],
"afterPack": "./scripts/after-pack.cjs",
"mac": {
"target": [
{
"target": "dmg",
"arch": [
"arm64",
"x64"
]
},
{
"target": "zip",
"arch": [
"arm64",
"x64"
]
}
],
"category": "public.app-category.developer-tools",
"icon": "build/icon.png",
"identity": "-",
"hardenedRuntime": false,
"gatekeeperAssess": false,
"extendInfo": {
"NSDocumentsFolderUsageDescription": "CodeBurn reads your local AI coding tool session logs (Claude Code, Codex, Cursor, and others) to calculate your token usage and cost. Your data never leaves your machine.",
"NSDesktopFolderUsageDescription": "CodeBurn reads your local AI coding tool session logs (Claude Code, Codex, Cursor, and others) to calculate your token usage and cost. Your data never leaves your machine.",
"NSDownloadsFolderUsageDescription": "CodeBurn reads your local AI coding tool session logs (Claude Code, Codex, Cursor, and others) to calculate your token usage and cost. Your data never leaves your machine."
}
},
"dmg": {},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"icon": "build/icon.png"
},
"nsis": {
"oneClick": false,
"perMachine": false,
"artifactName": "CodeBurn-Setup-${version}.${ext}"
},
"linux": {
"target": [
{
"target": "AppImage",
"arch": [
"x64"
]
}
],
"category": "Development",
"icon": "build/icon.png",
"maintainer": "AgentSeal <hello@agentseal.org>",
"executableName": "codeburn"
}
}
}