tane/apps/app_seeds/pubspec.yaml
vjrj e715b129f6 feat(trust): full Duniter web-of-trust membership (params + referents)
Slice 4 of Block 2. The pure rule was already parameterised; this adds the
policy, cold-start and UI around it.

- commons_core: WotParams (sigQty/stepMax/sigValidity, Duniter defaults) +
  WebOfTrust.membersWith; npubToHex helper (NIP-19 decode) for adding roots.
- WotSettings (keystore): the active parameters, configurable — a young
  network loosens them and tightens as it grows, as Ğ1 did. Defaults Duniter.
- TrustReferents: the bootstrap 'seeds' membership is measured from — a
  bundled asset (empty until real founders are curated, no invented keys)
  unioned with referents the user adds by npub/QR. Honest cold-start.
- TrustCubit: computes the full membership verdict against referents+params
  alongside the personal circle, and exposes a TrustTier (networkMember >
  inYourCircle > vouched > unknown). Certifications issued with the active
  validity (they expire and renew, Duniter rule).
- UI: chat trust badge by tier; a 'Network of trust' screen (manage roots +
  advanced params) reached from the profile. i18n en/es/pt/ast.

Tests: WotParams/membersWith, npubToHex, TrustReferents, WotSettings, and
TrustCubit tiers/membership. Resolves the WoT-parameters decision
(open-decisions §B). Trust net stays empty/undetermined until seeded — by
design; users bootstrap their own roots.
2026-07-10 21:02:08 +02:00

150 lines
4.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: tane
description: "Tanemaki — local-first, encrypted, decentralized traditional-seed inventory."
publish_to: 'none'
version: 0.1.0+1
environment:
sdk: ^3.11.5
resolution: workspace
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
commons_core:
path: ../../packages/commons_core
# State management (Cubit-first). Drift streams are the source of truth.
flutter_bloc: ^9.1.1
equatable: ^2.0.5
# Stream combinators (StreamGroup) for reactive multi-table reads.
async: ^2.11.0
# Encrypted local database. NOTE: do NOT add sqlite3_flutter_libs / drift_flutter
# — their bundled plain SQLite collides (same symbols) with SQLCipher and
# segfaults on desktop. SQLCipher is the only native sqlite provider here.
drift: ^2.28.0
sqlite3: ^2.7.5
sqlcipher_flutter_libs: ^0.6.5
# Dependency injection composition root.
get_it: ^8.0.3
# i18n (Weblate-friendly JSON per locale).
slang: ^4.7.0
slang_flutter: ^4.7.0
# ICU date/number formatting (locale-aware, never ad-hoc).
intl: ^0.20.2
# Secure key storage (OS keystore).
flutter_secure_storage: ^9.2.4
# Routing + media + paths.
go_router: ^14.6.2
image_picker: ^1.1.2
# On-device OCR (Tesseract, Apache-2.0/BSD) to suggest a name from a packet
# photo. Offline, no Google/cloud. Mobile-only; other platforms use a no-op.
flutter_tesseract_ocr: ^0.4.31
# Pure-Dart image preprocessing (grayscale/contrast/upscale) before OCR to
# lift accuracy on blurry packet photos.
image: ^4.3.0
# Save/open dialogs for the inventory export/import (MIT license).
file_picker: ^10.1.2
# Pure-Dart PDF generation (Apache-2.0) for the printable "what I share"
# catalog. No platform channels, so the whole flow is host-testable.
pdf: ^3.11.3
# Pure-Dart barcode/QR generation (Apache-2.0; already used transitively by
# pdf). Painted on screen for the profile's shareable identity QR.
barcode: ^2.2.9
path: ^1.9.0
path_provider: ^2.1.5
cupertino_icons: ^1.0.8
material_symbols_icons: ^4.2951.0
url_launcher: ^6.3.2
package_info_plus: ^9.0.1
# Optional coarse device location (BSD-3) to set the sharing area without
# typing a code. Low accuracy only; the value is immediately reduced to a
# low-precision geohash. Behind an interface so it's fakeable and pluggable.
geolocator: ^13.0.1
# Network reachability (BSD-3) to show a global "you're offline" banner — the
# social layer needs a connection; the inventory works regardless.
connectivity_plus: ^6.1.0
dev_dependencies:
flutter_test:
sdk: flutter
integration_test:
sdk: flutter
flutter_lints: ^6.0.0
build_runner: ^2.4.13
drift_dev: ^2.28.0
slang_build_runner: ^4.7.0
mocktail: ^1.0.4
flutter_launcher_icons: ^0.14.4
flutter_native_splash: ^2.4.7
# App launcher icon: a white sprout on brand green (#2F7D34) for strong
# contrast. Regenerate with: dart run flutter_launcher_icons
flutter_launcher_icons:
image_path: assets/icon.png
android: true
ios: true
remove_alpha_ios: true
adaptive_icon_background: "#2F7D34"
adaptive_icon_foreground: assets/icon_foreground.png
web:
generate: true
image_path: assets/icon.png
background_color: "#2F7D34"
theme_color: "#2F7D34"
windows:
generate: true
image_path: assets/icon.png
icon_size: 256
# Native splash: white sprout on brand green, a darker green in dark mode.
# Regenerate with: dart run flutter_native_splash:create
flutter_native_splash:
color: "#2F7D34"
color_dark: "#22521E"
image: assets/splash_logo.png
android_12:
image: assets/splash_logo.png
color: "#2F7D34"
color_dark: "#22521E"
flutter:
uses-material-design: true
# Seed strings for slang live under lib/i18n (not a Flutter asset; compiled).
assets:
- assets/catalog/species.json
# Web-of-trust bootstrap referents (Duniter "seeds"). Empty until real
# founding identities are curated; users bootstrap by adding their own.
- assets/trust/referents.json
- assets/logo.png
# Bundled so the Linux runner can use it as the GTK window icon.
- assets/icon.png
# Tesseract OCR language data (tessdata_fast: eng + spa). Bundled for
# offline, on-device label OCR on mobile.
- assets/tessdata/
- assets/tessdata_config.json
# Real packet photos for the on-device OCR validation integration test.
# Remove before shipping if you don't want them in the bundle.
- assets/ocr_fixtures/
# Embedded in generated PDFs (printable catalog). DejaVu covers Latin
# (extended), Cyrillic and Greek; like the OCR packs, PDF fonts are a
# per-locale resource — swap in wider coverage (Arabic, CJK) as locales
# land. Free license (Bitstream Vera / public domain additions).
- assets/fonts/DejaVuSans.ttf
- assets/fonts/DejaVuSans-Bold.ttf
fonts:
# Custom seed-themed icon glyphs (chars ak). See docs/mockups/seedks-glyphs.png.
- family: seedks
fonts:
- asset: fonts/seedks.ttf