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

92 of 95 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 shimslowcanarycompatibilityOPN-0114Both testbed firewalls run Kea and dnsmasq DHCP at once, racing for UDP/67UnspecifiedtestbedcanaryOPN-0115Correct the IPsec coverage ledger and decide whether the release box gets a tunnelUnspecifiedtestbedcanaryOPN-0116Prune tautological and change-detector unit testsUnspecifiedtestingOPN-0117Add a read-only live API contract test layerUnspecifiedtestingOPN-0118Emit native (exponential) histograms instead of classical bucketshighobservabilitycardinalityOPN-0119Triage the 2026-09-20 canary drift on 26.7.4_1 and 27.1 develmediumcanaryapi-driftOPN-0120Export the BFD rejected-control-packet countermediumfrrfeatureOPN-0121Per-subnet Kea DHCP pool statistics keyed on subnet_idmediumkeafeatureOPN-0122Firmware collector: info endpoint outgrows the client timeout and status polls uncached while last_check is emptyhighfirmwareapi-clientOPN-0123Tolerate transitional CARP and NDP response shapes seen during a firewall upgrademediumcarpndpapi-clientOPN-0124Classify the boot-time syslog shapes and the Zenarmor web parse error from the 2026-10-12 upgrade capturemediumsyslogzenarmorOPN-0125Keep OTLP log delivery through a WAN outage longer than the retry budgetlowlogshipotlpOPN-0126Isolate composed loop gates from machine-local lane worktreesUnspecifiedOPN-0127Document the firmware info exception to the global request timeoutlowOPN-0128Repair rejected BFD counter landing CI failurehighOPN-0129Design native histogram conversion for pre-bucketed flow and Unbound datahighOPN-0130Study lossless Unbound histogram source and transport alternativesmediumOPN-0131Correct Unbound histogram precision and overflow documentationmediumOPN-0132Infer const histogram types in the generated metric cataloguemediumOPN-0133Preserve native histogram samples in duration heatmapsmediumOPN-0134Disposition remaining capture shapes before debug-capture retirementmediumOPN-0135Publish verified 5.2.0 release after resilience and live-contract proofmediumOPN-0136Export per-NIC hardware receive discards (ixl rx_discards) for physical WAN parentsmediumOPN-0137Derive PPPoE (mpd5) link-edge counters and a last-link-up timestamp from ppp logshighOPN-0138Count gateway state-kill events (gateway_states_killed)highOPN-0139Keep per-queue interrupt and iflib thread identity in the activity collectormediumOPN-0140Spike: source for Zenarmor engine health (crash and stall counts)mediumOPN-0141Expose Zenarmor daily engine crash and stall counts through the textfile companionmediumOPN-0142Refresh Go and certificate trust dependencies and publish releasehigh