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

@ -3,7 +3,7 @@ import 'package:tane/data/export_import/seed_label_codec.dart';
void main() {
group('SeedLabelCodec.encode', () {
test('encodes all fields as a tanemaki://seed URI', () {
test('encodes all fields as a tane://seed URI', () {
final uri = SeedLabelCodec.encode(
const SeedLabelData(
varietyLabel: 'Acelga de Perales',
@ -13,9 +13,9 @@ void main() {
origin: 'Perales',
),
);
expect(uri, startsWith('tanemaki://seed?'));
expect(uri, startsWith('tane://seed?'));
final parsed = Uri.parse(uri);
expect(parsed.scheme, 'tanemaki');
expect(parsed.scheme, 'tane');
expect(parsed.host, 'seed');
expect(parsed.queryParameters, {
'v': 'Acelga de Perales',
@ -74,15 +74,15 @@ void main() {
group('SeedLabelCodec.decode', () {
test('rejects a foreign scheme', () {
expect(SeedLabelCodec.decode('https://seed?v=x'), isNull);
expect(SeedLabelCodec.decode('tanemaki://other?v=x'), isNull);
expect(SeedLabelCodec.decode('tane://other?v=x'), isNull);
});
test('rejects a payload without a variety', () {
expect(SeedLabelCodec.decode('tanemaki://seed?s=Beta%20vulgaris'), isNull);
expect(SeedLabelCodec.decode('tane://seed?s=Beta%20vulgaris'), isNull);
});
test('ignores an unparseable year rather than throwing', () {
final decoded = SeedLabelCodec.decode('tanemaki://seed?v=Maíz&y=old');
final decoded = SeedLabelCodec.decode('tane://seed?v=Maíz&y=old');
expect(decoded?.varietyLabel, 'Maíz');
expect(decoded?.year, isNull);
});