Go to file
Krzysztof kuhy Rudnicki 3acf913b32
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
dep_freshness: pool every Maven repo; resolve each host once; retry EAI_AGAIN
Three findings from proving the JitPack fix on the TachiyomiSY gate:

- The first repository with a stable answer used to win. Central still
  carries com.github.ben-manes:gradle-versions-plugin 0.11.1 (2016) while
  the plugin portal has 0.54.0, so a 0.51.0 pin graded "current". Every
  repository is now asked and the newest stable across the pooled lists is
  the answer.
- ~900 lookups, eight at a time, each resolving the registry host (A+AAAA)
  per connection: the LAN router's forwarder started dropping queries for
  every client on the LAN and the gate degraded itself. socket.getaddrinfo
  is memoised per (host, port, hints) for the run, and the per-host probe
  runs under a lock so eight workers make one probe, not eight.
- A resolver EAI_AGAIN ("temporary failure") during the probe marked the
  registry unreachable for the whole run. The probe retries it
  HTTP_ATTEMPTS times; a permanent failure still fails immediately.

Both retry loops lost their unreachable `return` sentinel (http.py is at
100% branch now); the resolver tests live in test_http_resolver.py to keep
test_http.py under the 250-line cap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016P4KZw1E2sXJjYqfcZWf1x
2026-09-18 12:08:41 +02:00
.github/workflows gatelock: annotate a fixture param ruff 0.16.8 now flags; TS workflows dispatchable 2026-09-16 21:53:47 +02:00
aur-publish Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 18:45:55 +02:00
crdt_sync_dart Bump node, ruff, types-requests and dart test to latest stable 2026-09-12 17:42:29 +02:00
crdt_sync_flutter ci: install the linked preset's deps before linting ts_core/web_ui; deps green 2026-09-16 21:50:13 +02:00
crdt-sync ci: install the linked preset's deps before linting ts_core/web_ui; deps green 2026-09-16 21:50:13 +02:00
dep_freshness dep_freshness: pool every Maven repo; resolve each host once; retry EAI_AGAIN 2026-09-18 12:08:41 +02:00
design_system Move the Dart packages to very_good_analysis 11 2026-09-12 17:44:34 +02:00
dopamine-ux Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 19:07:23 +02:00
file_length file_length: match repo exemptions without PurePath.full_match (3.13-only) 2026-09-12 19:04:36 +02:00
firebase firebase: make the rules template impossible to deploy verbatim 2026-08-22 19:10:10 +02:00
freedays ci: install the linked preset's deps before linting ts_core/web_ui; deps green 2026-09-16 21:50:13 +02:00
gatelock gatelock: annotate a fixture param ruff 0.16.8 now flags; TS workflows dispatchable 2026-09-16 21:53:47 +02:00
github_device_auth Move the Dart packages to very_good_analysis 11 2026-09-12 17:44:34 +02:00
guard-lib Split the two shell scripts and the gate's own config 2026-08-22 14:59:27 +02:00
home_paths Gate home-relative paths against the ~ layout 2026-09-12 17:10:20 +02:00
md_naming Match dated backups by shape, not by hardcoded name 2026-09-12 17:12:02 +02:00
music_theory ci: install the linked preset's deps before linting ts_core/web_ui; deps green 2026-09-16 21:50:13 +02:00
prompts Re-point paths for the ~ reorganisation (home-tidy) 2026-09-11 18:45:55 +02:00
scripts Gate home-relative paths against the ~ layout 2026-09-12 17:10:20 +02:00
sync_settings_ui Move the Dart packages to very_good_analysis 11 2026-09-12 17:44:34 +02:00
ts_config ts_config 0.1.2: React-layer carve-outs for JSX arrow returns and *Ref names, knip base trimmed, fromBase64 off 2026-09-16 22:53:21 +02:00
ts_core ts_core: lockfile records the pnpm 12.4.2 pin 2026-09-16 21:59:01 +02:00
unified-design-system Repair the two CI signals gatelock 0.8.x broke, and drop its finished pylint TODO 2026-09-12 20:13:53 +02:00
vmbox vmbox: single-stream pacman downloads, slirp stalls concurrent TCP 2026-09-14 22:14:42 +02:00
web_ui ts_core 0.1.1, web_ui 0.4.0: consume @kuhyx/ts-config 2026-09-16 21:46:41 +02:00
.gitignore Ignore Firebase CLI debug logs 2026-08-22 16:17:39 +02:00
.pre-commit-config.yaml Gate home-relative paths against the ~ layout 2026-09-12 17:10:20 +02:00
dependency-freshness.allowlist.yaml allowlist: typescript hold now names typescript-eslint 8.70.0 2026-09-11 13:48:01 +02:00
LICENSE Root scaffold: README, LICENSE, per-subdirectory CI for utils monorepo 2026-07-10 13:02:20 +02:00
README.md ts_config: @kuhyx/ts-config, the one lint/TS bar every TypeScript repo extends 2026-09-16 21:40:08 +02:00
TODO-pylint-fail-under-10.md Add a session prompt to raise pylint --fail-under from 8.0 to 10 fleet-wide 2026-09-12 18:37:33 +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

music_theory/

Music theory from first principles as typed Python (package: music_theory, not published to PyPI): pitch, tuning, scales, chords, progressions, a numpy synth and a Recipe → WAV composer with a degrade transform. Follows Luke Haas's "Music Theory for Programmers" section by section; python -m music_theory demo all --out DIR renders one WAV per section. Consumed by roadside-assistance for its three world-state music beds.

Consume via:

music_theory @ git+https://github.com/kuhyx/utils@music-theory-v0.1.0#subdirectory=music_theory

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.

ts_config/

@kuhyx/ts-config — the one lint / TypeScript bar every kuhyx TypeScript repo extends (pnpm only, like ts_core and web_ui). A strict tsconfig.base.json, ESLint flat-config presets (defineConfig() stacking base / react / vitest / playwright / layer boundaries()), a type-free eslint/fast subset for editor hooks, and Knip / jscpd / Stryker bases. Plain JS, no build step; the git tag is the release. Every plugin is a dependency of the package so consumers list none. A fixture repo with one planted violation per rule family proves each gate bites.

"devDependencies": {
  "@kuhyx/ts-config": "github:kuhyx/utils#ts_config-v0.1.0&path:/ts_config"
}