Milestones

opnsense2otel

Progress across published tasks.

M1 - Bugs & first wave

12 of 12 completed

M2 - Loki config-data platform

5 of 5 completed

M3 - 26.7 catch-up

8 of 8 completed

M4 - New collectors

6 of 6 completed

M5 - Pipeline & dashboard polish

11 of 11 completed

M6 - Deployment & config

4 of 4 completed

M7 - Next major

1 of 1 completed

Unassigned

62 of 66 completed

OPN-0001Rare data race in syslog Listener shutdown (Close vs the TLS accept goroutine)Unspecifiedbugarea:logshipflaky-ciOPN-0002main is red: WAN address reintroduced into public fixtures, check-public-ips failing since 2026-08-08highbugsecurityarea:logshipneeds-triageOPN-0003Add Codex cloud manual environment setupUnspecifiedOPN-0004Upgrade Go toolchain to 1.27UnspecifiedOPN-0005Remediate 20 Codex Security findingshighsecurityOPN-0006Migrate the repo task surface to just and retire Makefiles and ad-hoc scriptsmediumwave:2-fleetOPN-0053Restyle the embedded console onto design system v2 (family follower)Unspecifieddesign-systemOPN-0054CodeQL initialization fails with repository Contents API 404highneeds-triageOPN-0055Preserve stable Unbound blocklist identity across search-query response generationslowneeds-triageOPN-0056Correct `just gen` dependency order for new catalogue metricsmediumneeds-triageOPN-0058Narrow auto-rc so only shipped-code commits cut a release candidatelowwave3OPN-0059Prune pre-25.1 healthCheck legacy fields and their canary exemptionslowOPN-0060Prove live Loki and OTLP delivery end to end against the m7kni stackhighOPN-0061Fix Grafana GitSync verifier after repository ownership movehighOPN-0062Stop NetFlow intake before the correlator final flushhighneeds-triageOPN-0063Preserve fractional flow-correlation window boundariesmediumneeds-triageOPN-0064Account for Zenarmor connections rejected at the capmediumneeds-triageOPN-0065Redact credential-bearing URLs from exporter self-logshighneeds-triageOPN-0066Persist device-inventory seen identities across restartmediumneeds-triageOPN-0067Correct console documentation to match the opt-in runtime defaulthighneeds-triageOPN-0068State pfTop retained-cardinality and address-label costs accuratelymediumneeds-triageOPN-0069Ship source poll errors to the log backend instead of stderr onlyUnspecifiedbugOPN-0070Live delivery proof miscategorises structured metadata as promoted labelsUnspecifiedbugOPN-0071Preserve Zenarmor-first enrichment at the correlator caphighOPN-0072Drain in-flight Zenarmor bulk handlers before pipeline shutdownhighOPN-0073Make startup and shutdown self-log loss observablemediumOPN-0074Bound log pipeline source shutdown by its deadlinehighOPN-0075Correct false manual flow and Zenarmor runtime contractsmediumOPN-0076Close credential-vocabulary gaps in config and API-error redactionhighOPN-0077Redact credential-bearing HTML URL attributes after backslasheshighneeds-triageOPN-0078Redact sensitive malformed-JSON fields after stray quoteshighneeds-triageOPN-0079Redact credential URLs in malformed JSON after stray quoteshighneeds-triageOPN-0080Resynchronise credential URL scanning after redacted overlapshighneeds-triageOPN-0081Redact credential URLs after malformed single-quoted HTMLhighneeds-triageOPN-0082Redact sensitive fields in malformed JSON-like syntaxhighneeds-triageOPN-0083Redact Unicode-escaped malformed JSON-like credential keyshighneeds-triageOPN-0084Serialize Release Please: no concurrency group on a workflow that publishesUnspecifiedbugOPN-0085Preserve firewall snapshot delivery when search rows share a rule identityhighneeds-triageOPN-0086Emit configuration revision diffs in old-to-new orderhighneeds-triageOPN-0087Correct the UDP measurement guide after receiver observability shippedlowneeds-triageOPN-0088Recover DNS enrichment cache capacity from expired answershighneeds-triageOPN-0089Count tolerated ZeroTier per-network 404 fetch failuresmediumneeds-triageOPN-0090Preserve unresolved interface labels during NetFlow enrichment startupmediumneeds-triageOPN-0091Present console API counters as lifetime history rather than current auth healthmediumneeds-triageOPN-0092Config diff loses redaction state when the diff prefix changes mid-elementhighbugOPN-0093Credential nested inside a JSON string value is never field-scannedhighbugOPN-0094Shared sensitive-key vocabulary is imprecise in both directionsmediumbugOPN-0095Firmware-status cache pins a transient empty last_check for the full TTLmediumbugexternal-reportOPN-0096Triage the standing nightly and release-vm canary drift findings open since 2026-09-01mediumapi-driftcanaryOPN-0097Bound config revision diff input before redaction to cap transient allocationlowenhancementsecurityOPN-0098Reclaim expired Zenarmor inventory entries before rejecting fresh sightingsmediumneeds-triageOPN-0099Document and harness the Loki visibility delay for historical config revision eventsmediumdocstestbedOPN-0100Define a Content-Security-Policy for the embedded consolelowwebuisecurityOPN-0101Syslog UDP receiver refuses to start on FreeBSD when the requested receive buffer exceeds the kernel limithighbugsyslogfreebsdOPN-0102Skip the GeoIP startup fetch when the installed database is freshmediumOPN-0103Console quiet mode when self-logs ship over OTLPhighOPN-0104Retire the syslog debug-capture mount on camdenlowOPN-0105Diversify Grafana dashboard visualizationsUnspecifiedOPN-0106Retire the production-firewall schema canaryhighcanarytestbedchoreOPN-0107Stamp the OPNsense generation on both testbed canary reportshighcanarytestbedciOPN-0108Update both testbed firewalls to their channel head on every canary sessionhighcanarytestbedOPN-0109Raise and lower the oli testbed from CI over forced-command SSHhighcanarytestbedciOPN-0110Consolidate the testbed to three guests and run the canary profiles sequentiallymediumcanarytestbedOPN-0111Narrow the support policy to the current stable OPNsense releasemediumdocscanaryOPN-0112Comment on the canary issues only when the findings changelowcanaryciOPN-0113Decide per endpoint whether to prune the pre-26.7 legacy payload shimslowcanarycompatibility