Stand up the Tanemaki monorepo and the first end-to-end vertical slice of Block 1 (offline, encrypted inventory): add a seed → see it in a categorized, searchable list → it persists → reopen and it's still there. Architecture (state management like G1nkgo, adapted to Tane's reality): - flutter_bloc (Cubit-first), but the encrypted Drift DB is the single source of truth; cubits stream from repositories (no hydrated_bloc/Hive, which would write plaintext at rest). - get_it composition root; go_router; slang i18n (ES/EN, Weblate-friendly JSON). Workspace & core: - pub workspace: packages/commons_core (pure Dart) + apps/app_seeds (Flutter). - commons_core primitives: UUIDv7 IdGen, Hybrid Logical Clock, Quantity value type (+ plant-aware QuantityKind), IdentityService root-seed stub. Data & security: - Drift schemaVersion=1 with all 10 Block-1 tables + common CRDT columns (HLC updated_at, last_author, tombstones); Movement append-only. - SQLCipher via an injectable executor that refuses to open a plaintext DB; DB key + root seed in the OS keystore (separate secrets). - Exported drift_schema_v1.json + migration scaffold. Tests (near-TDD; nothing merges without tests): - commons_core units (24), Drift migration test, "no plaintext at rest" security guard (runs where SQLCipher is present, skips otherwise), repository, widget, full quick-add flow, file-reopen persistence, and a no-hardcoded-strings i18n guard. GitLab CI: format + analyze + test + coverage. Follow-on Block-1 stories (item detail/edit, species catalog, germination UI) and all of Block 2 remain out of scope.
39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
<!--
|
|
This README describes the package. If you publish this package to pub.dev,
|
|
this README's contents appear on the landing page for your package.
|
|
|
|
For information about how to write a good package README, see the guide for
|
|
[writing package pages](https://dart.dev/tools/pub/writing-package-pages).
|
|
|
|
For general information about developing packages, see the Dart guide for
|
|
[creating packages](https://dart.dev/guides/libraries/create-packages)
|
|
and the Flutter guide for
|
|
[developing packages and plugins](https://flutter.dev/to/develop-packages).
|
|
-->
|
|
|
|
TODO: Put a short description of the package here that helps potential users
|
|
know whether this package might be useful for them.
|
|
|
|
## Features
|
|
|
|
TODO: List what your package can do. Maybe include images, gifs, or videos.
|
|
|
|
## Getting started
|
|
|
|
TODO: List prerequisites and provide or point to information on how to
|
|
start using the package.
|
|
|
|
## Usage
|
|
|
|
TODO: Include short and useful examples for package users. Add longer examples
|
|
to `/example` folder.
|
|
|
|
```dart
|
|
const like = 'sample';
|
|
```
|
|
|
|
## Additional information
|
|
|
|
TODO: Tell users more about the package: where to find more information, how to
|
|
contribute to the package, how to file issues, what response they can expect
|
|
from the package authors, and more.
|