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:
parent
2c113cc17d
commit
a534c14983
34 changed files with 180 additions and 180 deletions
|
|
@ -74,7 +74,7 @@ void main() {
|
|||
.listSync()
|
||||
.whereType<File>()
|
||||
.map((f) => f.uri.pathSegments.last)
|
||||
.where((n) => n.startsWith('tanemaki-auto-'))
|
||||
.where((n) => n.startsWith('tane-auto-'))
|
||||
.toList()
|
||||
..sort();
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ void main() {
|
|||
expect(await service.runIfDue(), isTrue);
|
||||
|
||||
final copies = autoCopies();
|
||||
expect(copies, ['tanemaki-auto-2026-07-10.tanemaki']);
|
||||
expect(copies, ['tane-auto-2026-07-10.tane']);
|
||||
final bytes = File('${dir.path}/${copies.single}').readAsBytesSync();
|
||||
expect(BackupBox.looksSealed(bytes), isTrue);
|
||||
});
|
||||
|
|
@ -117,12 +117,12 @@ void main() {
|
|||
);
|
||||
|
||||
expect(await service.runIfDue(), isTrue);
|
||||
expect(autoCopies(), ['tanemaki-auto-2026-07-10.tanemaki']);
|
||||
expect(autoCopies(), ['tane-auto-2026-07-10.tane']);
|
||||
});
|
||||
|
||||
test('rotation keeps only the newest three copies', () async {
|
||||
for (final d in ['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04']) {
|
||||
File('${dir.path}/tanemaki-auto-$d.tanemaki').writeAsBytesSync([0]);
|
||||
File('${dir.path}/tane-auto-$d.tane').writeAsBytesSync([0]);
|
||||
}
|
||||
final service = newService(
|
||||
newExporter(),
|
||||
|
|
@ -133,9 +133,9 @@ void main() {
|
|||
await service.runIfDue();
|
||||
|
||||
expect(autoCopies(), [
|
||||
'tanemaki-auto-2020-01-03.tanemaki',
|
||||
'tanemaki-auto-2020-01-04.tanemaki',
|
||||
'tanemaki-auto-2026-07-10.tanemaki',
|
||||
'tane-auto-2020-01-03.tane',
|
||||
'tane-auto-2020-01-04.tane',
|
||||
'tane-auto-2026-07-10.tane',
|
||||
]);
|
||||
});
|
||||
|
||||
|
|
@ -151,7 +151,7 @@ void main() {
|
|||
// runIfDue is a no-op today, but an explicit tap still makes a copy.
|
||||
expect(await service.runIfDue(), isFalse);
|
||||
expect(await service.backupNow(), isTrue);
|
||||
expect(autoCopies(), ['tanemaki-auto-2026-07-10.tanemaki']);
|
||||
expect(autoCopies(), ['tane-auto-2026-07-10.tane']);
|
||||
});
|
||||
|
||||
test('a failed backup returns false and never throws', () async {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue