26 Commits

Author SHA1 Message Date
f85c3ef781 M3: Go API per UI contract, embedded UI, openapi compat check, nmon-devtools, live gate + screenshots; M4 WP1 reachability and dependency suppression
Some checks failed
ci / lint (push) Has been cancelled
ci / test (ubuntu-24.04-arm) (push) Has been cancelled
ci / test (ubuntu-latest) (push) Has been cancelled
ci / postgres (push) Has been cancelled
ci / openapi (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
m3
2026-10-22 20:34:14 +00:00
1ed97a540d Maintainability cleanup (collection paths): 63 findings to 0; fix flaky poller tests and a production timer race; M2 gate passed
Some checks failed
ci / lint (push) Has been cancelled
ci / test (ubuntu-24.04-arm) (push) Has been cancelled
ci / test (ubuntu-latest) (push) Has been cancelled
ci / postgres (push) Has been cancelled
ci / openapi (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
m2
2026-10-22 19:25:08 +00:00
5283921d6d Maintainability cleanup (API, app, CLI, fixtures): 167 lint findings to 0; app coverage 25->90%, config 0->90%; fixturegen never emits not-accessible columns
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 19:16:35 +00:00
e7c70ce466 M3 WP2: web UI (React 19, TanStack, uPlot TrafficGraph), contract-generated client, mock e2e + screenshots
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 19:13:27 +00:00
287fbb98bd Maintainability cleanup (core libraries): 223 lint findings to 0, oversized files split; fix apc-ups label columns and never poll text metrics
Migration files restructured with shared helpers; verified byte-identical SQLite schema vs previous commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 19:11:15 +00:00
cce37313f1 M3 contract: facets, unreliable_reason, tiers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 19:09:58 +00:00
2f6dcd5754 CI lint job; milestone definition of done includes clean lint
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:55:27 +00:00
f7b394585b Maintainability is a hard rule: standard, golangci-lint config, lint in every gate
- docs/MAINTAINABILITY.md: limits and architecture rules
- .golangci.yml (pinned v2.14.0) + file-size check; make lint runs first in every gate
- web/go.mod stops the Go tool from walking web/node_modules
- layering: Target -> internal/snmptarget, TableKey -> profile.Metric.TableKey; poller no longer imports discovery

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:54:32 +00:00
a037b406cb M2 integration: wiring, profile test, discover CLI/endpoint, per-profile fixtures and expect harness, gate-m2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:50:02 +00:00
61b3de28dd M3: API contract written ahead of the WPs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:38:03 +00:00
cc9043b014 M4 WP2: MetricsQL rule evaluator with persisted state, stale/flap/ack/maintenance semantics
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:37:36 +00:00
4252b342fc M2 WP5: SMI MIB parser, profile new/record, separate nmon-librenms-import tool
Parses all 4,865 bundled MIBs; snmptranslate cross-check 200/200.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:25:40 +00:00
a71e3746f2 Docs: defer deployment playbook; screenshots per UI milestone
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:24:39 +00:00
22c2a6438c M2 WP4: profile-driven poller, varbind adaptation, backoff/degraded, reboot detection, trap receiver
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:22:13 +00:00
76a599d4e1 M2 WP3: full discovery, interface identity matcher, RMA, reattach, discovery scheduler
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:17:27 +00:00
b250f63608 M4 WP3: notification queue (webhook, SMTP, retry 1 h, incident IDs, redaction) and outbound allow-list
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:12:57 +00:00
b32c74c29a M2 prep: per-device snmp_port, device_components table and store contract
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 18:01:29 +00:00
02dce40e2a M1 WP5: seed discovery, poller, API, serve wiring, gate script; M1 gate passed
Some checks failed
ci / test (ubuntu-24.04-arm) (push) Has been cancelled
ci / test (ubuntu-latest) (push) Has been cancelled
ci / postgres (push) Has been cancelled
ci / openapi (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
m1
2026-10-22 17:58:26 +00:00
2f8710f7f3 M2 WP1: profile schema, loader, matcher, symbol table, 13 shipped profiles
OIDs verified against the bundled mibs/; matcher checked against 214 LibreNMS recordings (211 match).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:49:17 +00:00
de70907b18 LibreNMS importer becomes a separate offline tool (nmon-librenms-import)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:48:57 +00:00
5564c66cf4 MIBs are a sidecar: none embedded in the binary
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:46:27 +00:00
833cfcc989 Bundle MIBs from LibreNMS (user decision); note LibreNMS reference layout
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:45:27 +00:00
06690bf4a1 M1 WP4: snmprec simagent (v1/v2c/v3), fixture generator, SNMP client, ICMP pinger
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:37:31 +00:00
3486462486 M1 WP2+WP3: inventory store over bun, credential encryption, VictoriaMetrics supervisor and write queue
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:36:40 +00:00
b9e72fa33e M1 WP1: selfmon registry, M1 deps
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:20:31 +00:00
f233bf667f M1 WP1: repo base, spec copy, milestone docs, shared contracts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lx9FNLG2CqeBbVGGd9bFsP
2026-10-22 17:19:18 +00:00