diff options
Diffstat (limited to '.github/instructions')
| -rw-r--r-- | .github/instructions/frontend.instructions.md | 14 | ||||
| -rw-r--r-- | .github/instructions/python-backend.instructions.md | 13 | ||||
| -rw-r--r-- | .github/instructions/rust-backend.instructions.md | 12 |
3 files changed, 39 insertions, 0 deletions
diff --git a/.github/instructions/frontend.instructions.md b/.github/instructions/frontend.instructions.md new file mode 100644 index 0000000..7ce27c0 --- /dev/null +++ b/.github/instructions/frontend.instructions.md @@ -0,0 +1,14 @@ +--- +description: "Use when editing the React frontend, polling hooks, SSE hooks, or display components under frontend/src. Covers data flow, backend assumptions, and styling boundaries." +name: "Frontend Data Flow" +applyTo: + - "frontend/src/**/*.js" + - "frontend/src/**/*.css" +--- +# Frontend Data Flow + +- Keep data fetching in hooks or small container components. `Path.js`, `Info.js`, `Log.js`, and `Options.js` wire backend data into display components; `usePolling.js` and `useSSE.js` own subscription cleanup. +- Preserve the current backend contract unless the task explicitly coordinates with backend changes. The frontend is hardcoded to `http://localhost:8000`, not the Rust backend on `:8080`. +- Keep display components render-focused. Formatting, icons, animation, and simple click handlers belong near `DataDisplay.js`, `InfoDisplay.js`, and `LogComponent.js`; reusable network behavior belongs in hooks. +- Stick to the current stack: React function components, Tailwind utility classes, and local CSS files. Do not introduce a new state library, routing layer, or styling system unless asked. +- If you add polling or SSE behavior, always include cleanup and keep the return shape simple for the consuming component.
\ No newline at end of file diff --git a/.github/instructions/python-backend.instructions.md b/.github/instructions/python-backend.instructions.md new file mode 100644 index 0000000..6bb9158 --- /dev/null +++ b/.github/instructions/python-backend.instructions.md @@ -0,0 +1,13 @@ +--- +description: "Use when editing the Python backend, FastAPI endpoints, ESI integration, or route-planning modules under backend/src. Covers service boundaries, side effects, and runtime assumptions." +name: "Python Backend Boundaries" +applyTo: "backend/src/**/*.py" +--- +# Python Backend Boundaries + +- Keep `backend/src/main.py` thin. Add request/response wiring there, but keep orchestration in `backend/src/manager.py`. +- Keep live ESI calls, token refresh, waypoint updates, and market-window side effects inside `backend/src/esi/`. Do not introduce direct ESI `requests` calls in `graph.py`, `market.py`, `arbitrage.py`, `pathfinder.py`, or `route.py`. +- Treat `Manager` as the mutable state boundary. If you add background work, keep thread and polling ownership explicit instead of spreading shared state across modules. +- Preserve the current data-oriented style in the route-planning pipeline: dataclasses, module-level constants, and functions that transform orders, trades, and graph data. +- The active frontend depends on `/route`, `/route_info`, `/create_route`, `/data_stream`, and `/open_market_window/{type_id}` on `http://localhost:8000`. Keep those contracts stable unless the task includes coordinated frontend changes. +- ESI-backed code needs local auth and data files that are not checked in. Avoid assuming clean-room execution unless the task is specifically about environment setup.
\ No newline at end of file diff --git a/.github/instructions/rust-backend.instructions.md b/.github/instructions/rust-backend.instructions.md new file mode 100644 index 0000000..719544a --- /dev/null +++ b/.github/instructions/rust-backend.instructions.md @@ -0,0 +1,12 @@ +--- +description: "Use when editing the Rust backend, Actix handlers, EVE service client, or pathfinding and market modules under rust_backend/src. Covers experimental status, service boundaries, and integration gaps." +name: "Rust Backend Boundaries" +applyTo: "rust_backend/src/**/*.rs" +--- +# Rust Backend Boundaries + +- Treat `rust_backend/` as an experimental rewrite, not a drop-in replacement for the Python backend. The current frontend does not target it. +- Keep `main.rs` as a thin Actix entrypoint. Shared state and polling belong in `manager.rs`; ESI and OAuth transport belongs in `eve_service.rs` and `eve_api.rs`. +- Keep `pathfinding/` and `market/` self-contained. Avoid pulling HTTP concerns, UI assumptions, or Actix types into those modules. +- Do not assume feature parity with the Python backend. If a task requires frontend integration, add the missing routes, payload shapes, and CORS deliberately rather than silently reusing Python assumptions. +- Rust runtime work depends on local OAuth env vars (`CLIENT_ID`, `CLIENT_SECRET`, `CHARACTER_ID`, `REDIRECT_URL`) and `token.json`. Preserve that flow unless the task is specifically about changing auth setup.
\ No newline at end of file |
