xint data directory persistence fix
xint Data Directory Persistence Fix
xint’s costs.ts and reliability.ts use join(import.meta.dir, "..", "data/") to resolve data paths — relative to the lib/ directory inside the versioned release, NOT respecting the XINT_DATA_DIR env var. This means runtime state (api-costs.json, reliability-metrics.json, oauth-tokens.json) gets written inside the release directory and would be LOST on version upgrade.
Fix: Symlink releases/<version>/data → /opt/infra/xint/data/. Must be redone on every version upgrade.
Upgrade checklist addition:
- Download new release to
releases/<tag>/ bun installrm -rf releases/<tag>/data && ln -sfn /opt/infra/xint/data releases/<tag>/data- Recreate
lib/spinner.tsstub if upstream still missing - Switch symlink:
ln -sfn releases/<tag> current - Verify:
xint health
Related
- docker
- 2026-04-04-oracle-001-self-architecture-analysis
- xint-data-dir-writes-to-release-internal-by-default
- xint-data-dir-writes-inside-releases-not-persistent
- xint-runtime-data-writes-to-release-internal-dir-by-default