utils/README.md
Krzysztof kuhy Rudnicki 23c693da4e Add sync_settings_ui: shared Firebase-only sync settings screen
Extracts the near-identical "Sync settings" UI duplicated across 5 apps
(todo, diet_guard_app, workout_app, wake_alarm/phone_app, home_inventory)
into a single tested package. Firebase sync (primary) + optional local
backup slot; GitHub mirror UI was dropped per kuhy's explicit decision
mid-build in favor of Firebase-only, so existing apps keep their local
GitHub code untouched, just disconnected from this shared screen.

100% line coverage, flutter analyze clean under very_good_analysis.
Generalized check_no_crdt_sync_override.sh to guard any utils git
dependency (crdt_sync, sync_settings_ui), not just crdt_sync by name.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdSp6Nbrs9xvsWkCMDN9a1
2026-08-12 23:10:17 +02:00

85 lines
2.9 KiB
Markdown

# utils
Shared libraries used across kuhyx's other projects. Each subdirectory is a
formerly-standalone repo, folded in here with full commit history preserved
(see each subdirectory's own `git log` for its pre-merge history).
## crdt_sync_dart/
Dart/Flutter CRDT sync library (pub package name: `crdt_sync`, not published
to pub.dev — consumed via a git dependency). Mirrors `crdt-sync` (below)
module-for-module and test-for-test. Consumed by `diet_guard`'s app,
screen-locker's `workout_app`, `wake_alarm`'s `phone_app`, and `todo` (whose
notes are stored in the v0.2.0 `LogStore`).
Consume via:
```yaml
dependencies:
crdt_sync:
git:
url: https://github.com/kuhyx/utils
ref: crdt_sync_dart-v0.10.0
path: crdt_sync_dart
```
## sync_settings_ui/
Shared Flutter "Sync settings" screen (pub package name: `sync_settings_ui`,
not published to pub.dev). Firebase sync (primary) plus an optional local
backup slot — no GitHub mirror UI. Pure UI + a `FirebaseSyncController`
service layer over injected closures (keystore/Google-plugin access stays
in each consuming app, exactly as before this package existed). Consumed by
`todo`, `diet_guard_app`, `workout_app`, `wake_alarm/phone_app`, and
`home_inventory`'s dedicated "Sync settings" route.
Consume via:
```yaml
dependencies:
sync_settings_ui:
git:
url: https://github.com/kuhyx/utils
ref: sync_settings_ui-v0.1.0
path: sync_settings_ui
```
## crdt-sync/
Python CRDT sync library (package: `crdt_sync`, not published to PyPI). Same
design as `crdt_sync_dart` (HLC clocks, per-field LWW, sticky-delete
tombstones). Consumed by `diet-guard` and `screen-locker`.
Consume via:
```
crdt-sync @ git+https://github.com/kuhyx/utils@crdt-sync-v0.2.0#subdirectory=crdt-sync
```
## guard-lib/
Bash tamper-resistance primitives (`guardctl`: chattr + bind-mount + systemd
watcher + pacman hooks). Not a package — installed by running
`guard-lib/install.sh` as root, which copies files onto the system
(`/usr/local/bin`, `/usr/local/lib/guard-lib`, systemd units, pacman hooks).
Consumed by `steam-backlog-enforcer` (expects a `guard-lib/install.sh`
sibling clone) and referenced by `screen-locker`.
## gatelock/
Python lock-window + HMAC log-integrity backend (package: `gatelock`, not
published to PyPI). Consumed via pip by `screen-locker`, `diet-guard`, and
`wake-alarm`:
```
gatelock @ git+https://github.com/kuhyx/utils@gatelock-v0.1.0#subdirectory=gatelock
```
## unified-design-system/
Not a package — the frozen design tokens (colors, spacing, type, radius,
shadow policy) and per-stack (Flutter/web/Tkinter) implementation patterns
that keep every one of kuhy's repos visually identical, plus annotated
component references (`components.html`, `button.html`). Read
[`unified-design-system/README.md`](unified-design-system/README.md) and
`tokens.md` before touching any theme/CSS/style file in any repo. The
`unified-design-system` Claude Code skill is a thin pointer here, not a
duplicate.