fix(guide): correct 2026-07 milestone data + open external links in new tab
CD - Develop (guide → bcos.dev) / build-and-deploy (push) Failing after 32m54s

- 2026-07 page: authoritative counts from org-wide milestone-name search
  (38 open across 12 repos; add devices=4, fleet #50, dashboard #51 that the
  stale per-repo milestone counters had hidden).
- External http(s) links in rendered guide content now open in a new tab.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 16:08:14 -04:00
parent b2fe064e7d
commit b70c4acda4
2 changed files with 20 additions and 9 deletions
@@ -8,8 +8,8 @@ audience: bcos
Release scope for the **2026-07** milestone. **BCOS admin only.** One issue = one milestone
(see [[processes.gitea-issues]]); this page is the per-repo view of everything targeted at the
July 2026 release. **32 open** issues across 11 repos as of 2026-07-10 — the bulk in
**incident (13)** and **feedback (11)**.
July 2026 release. **38 open** issues across 12 repos as of 2026-07-10 — the bulk in
**incident (13)**, **feedback (11)**, and **devices (4)**.
## Open issues by repo (click to open in Gitea)
@@ -17,20 +17,28 @@ July 2026 release. **32 open** issues across 11 repos as of 2026-07-10 — the b
|---|---|---|
| **incident** | 13 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-incident/issues?type=all&state=open&milestone=1) |
| **feedback** | 11 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-feedback/issues?type=all&state=open&milestone=47) |
| **devices** | 4 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-devices/issues?type=all&state=open&milestone=49) |
| **reports** | 2 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-reports/issues?type=all&state=open&milestone=8) |
| **agent** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-agent/issues?type=all&state=open&milestone=5) |
| **auth** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-auth/issues?type=all&state=open&milestone=6) |
| **browser** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-browser/issues?type=all&state=open&milestone=48) |
| **ai** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-ai/issues?type=all&state=open&milestone=2) |
| **journal** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-journal/issues?type=all&state=open&milestone=9) |
| **auth** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-auth/issues?type=all&state=open&milestone=6) |
| **claims** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-claims/issues?type=all&state=open&milestone=7) |
| **browser** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-browser/issues?type=all&state=open&milestone=48) |
| **fleet** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-fleet/issues?type=all&state=open&milestone=50) |
| **dashboard** | 1 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-dashboard/issues?type=all&state=open&milestone=51) |
| **bom** | 0 (1 closed) | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-bom/issues?type=all&state=all&milestone=3) |
| **devices** | 0 | [view](https://hiveiq-gitea.directlx.dev/hiveiq-src/hiveops-devices/issues?type=all&state=all&milestone=49) |
> **Note:** `milestone=<id>` is the **per-repo** numeric id — a `2026-07` link differs per repo.
> The counts above are a point-in-time snapshot; the links are always live.
## Everything at once (cross-repo rollup)
`GET /repos/issues/search?state=open&milestones=2026-07&owner=hiveiq-src` — one query, all repos,
no ids. See the milestone-viewing section of [[processes.gitea-issues]] for the copy-paste
one-liner that regenerates this table for any month.
Gitea has no cross-repo milestone web page, so the authoritative "all repos" view is the search API
(by milestone **name**, no ids):
```bash
GET /repos/issues/search?state=open&type=issues&milestones=2026-07&owner=hiveiq-src
```
See the milestone-viewing section of [[processes.gitea-issues]] for the copy-paste one-liner that
regenerates this table for any month.
+4 -1
View File
@@ -59,7 +59,10 @@
}
marked.setOptions({ gfm: true, breaks: false });
const render = (md: string): string => marked.parse(md, { async: false }) as string;
// external (http/https) links open in a new tab so the guide stays put
const render = (md: string): string =>
(marked.parse(md, { async: false }) as string)
.replace(/<a href="(https?:\/\/[^"]*)"/g, '<a href="$1" target="_blank" rel="noopener noreferrer"');
// pretty app label: "platform" → "Platform", "agent-proxy" → "Agent Proxy"
const appLabel = (a: string) =>