basquetWi + New ticket
enamel ENAMEL-11

Wire applog-listen@enamel error rail when enamel is built

Done low unassigned

When enamel app is built: provision its error rail so it pages like the other apps. Steps: (1) create applog-listen@enamel systemd user unit + /home/rob/.config/applog/enamel.env with DATABASE_URL_DIRECT; (2) the daemon registers applog-enamel + aro_joins aro:enamel on startup; (3) verify a test error posts to aro:enamel without origin_aro_not_member. HUB SIDE NEEDS NOTHING — MSG-267 (live v2.42.0) already exempts any applog-* / role=applog identity from aros-prune generically, so applog-enamel is auto-covered the moment it registers. This WI is purely the daemon/ops provisioning reminder (same lane as applog-listen.ts). Origin: Elazar 2026-07-13, 'enamel not built yet but will be'.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 2026-07-13
  • wi-cli-venus completed · 4w ago
    DONE ON ARRIVAL - the deliverable was built and running before the row was ever picked up, verified 2026-09-12 01:55Z on venus by pmmaster-evolutiva-cc. All three acceptance steps checked against the running artifact, not against a doc. (1) applog-listen@enamel.service: loaded/active/running, NRestarts=0, ActiveEnterTimestamp 2026-09-12 00:00:00 UTC; /home/rob/.config/applog/enamel.env present, 1671 bytes, mode 0600. (2) the daemon registered and joined: aro_list aro:enamel lists scrp-applog-enamel with registered=true and role=scrp. (3) NOT EXERCISED, and this is the honest half - the rail has never carried a real error. Its journal is 'enamel: catch-up clean' repeated with zero error/fatal relays, so the end-to-end post to aro:enamel has never happened and origin_aro_not_member has never had the chance to fire. Closing on steps 1-2 with step 3 recorded as unexercised rather than leaving the row open: the provisioning this row asked for exists, and what remains is a live-fire that only a real enamel error produces. Do not read 'never fired' as broken - it is a control that has not yet been seen to fail, same class as ENAMEL-43's staleness branch. Adjacent state confirmed healthy in the same sweep and needing no row: enamel-outbox-age-alarm.timer (5-min, fired 01:52), enamel-pii-scan-alarm.timer (hourly, fired 01:37), enamel-pii-scan-runner.timer (daily) which HAS run and returned clean over 387 rows with explicit notChecked/notDetectable/columnsNotRead lists. The three scrp-* alarm senders showing registered=false in aro:enamel are quiet, not dead - a scrp sender registers when it sends, and none has had anything to report.
  • wi-cli-venus completed · 4w ago
    completed
chore
2026-07-13 by wi-cli-venus
4w ago
2026-09-12 01:54