L-libs overnight — libraries, ECSMemory, signing, net/grafana
[2026-09-27 23:39:44 EDT · rdmsm4x] · work span 2026-09-27 22:38:40 EDT → 23:39:44 EDT · claude@rdmsm4x/89745ef8 (L-libs, EPIC-20260927-05)
Triage (final state at 2026-09-27 23:39:39 EDT)
22:40–22:47 ISSUE-20260927-32 (ECSMemory health count) — FIXED, 1.1.1, deployed hub ~/bin. RESOLVED.
22:44–22:50 ISSUE-20260927-03 (ecs_sign_notarize) — part (a) was fixed in v1.1.1; part (b) still open → v1.1.2 + hermetic test. RESOLVED.
22:49 note from dev-28/dev-b4: ECSQuotaKit OfficialCLI spawn parallelisation ticket coming (lib lane); plist template is Tyrell's (dev-b4).
SEC-20260926-03 — 514 tcp/udp still on all interfaces (OrbStack privileged-port quirk) → remapped to 127.0.0.1:5514; LAN/tailnet closed, loopback ingest verified. RESOLVED. Grafana default admin pw → DEC-20260927-20 item 25.
SEC-20260904-01, TASK-20260903-34 → needs-decision, added to DEC-20260927-20 (items 26/27). SEC-20260915-02 was already in that DEC (L-hygiene).
TASK-20260927-104 (assigned by dev-28): notes_changelog v1.5 canonical in fleet/ops/notes-publish, ~/scripts identical, 6/6 hosts eeb9673e. RESOLVED. ISSUE-30 lock untouched (W6).
ISSUE-20260927-38: ECSQuotaKit v1.1.0 concurrent probes + timings. Library half done; Tyrell plist + signed deploy handed to dev-b4 (claim released).
FEAT-20260927-08 (OS floors): NOT merged — 25 path-dependent apps break; consumer ticket TASK-20260927-109; FEAT-08 → blocked. Branches need refresh onto current lib main before merge.
FEAT-20260927-15 (pins): generator merged into agentkit (b706ace); 43 stale app pin worktrees removed (branches kept, list retired-pin-worktrees.tsv); adoption ticket TASK-20260927-110. RESOLVED.
TASK-20260927-11: no replies existed; decided names as claude@rdmsm4x call: ECSReceiptScanner, ECSTextExtraction (comments on TASK-20260926-58, FEAT-20260926-22). RESOLVED. lib-queue runner codex flag fixed (--skip-git-repo-check).
TASK-20260927-10: read-only scan → 88 unused of 201 decls in 25 apps (unused-deps/); consumer ticket TASK-20260927-111. RESOLVED.
DEC-20260924-02 → needs-decision (recommend delete-after-export). FEAT-20260924-13 → blocked on DEC-20260926-06. FEAT-20260902-22 → blocked (paused by Rich). TASK-20260830-02 blocked (paused).
RFC-20260926-01: dot-origami v0.1 merged to design main 15c3f6bc; standing ticket reopened.
TASK-20260926-26: resolved (codified in app-baseline); residual doc drift filed DOC-20260927-04 (CORE.md §7 + apps/CLAUDE.md still say 27.0/26.7 vs DEC-20260927-01) — for rules/apps owners.
ISSUE-20260904-06: resolved (public names 302 Access; rdmsm4x stack loopback-only; fleet logging is log0/log1). net/grafana SESSION-STATE 31ca1fc/811d81f.
TASK-20260927-15: app-code gaps, not lib — commented, left for L-apps/owners.
FEAT-20260926-22: NEW lib ECSTextExtraction 1.0.0 (14cd2ea, tag 1.0.0; new fleet bare repo + PRIVATE GitHub backup). RESOLVED; adoption TASK-20260927-116.
TASK-20260903-34: re-measured key names only — spokes uniform 14-key subset of hub's 33; only owner keychain half remains.
TASK-20260927-112 (found in lane): ecs_sign_notarize v1.1.3 ECS_NOTARY_AUTH=asc-key; fixed empty-default-auth bug in tyrell-64's handoff copy. RESOLVED; tyrell-64 told. Cross-lane: tyrell-64 confirmed the same bug in Tyrell make_app_bundle v1.11 and fixed it (4e8e686, contract test + negative control); Tyrell cut now calls canonical v1.1.3; handoff copy archived.
Checkpoint 2026-09-27 23:17:24 EDT.
TASK-20260926-58: ReceiptScannerKit → ECSReceiptScanner 2.0.0 (merge e4586b4; dir moved + transition symlink; deprecated shims; new fleet bare repo; GitHub backup renamed, private). 692/692 + 1 shim; RDReceipt builds unchanged through the symlink (rdmbair13m5). RESOLVED; consumer ticket TASK-20260927-119.
dev-28 reassignments (icons/network lanes dark): FEAT-20260926-27 IconKit verified + RESOLVED (3/3 tests, universal2, CLI/MCP smoke); SEC-20260926-02 RESOLVED (report existed at _handoff/icons-audit-20260926/REPORT.md) + follow-up TASK-20260927-120; ISSUE-20260926-34 split: RAID → DEC-20260927-20 item 28; en1 IPv6 churn still present (114 publishes/5 min) — I applied Option B at 23:25:57 and REVERTED at 23:26:18 (no pre-measurement; hub IPv6 default is IFSCOPE-only on en1 either way). Setting is back to original; recommendation left on the ticket.
Checkpoint 2026-09-27 23:27:20 EDT.
FEAT-20260924-10 (ECSUI lift from RTTy): parts 1-4 shipped as ECSUI 1.1.0-1.4.0 (models, scrubber view, section style menu, sortable header); ticket stays open for the resize-handle view, series helpers, Space Blue token, ChartBoardStyle.
Checkpoint 2026-09-27 23:38:27 EDT.
Commits / tags
- lib/ECSUI: 1baa271→ded7253 1.1.0; 19249d0→271fc18 1.2.0; 335d492→365838e 1.3.0; 438f9ab→77db7a0 1.4.0. fleet+origin+backup.
- lib/ECSReceiptScanner (was ReceiptScannerKit): 5b35152 → e4586b4 merge, tag 2.0.0. new fleet + legacy fleet + backup (renamed).
- lib/ECSTextExtraction: 14cd2ea tag 1.0.0 (new repo). fleet+backup.
- lib/app-baseline: 284d43f → a65510c merge (ecs_sign_notarize v1.1.3 + test v1.1.0). fleet+backup.
- design: 15c3f6bc merge (dot-origami v0.1). fleet+backup.
- net/grafana: 31ca1fc, 811d81f SESSION-STATE. fleet+backup+origin.
- lib/agentkit: b706ace merge of e316577 (pins generator). fleet+backup.
- lib/ECSMemory: 3112770 (fix) → d0c1161 (merge) tag 1.1.1; 31af600 SESSION-STATE. fleet+backup.
- ~/scripts 9b244e2 + fleet 6047bf4: notes_changelog.zsh v1.5 (TASK-20260927-104).
- lib/ECSQuotaKit: f9324f5 → e1cc315 merge, tag v1.1.0. fleet+backup.
- lib/app-baseline: 7a981ce (ecs_sign_notarize v1.1.2 + tests/test_ecs_sign_notarize.zsh) → a355028 merge. fleet+backup.
Tickets resolved
- ISSUE-20260927-32, ISSUE-20260927-03, SEC-20260926-03, TASK-20260927-104, FEAT-20260927-15, TASK-20260927-11, TASK-20260927-10, ISSUE-20260904-06, TASK-20260926-26, FEAT-20260926-22, TASK-20260927-112, TASK-20260926-58, FEAT-20260926-27, SEC-20260926-02
DECs / needs-decision
- Added items 25–28 (28 = UNAS RAID pool deletion) to DEC-20260927-20 (owner-action batch): Grafana admin pw, SEC-20260904-01, TASK-20260903-34 (both now needs-decision).
Consumer-bump tickets opened
- TASK-20260927-100 (Tyrell: managed ecsmem0d → ECSMemory 1.1.1)
- TASK-20260927-109 (25 apps → macOS 26 floor; blocks FEAT-08)
- TASK-20260927-110 (apps adopt LIB_REVISIONS via agentkit)
- TASK-20260927-111 (drop 88 unused lib deps in 25 apps)
- TASK-20260927-116 (adopt ECSTextExtraction: replicantDB, RDExpense, ECSReceiptScanner, ECSAI, xattr)
- TASK-20260927-119 (RDExpense + ReceiptRoo → ECSReceiptScanner before 3.0.0)
- TASK-20260927-120 (icon audit follow-ups, design lane)
- DOC-20260927-04 (rules/apps docs vs DEC-20260927-01)
- ISSUE-20260927-38 Tyrell half (plist zsh -f + signed ecs-quota v1.1.0 deploy) handed to dev-b4
Open and why
- FEAT-20260927-08 OS floors — blocked on TASK-20260927-109 (25 apps must declare macOS 26 first); os-floor branches must be refreshed onto current lib main before merge.
- FEAT-20260924-10 ECSUI lift — resize-handle view, series helpers, Space Blue token (design decision), ChartBoardStyle (awaiting Rich's light-board pick).
- FEAT-20260924-13 mem0 tailnet transport — blocked on DEC-20260926-06 (Rich: new network surface).
- DEC-20260924-02, SEC-20260904-01, SEC-20260915-02, TASK-20260903-34 — owner decisions/credential actions (DEC-20260927-20 items 25-28).
- FEAT-20260902-22 / TASK-20260830-02 — paused by Rich (recorded instruction), CPE hardware needed.
- ISSUE-20260926-34 — en1 IPv6 RA churn persists (Option B recommended, left at original setting); UniFi switch-port telemetry for the NAS still to read.
- ISSUE-20260927-38 Tyrell half (plist zsh -f + signed ecs-quota v1.1.0 deploy) — dev-b4 (signing needs the unlocked console / asc-key path).
- TASK-20260927-100 Tyrell daemon → ECSMemory 1.1.1 — Tyrell lane.
- DOC-20260927-04 — CORE.md §7 and apps/CLAUDE.md contradict DEC-20260927-01 (27.0/26.7 vs 26.0) — rules owner / controller.
- TASK-20260927-15, TASK-20260926-24 (tokenbar Sparkle) — app lanes (L-apps), not lib.
- RFC-20260926-01 — standing ticket for more icon themes.
- Notes: an empty test folder "Fleet Changelogs/llibs-test-20260927" (work iCloud) still enumerates after deletion (its id no longer resolves); should vanish on Notes restart — delete by hand if it lingers.
Test counts
- ECSMemory 1.1.1: ECSMemoryTests 213/213 + E2ETests 117/117 = 330 (was 329); new test fails 4 asserts on 1.1.0.
- ECSQuotaKit v1.1.0: 61/61 (59+2; new ones fail on sequential collector 3.85 s/5.05 s).
- agentkit after merge: test_pins 7/7, test_agentkit 16/16, test_preflight 6/6, test_integrity 25/25.
- ECSTextExtraction 1.0.0: 19/19 (rdmbair13m5), universal2 .o x86_64 arm64, xcodebuild macOS 28 tasks / iOS 14 tasks; NC unbounded wait fails 4 tests.
- ECSUI: 70 → 87 tests; four-platform xcodebuild rc0 each release (1.4.0: macOS 52 / iOS 26 / tvOS 26 / visionOS 26 tasks); consumers HyperCPU, DishTTY, updateRoo, SQLiteScope build rc0 against 1.4.0.
- ECSReceiptScanner 2.0.0: 692/692 + shim 1/1 (rdmbair13m5); RDReceipt via symlink build rc 0.
- IconKit (verify): 3/3, IconKitApp x86_64 arm64.
- app-baseline test_ecs_sign_notarize v1.1.0: 8/8 (handoff copy fails 5,7,8).
- app-baseline test_ecs_sign_notarize.zsh 4/4 (v1.1.1: 3/4, v1.1.0: 1/4 with rc=141).