The five UI items in TODO.md become an executable pipeline. Planning files only — no application code changed. - 01_severity_language: one Python threshold table + `severity` on the values the pages colour, plus the .hero style. Today the thresholds are magic numbers at six JS call sites (75/90 here, 80/92 there), which is exactly how "same colour, four meanings" happens. - 02_overview_fleet_and_alerts: /api/summary gains a derived `alerts` list; the page drops to fleet + warnings. Unconfigured sources must not alert — that is invariant 3, tested. - 03_system_per_host_panels: per-host hero cards, no per-core, shared multi-host charts and the detail picker deleted. The six card metrics already exist in the payload, so the first task pins them with tests instead of inventing fields. - 04_llm_chart_readability: charts.js already exports sparkline() and no page calls it — that is why the page reads flat. Port llm_monitor's drawSpark behaviour (fixed max, right growth, p95 foots) and keep the provenance tags. - 05_ups_hero_battery_glyph: charge/load/runtime hero + an SVG battery whose fill is the charge, verified against both real UPSes and the low-charge/on-battery states only the simulator can produce. PLAN.md records the ratified anchors and the deviation worth knowing: severity vocabulary is ok|warn|fail, matching dash.css and nut.py, not the "danger" wording in the proposal — one synonym for one colour. TODO.md cleared to a bare heading; the items are now phases. .gitignore stops ignoring all of .agents/ (the roadmap is project history) while keeping phase-sessions/ and pipeline.log out. deploy/nut-sudoers rewritten: its header still blamed a port mystery that is solved; the remaining need is reading upsd.users so adding a scoped dashboards user does not delete the accounts upsmon authenticates as. LLM-Generated: true
42 lines
990 B
Plaintext
42 lines
990 B
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
.venv/
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
.coverage
|
|
coverage.xml
|
|
htmlcov/
|
|
*.egg-info/
|
|
|
|
# Local state: the SQLite history DB and anything else runtime-written
|
|
data/
|
|
*.sqlite3
|
|
*.sqlite3-wal
|
|
*.sqlite3-shm
|
|
|
|
# Secrets / local config — never commit. The `.example` files are documentation, so they
|
|
# are un-ignored explicitly: `.env.*` would otherwise swallow them and a fresh clone would
|
|
# have no annotated list of what to set.
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
!.env.dev.example
|
|
|
|
# Agent binaries staged for deployment
|
|
agent/*.tar.gz
|
|
|
|
# Editor / OS
|
|
.vscode/
|
|
.idea/
|
|
.DS_Store
|
|
|
|
# Agent/pipeline scratch ONLY. The planning tree (.agents/PLAN.md, .agents/phases/) is
|
|
# tracked on purpose — it is the project's roadmap and history, not throwaway state.
|
|
.agents/phase-sessions/
|
|
.agents/pipeline.log
|
|
|
|
# The original brief for this project. Kept in the checkout as local context, not history:
|
|
# README.md and AGENTS.md carry the decisions that came out of it.
|
|
original_prompt.txt
|