generate_license.py now appends every minted license to ~/.datatools-creator/issued.jsonl (overridable via env). This is the creator-side system of record until the server-side flow lands. The full blob is stored alongside name/email/tier/expiry so buyers who lose their delivery email can be re-served without re-minting. File is created mode 600 and lives outside the buyer-facing ~/.datatools/ dir so it never gets bundled into a shipped install. Log failures are non-fatal (warning to stderr) — the mint already succeeded by the time we try to log, and forcing a re-mint after a log error would invalidate any device the buyer had activated. Pass --no-log for test mints. ADMIN.md adds a "Customer record-keeping" section with the path, schema, jq one-liners, and migration note pointing at the upcoming LICENSE-SERVER.md design doc. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🌐 Language: English · Español
Excel & CSV Data Cleaning Mastery Bundle
9 Python data-cleaning tools, every one with a CLI and a browser GUI. Local-only, no internet. Windows / macOS / Linux.
Quick Start
- Download the installer for your OS from your purchase email.
- Run it (no Python knowledge required).
- Launch via the desktop shortcut → your default browser opens to a local page.
Full instructions: USER-GUIDE.md.
Docs
Buyer-facing (ships with the product):
- English: USER-GUIDE.md · CLI-REFERENCE.md
- Español: USER-GUIDE.es.md · CLI-REFERENCE.es.md
Creator-only (do not ship):
- BUSINESS.md — market, pricing, marketing
- TECHNICAL.md — architecture, build pipeline, standards
- DECISIONS.md — locked criteria, decision log
- RECOVERY.md — full rebuild guide
- REQUIREMENTS.md — numbered support matrix
Version: 1.6 · Updated: 2026-05-01 · Owner: Michael