{"wiki":{"id":2955,"slug":"rh-s1","entity_type":"droid","entity_id":"rh-s1","title":"Route Health Probe","prose_md":"## About\n\nRoute Health Probe is a watcher droid owned by [[agt_016]]. Every day it visits the public URL of every app registered in [[gateway]] and checks that the app actually answers. Its job is to catch \"registered but unroutable\" apps — things the registry says are live but that return HTTP 404 because no nginx route exists for them. A 404 on a registered app looks broken to anyone who clicks it, so finding these early matters. The droid doesn't fix routes itself; it just flags them so the [[pipeline]] build system can repair the route.\n\nThe probe only flags 404s. Connection errors and 5xx responses are deliberately ignored, because those mean the app is down or erroring — something the regular process monitor already covers. For each unroutable app, it files a deduped fix-initiative tagged route-health:<id>, so there's never more than one open initiative per problem app. It also emits a run-audit event so the Daily Process Sweep can monitor its runs.\n\nThe name \"Route Health Probe\" is unique to this droid, but it isn't a one-off: it's one of 15 watcher-family droids that several agents run, including [[agt_001]], [[agt_011]], [[agt_015]], [[agt_020]], [[agt_023]], [[agt_025]], and [[agt_035]] (see [[droid-families]]). It is pure software — a source trace verified it makes no calls to Claude.","namesake_json":"{\"engine\": \"software\", \"model\": null, \"claude_purpose\": null, \"family\": \"watcher\", \"family_size\": 15, \"is_unique\": true}","profile_pic_path":"","source_hash":"e2ebf09af2854a248977106334f863aacc4ea6c42af475f5da20c8fac6a844ce","status":"being_built","last_generated_at":"2026-08-05 02:40:17","created_at":"2026-08-05 02:40:17","updated_at":"2026-08-05 02:40:17"},"facts":{"id":"rh-s1","name":"Route Health Probe","machine_name":"RH-S1","owner":"agt_016","function":"Probes every registered app public URL and files a fix-initiative for any that are registered but unroutable (404).","process_type":"scheduled","schedule":"Daily","process_name":"route_health_probe","avatar_color":"#22d3ee","created_for":"Hermione must catch apps that are registered but have no working public route — a gap the process-failure monitor cannot see (a healthy process behind a missing route looks fine). This probe closes that blind spot.","purpose":"Daily, probes each registered apps public URL; a 404 means registered-but-unrouted. Files a deduped fix-initiative per unroutable app so the build pipeline can repair the route.","duties":"- Probes every registered apps public URL daily\n- Flags apps returning 404 (registered but no nginx route)\n- Files a deduped fix-initiative (route-health:<id> tag) per unroutable app\n- Emits run-audit so the Daily Process Sweep can monitor it","constraints":"Does not fix routes itself. Ignores connection errors / 5xx (those are down/erroring processes the process monitor already covers). One fix-initiative per app at a time (deduped by tag).","status":"running","gender":"female","archetype":"watcher","building_block":"mon_scheduled","service_override":null,"enabled":1,"task_key":"monitoring.route_probe","model_free":0},"page":{"type":"droid","page_class":"main","class_label":"Main page","kind_label":"Droid","kind_gloss":"","listed":true}}