HydraIssues

Groom the ExperienceNet tracker: 214 open, 95% never triaged
open improvement Priority: medium Project: hydraissue Reporter: 29 Jul 2026 19:18

Description

The ExperienceNet tracker has 214 open issues and most of them have never been triaged. This is the grooming backlog, with the work list computed from the tracker on 2026-07-29 rather than estimated.

Context: an audit of all open issues was run to find NimsForest work sitting on the wrong tracker. It found only 3 (now moved to the NimsForest tracker as #132, #133, #134) and 4 junk entries (deleted). The split between the two trackers is healthy. What it did surface is that the tracker is badly under-groomed.

The numbers

Measure Count Of 214 open
No priority set 203 95%
Untouched for over 60 days 188 88%
Category still unclassified 66 31%
Weak or empty project field 31 14%
In an exact-duplicate title group 40 19%

Age spread: 13 issues older than 120 days, 175 between 60 and 120 days, only 23 touched in the last month.

1. Duplicates: 14 groups, 40 issues

Exact title matches, largest first. Each group needs one survivor with the others closed as duplicates, pointing at it.

Count Ids Title
8 71, 74, 78, 79, 83, 89, 90, 91 stream issue
4 338, 354, 357, 360 iPad log — bxl1-test-3/nerdland
4 337, 343, 353, 355 iPad log — bxl1-test-2/nerdland
3 177, 178, 179 hydraheadflatscreen: document why --no-game-optimization
3 174, 175, 176 Portrait streaming: orientation contract implementation
2 398, 399 Pi Fleet Migration: move Hydra + NimsForest off Hetzner
2 395, 396 Castle viewer fails to start, "body discovery failed"
2 336, 352 iPad log — bxl1-test/nerdland

The remaining 6 groups are pairs; the full list is reproducible with the script at the bottom.

398 and 399 need a decision rather than a merge: they are near-identical, they span both the Hydra and NimsForest stacks, and both look superseded by #408 (Hydra half) and #409 (NimsForest half, now NimsForest #134). Likely close both.

2. The Nerdland event cluster: 15 issues

Ids 329, 330, 336, 337, 338, 343, 352, 353, 354, 355, 357, 360 and others in that range. Captured during the event on 2026-05-21 to 05-23 and untouched since. Half of them are the duplicate iPad log groups above.

These were event-day capture, not triage. Each needs to become a real issue or be closed. Two months on, most are probably closed.

3. Likely already resolved

Worth checking and closing rather than grooming:

  • 324 — the title itself says "likely fixed" (v0.2.16 to 0.2.17)
  • 238, 270 — validation and smoke-test tickets for hydraheadipad v0.2.80 and v0.2.112; current is past v0.2.120
  • 200 — reads as a completed deliverable ("pipeline complete and lessons documented")
  • 356 — scoped "pre-v2.0.57", long superseded
  • 141 — hydraheadsamsungtv, parked until 2026-05-26, that date passed two months ago
  • 183 — explicitly marked [PAUSED]
  • 59, 60 — untouched since 2026-03-19, one-line descriptions, never triaged

4. Wrong or missing project

31 issues have an empty, Not sure, bare hydra, or legacy experiencenet project. The body usually names the component:

  • 402, 397 — empty, are hydraheadflatscreen and hydraneck
  • 395, 396, 378, 384, 389 — empty, visitor-reported Rupelmonde and cloud-seven bugs, are hydrabody or hydraheadflatscreen
  • 276 — empty, is hydrapipelinerunnerapple (its twin 277 has it)
  • 197, 198 — empty, are hydraheadflatscreen (twin 196 says hydra)
  • 188, 189 — empty, are hydraheadflatscreen (cheeky-cactus macOS kiosk)
  • 141 — empty, is hydraheadsamsungtv
  • 390, 391, 392, 393, 394, 329, 202, 196 — bare hydra catch-all, each names a specific component in its body
  • 81 to 88, 166 — legacy experiencenet label, all hydrabody or hydracluster
  • 60 — filed as hydrabody but is a request for a developer portal, nothing to do with bodies
  • 246 — filed as hydracluster but title and body are hydraheadflatscreen
  • 109 — project hydrastreamdeck, which does not appear to exist as a repo

Suggested order

  1. Close the duplicates, keeping one per group. Removes 26 issues immediately.
  2. Resolve the Nerdland cluster, since it overlaps heavily with step 1.
  3. Close the likely-resolved list after checking each.
  4. Fix project on the remainder, then set category and priority.

Steps 1 to 3 should take the tracker from 214 open to roughly 170, at which point the untriaged tail is small enough to work through.

Reproducing the work list

curl -s -H "Authorization: Bearer $TOKEN" \
  "https://issues.experiencenet.com/api/v1/issues?status=open" > open.json

# duplicate groups
node -e 'const a=require("./open.json"),g={};for(const i of a){const k=i.title.trim().toLowerCase();(g[k]=g[k]||[]).push(i.id)}
for(const [t,ids] of Object.entries(g).filter(([,v])=>v.length>1).sort((x,y)=>y[1].length-x[1].length))console.log(ids.length,ids.join(","),t)'

# untriaged
node -e 'const a=require("./open.json");console.log("no priority:",a.filter(i=>!i.priority).length,
 "unclassified:",a.filter(i=>i.category==="unclassified"||!i.category).length,
 "weak project:",a.filter(i=>!i.project||["Not sure","hydra","experiencenet"].includes(i.project)).length)'

Already done, do not redo

  • 3 NimsForest issues moved off this tracker: former #411, #409, #415, now closed here and retitled [MOVED to nimsforest]
  • 4 Hydra issues moved back here from the NimsForest tracker: #416, #417, #418, #419, with their plans, comments and nim actions carried across
  • 4 junk issues deleted: former #379, #380, #386, #410, two tests and two spam entries from a throwaway address