Core styles.css ships a global button { background: var(--accent);
color: #fff } primary rule. The ops overrides reset background to
var(--surface) (white) but inherited color: #fff, leaving white text
on a white background until the hover rule swapped color to accent.
Explicitly sets color on .card-actions / .row-actions / .form-actions
buttons and reshapes .toolbar so the "+ 新增" stays primary (filled
accent) and .secondary toolbar buttons get the white-with-accent-hover
treatment.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds Monitor/Config tab switcher. Config view splits into stations
panel (inline create/edit/delete + per-station signal binding expand)
and segments panel (inline create/edit/delete + expandable detail with
step add/delete, interlock add/delete, and resource-keys replace).
UI talks to the existing ops CRUD endpoints exclusively; no engine
changes. node --check passes for all eight ops JS modules; backend
tests still green. Browser verification still required end-to-end.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the ops UI placeholder with a single-panel monitor: fetches
/api/runtime/overview to render one card per segment with state badge,
current step, fault / block note, and per-card Start / Stop / Ack-Fault
/ Reset buttons plus batch start/stop. WebSocket subscriber routes
app_event(app=operation-system, event_type=segment_runtime_changed)
into in-place card updates with exponential reconnect.
Note: UI not verified in-browser; the engine + WebSocket plumbing has
unit + smoke test coverage but the page itself needs runtime
validation by running app_operation_system and visiting /ui/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The web/core, web/feeder, and web/ops directories were mistakenly
committed as deletions. Restore from f8757a7.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Clean up old web module files that were superseded by the per-app
split architecture. Includes plan documentation for the migration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>