diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ce0e903 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,31 @@ +name: CI + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Install & test engine-bridge + working-directory: engine-bridge + run: | + npm ci + npm test --silent + + - name: Setup Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - name: Test engine-core (Rust) + working-directory: engine-core + run: cargo test --locked --verbose diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..0f2b4b9 --- /dev/null +++ b/TODO.md @@ -0,0 +1,15 @@ +# Task #69 β€” Circuit breaker checks + enhanced event processing + +- [ ] Gather repo context: circuit breaker usage in engine-core; event processing flow in engine-bridge; dashboard wiring +- [ ] Resolve discrepancies found in current code (e.g., EventPropagator/HeartbeatMonitor API mismatches) +- [ ] Implement/verify circuit breaker checks integration (contract-side already present; ensure any missing entry-points call assert_closed) +- [ ] Enhance event processing reliability: + - [ ] Ensure max-events-per-cycle enforced in both normal processing and recovery + - [ ] Fix cursor persistence / heartbeat visibility (EventPropagator.isRunning usage) + - [ ] Ensure RPC endpoint probing and status reporting are exposed/used correctly + - [ ] Confirm queue processing error isolation + retries behavior +- [ ] Run tests/build: + - [ ] cargo test (engine-core) + - [ ] npm test/build (engine-bridge, dashboard) +- [ ] Finalize by ensuring TypeScript compile passes and tests are green + diff --git a/dashboard/src/App.tsx b/dashboard/src/App.tsx index 4021995..59c1ecd 100644 --- a/dashboard/src/App.tsx +++ b/dashboard/src/App.tsx @@ -1,6 +1,7 @@ import { useState, type ReactNode } from 'react'; import { Shield } from 'lucide-react'; import { ThemeToggle } from './components/ThemeToggle'; +import GuardianConfigForm from './components/GuardianConfigForm'; import { GuardianConfigForm } from './components/GuardianConfigForm'; import { Tabs, type TabDescriptor } from './components/Tabs'; import { RpcSettings } from './components/RpcSettings'; @@ -68,6 +69,10 @@ function App() { > + +
+ +