#### Context Replace the custom Elixir observability TCP server with Phoenix while keeping the shipped escript and existing operational API calls working the same way they did before. #### TL;DR *Move the Elixir observability dashboard and API onto Phoenix without breaking the escript or curl workflows.* #### Summary - replace the custom HTTP server with a Phoenix endpoint, router, controller, and shared presenter - add a LiveView operations dashboard with PubSub-driven updates and embed its CSS and JS assets in code - preserve runtime compatibility by accepting form-style POSTs and extending the endpoint coverage around those paths #### Alternatives - keep extending the hand-rolled TCP server, but that keeps custom parsing and routing complexity in the app - serve dashboard assets from priv directories, but the shipped escript cannot rely on those files existing on disk #### Test Plan - [x] `make -C elixir all` - [x] `mix -C elixir test test/symphony_elixir/extensions_test.exs` - [x] `./bin/symphony --i-understand-that-this-will-be-running-without-the-usual-guardrails --port 40123` - [x] `curl -si http://127.0.0.1:40123/dashboard.css` - [x] `curl -si http://127.0.0.1:40123/vendor/phoenix/phoenix.js` - [x] `curl -si -X POST -d '' http://127.0.0.1:40123/api/v1/refresh` - [x] `curl -si -X POST -d '' http://127.0.0.1:40123/api/v1/state` --------- Co-authored-by: Codex <codex@openai.com> |
||
|---|---|---|
| .. | ||
| config.exs | ||