{
  "schemaVersion": 2,
  "date": "2026.07.26",
  "publishedAt": "2026-07-26T17:09:55-07:00",
  "timeZone": "America/Los_Angeles",
  "title": "Restoring Hiro task-dashboard availability",
  "publicationStatus": "Published",
  "executiveSummary": [
    "Hiro was started after the task dashboard was found offline.",
    "The checked-in Windows launcher was used with a normalized process search path to avoid the known Path and PATH environment collision.",
    "The HTTP task dashboard is responding successfully on both the local loopback address and the private Tailscale address."
  ],
  "workstreams": [
    {
      "title": "Runtime startup",
      "status": "Completed",
      "details": [
        "Confirmed that Hiro's three expected service ports were initially not listening.",
        "Started the checked-in Hiro launcher as a hidden Windows process while preserving the inherited runtime environment.",
        "Confirmed that one Hiro process owns the HTTPS, HTTP, and loopback-only internal listeners."
      ]
    },
    {
      "title": "Dashboard availability",
      "status": "Completed",
      "details": [
        "Requested the personal task page through the local HTTP listener and received a successful response.",
        "Requested the same page through the private Tailscale interface and received a successful response.",
        "Both responses identified the expected Hiro personal-list page."
      ]
    }
  ],
  "decisions": [
    "Use the checked-in launcher instead of constructing an alternate startup command.",
    "Normalize the process-scoped Windows search path before spawning Hiro so the bundled Python environment remains available.",
    "Keep the internal service listener restricted to loopback while exposing the intended dashboard listeners."
  ],
  "validation": [
    {
      "check": "Expected listeners",
      "status": "passed",
      "result": "Hiro is listening on its HTTPS, HTTP, and loopback-only internal service ports."
    },
    {
      "check": "Local task dashboard",
      "status": "passed",
      "result": "The local HTTP task page returned status 200 and the expected page title."
    },
    {
      "check": "Tailscale task dashboard",
      "status": "passed",
      "result": "The private Tailscale HTTP task page returned status 200 and the expected page title."
    }
  ],
  "currentState": [
    "Hiro is running.",
    "The personal task dashboard is available locally and through the private Tailscale network.",
    "No application source or user data changed during this operational restart."
  ],
  "limitations": [
    "This was a runtime restoration rather than a persistence change; availability still depends on the Hiro process remaining active.",
    "The private Tailscale address is intentionally omitted from this public entry."
  ],
  "nextSteps": [
    "Use the task dashboard normally and report any import or rendering issue that appears.",
    "Consider configuring a supervised automatic startup mechanism if manual restarts become frequent."
  ],
  "disclosureNote": "This public entry omits private network addresses, local paths, process identifiers, and credential information."
}
