refactor(branding): rename app Tanemaki → Tane

Public name is now Tane (種, "seed"); Tanemaki (種まき, "to scatter seeds")
is kept only as etymology in the About screen and onboarding.

App not yet distributed, so format tokens rename cleanly with no migration:
backup extension .tanemaki→.tane, QR scheme tanemaki://→tane://, file
prefixes tane-*. Website link and species-catalog User-Agent →
tane.comunes.org. Android label capitalised to "Tane".

Identity/crypto constants already use org.comunes.tane (derivation, HKDF
backup, sync namespace, TANE1 recovery tag) — left untouched, so keys,
backups and sync are unaffected. Tests updated; analyze + full suite green.
This commit is contained in:
vjrj 2026-07-12 13:04:16 +02:00
parent 2c113cc17d
commit a534c14983
34 changed files with 180 additions and 180 deletions

View file

@ -30,7 +30,7 @@ class AutoBackupService {
/// Filename prefix so rotation only ever touches automatic copies, never a
/// backup the user saved by hand.
static const _prefix = 'tanemaki-auto-';
static const _prefix = 'tane-auto-';
/// How many automatic copies to keep. A rotating window (not a single file)
/// so a corrupt copy can't overwrite the only backup.
@ -62,7 +62,7 @@ class AutoBackupService {
await dir.create(recursive: true);
final sealed = await _exporter.buildSealedBackup();
final date = now.toIso8601String().substring(0, 10);
final file = File('${dir.path}/$_prefix$date.tanemaki');
final file = File('${dir.path}/$_prefix$date.tane');
await file.writeAsBytes(sealed, flush: true);
await _rotate(dir);

View file

@ -48,7 +48,7 @@ class ExportImportService implements InventorySnapshotIO {
static const _csvCodec = InventoryCsvCodec();
/// The backup file extension. The content is the sealed interchange JSON.
static const backupExtension = 'tanemaki';
static const backupExtension = 'tane';
/// Raw (unsealed) interchange snapshot for device-to-device sync: includes
/// tombstones (so deletions replicate) and omits photo bytes (kept device-
@ -150,7 +150,7 @@ class ExportImportService implements InventorySnapshotIO {
String _fileName(String extension) {
final date = _now().toIso8601String().substring(0, 10);
return 'tanemaki-backup-$date.$extension';
return 'tane-backup-$date.$extension';
}
static List<int> _hexToBytes(String hex) => [

View file

@ -36,7 +36,7 @@ class LabelSheetLabel {
/// The batch facts line ("2006 · Perales · 2 cobs"), if any.
final String? details;
/// The QR payload (a `tanemaki://seed` URI), so the seed's data rides on the
/// The QR payload (a `tane://seed` URI), so the seed's data rides on the
/// physical packet.
final String qrData;
}