dashboard/hermes-wrapper/plugin_api.py imports embed_proxy inside try: and, under except ImportError ("Hermes deploys this file alone"), redefines all of it: dashboard_upstream (the launch-URL token to Basic credential conversion from #2435), embed_upstream_path, is_html_content_type, is_event_stream, the bridge script, and rewrite_dashboard_html.
The installer (crates/tracedecay-agent-hosts/src/agents/hermes/dashboard_wrapper.rs) embeds and deploys only plugin_api.py, so the except copy is what production runs. test_embed_proxy.py exercises only embed_proxy.py, and no CI job or script runs it. The shipped path therefore has no test, and the two copies can drift; they already differ in docstrings.
Fix: deploy embed_proxy.py beside plugin_api.py, delete the fallback copy, and run test_embed_proxy.py in a gate. The installer belongs to the agent-hosts lane.
Found by the legacy-api-sweep lane.
dashboard/hermes-wrapper/plugin_api.pyimportsembed_proxyinsidetry:and, underexcept ImportError("Hermes deploys this file alone"), redefines all of it:dashboard_upstream(the launch-URL token to Basic credential conversion from #2435),embed_upstream_path,is_html_content_type,is_event_stream, the bridge script, andrewrite_dashboard_html.The installer (
crates/tracedecay-agent-hosts/src/agents/hermes/dashboard_wrapper.rs) embeds and deploys onlyplugin_api.py, so theexceptcopy is what production runs.test_embed_proxy.pyexercises onlyembed_proxy.py, and no CI job or script runs it. The shipped path therefore has no test, and the two copies can drift; they already differ in docstrings.Fix: deploy
embed_proxy.pybesideplugin_api.py, delete the fallback copy, and runtest_embed_proxy.pyin a gate. The installer belongs to the agent-hosts lane.Found by the legacy-api-sweep lane.