Go to file
Krzysztof kuhy Rudnicki da7fa911b2
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
file length / file-length (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
palette drift / palette (push) Waiting to run
shared gate tests / gate unit tests (push) Waiting to run
An exception excuses the version it names, not the package
`pinned:` is a required field precisely because an entry is an argument about
ONE version. Matching on the package name alone turns a narrow, reasoned hold
into a blanket exemption -- the fleet-wide typescript entry pins 6.0.3 for a
reason specific to 6.0.3, and dufs-cloud/web sat on `~5.8.3`, two majors
older for no stated reason, with the gate reporting it current.

An entry that exists but does not cover the pin in front of it still counts
as USED for the rot check. The hold is real; this repo is simply not on the
held version, which is a stale pin to fix rather than an allowlist line to
delete.

322 tests, 100% branch coverage.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CRykabMwPgDzFHcARoqpaK
2026-08-28 15:26:12 +02:00
.github/workflows Check the toolchain versions CI actually installs, not just the ones declared 2026-08-28 15:04:00 +02:00
aur-publish Split the two shell scripts and the gate's own config 2026-08-22 14:59:27 +02:00
crdt_sync_dart Don't judge allowlist rot from a file-scoped run; cut two library versions 2026-08-28 14:07:09 +02:00
crdt_sync_flutter Move the two in-repo consumers onto crdt_sync_dart-v0.11.1 2026-08-28 14:08:28 +02:00
crdt-sync See git-tag pins in Python requirements; cut crdt-sync 0.9.1, gatelock 0.7.2 2026-08-28 14:52:19 +02:00
dep_freshness An exception excuses the version it names, not the package 2026-08-28 15:26:12 +02:00
design_system Don't judge allowlist rot from a file-scoped run; cut two library versions 2026-08-28 14:07:09 +02:00
dopamine-ux Add the shared markdown-naming gate and migrate utils' own docs 2026-08-24 15:53:12 +02:00
file_length file_length: drop three deleted third-party clones from the exclusion set 2026-08-28 12:14:45 +02:00
firebase firebase: make the rules template impossible to deploy verbatim 2026-08-22 19:10:10 +02:00
gatelock See git-tag pins in Python requirements; cut crdt-sync 0.9.1, gatelock 0.7.2 2026-08-28 14:52:19 +02:00
github_device_auth github_device_auth: exact pins (http 1.6.0, url_launcher 6.3.2) 2026-08-28 13:34:45 +02:00
guard-lib Split the two shell scripts and the gate's own config 2026-08-22 14:59:27 +02:00
md_naming Add the shared markdown-naming gate and migrate utils' own docs 2026-08-24 15:53:12 +02:00
prompts Add the shared markdown-naming gate and migrate utils' own docs 2026-08-24 15:53:12 +02:00
scripts Script the gate rollout instead of hand-copying it into sixteen repos 2026-08-28 14:12:00 +02:00
sync_settings_ui Move the two in-repo consumers onto crdt_sync_dart-v0.11.1 2026-08-28 14:08:28 +02:00
ts_core ts_core + web_ui: latest stable, pnpm 11, and a quarantine-aware gate 2026-08-28 13:50:25 +02:00
unified-design-system Fix two long-red CI gates: palette_check path after md rename, file-length in sync_settings_ui 2026-08-28 12:36:41 +02:00
vmbox Add the shared markdown-naming gate and migrate utils' own docs 2026-08-24 15:53:12 +02:00
web_ui ts_core + web_ui: latest stable, pnpm 11, and a quarantine-aware gate 2026-08-28 13:50:25 +02:00
.gitignore Ignore Firebase CLI debug logs 2026-08-22 16:17:39 +02:00
.pre-commit-config.yaml Check the toolchain versions CI actually installs, not just the ones declared 2026-08-28 15:04:00 +02:00
dependency-freshness.allowlist.yaml Make the allowlist inheritable, and cache the quarantine lookups 2026-08-28 13:58:44 +02:00
LICENSE Root scaffold: README, LICENSE, per-subdirectory CI for utils monorepo 2026-07-10 13:02:20 +02:00
README.md Add the shared markdown-naming gate and migrate utils' own docs 2026-08-24 15:53:12 +02:00

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:

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:

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 and DOCS-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.