- 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>
- New top-level MILESTONE section (bcos-only), peer to PROCESSES, renders
uppercase via .sec-head; first module is milestone.2026-07 (per-repo
release-scope view with Gitea filter links).
- Nav UX: all sidebar sections start collapsed; no section/app auto-expands
on entry; landing pane shows the HiveIQ logo instead of auto-selecting Agent.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4-tier ladder customer<internal<dev<bcos. Re-tagged Architect/Testing/Claude +
platform/technical from internal->dev; Processes stays bcos. Backend visible()
enforces a per-instance served-audiences cap at the API. bcos.dev/DLX serve all;
production sets GUIDE_SERVED_AUDIENCES=customer,internal so dev/bcos never leave
dev. Verified: capped instance returns only Customer+Internal, 404s dev/bcos.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Backend FeedbackController + GiteaFeedbackService (POST /api/v1/guide/feedback):
resolves/creates the Bug/Enhancement label, appends reporter (from JWT) + module
context, POSTs the issue via a server-side GITEA_FEEDBACK_TOKEN (reaches Gitea via
public route). Area→repo map mirrors the Browser. Reader gets a 💬 Send feedback
button + dark slide-in form (Bug/Enhancement, area prefilled from current module,
title, description) with success link. Verified e2e (created hiveops-guide #4).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New 3-tier gating: customer < internal (MSP/BCOS) < bcos (BCOS_ADMIN only).
GuideController.isBcos + service visible() honour audience: bcos. New 'processes'
app with Develop / Main / Release / Gitea-Issue process docs (audience bcos),
rendered as a Processes nav section only BCOS_ADMIN can see. Verified: BCOS 200,
MSP/customer 404.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- New Testing tab (order 35, audience internal, 🧪): test accounts, manual flow,
copy-paste API smoke tests, role/scoping checks, regression watch. Fleet pilot.
- Reader shows 'Signed in as {email} · {role}' above Sign out (decoded from JWT),
so you always know which identity you're testing as.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
isOpen() helper hid the dependency on `open` from Svelte's tracking, so clicks
updated state but not the view. Inline (searching || open[key]) instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restructure reader sidebar into 3 collapsible top-level sections: Modules at
top (each product app collapsible with its module list), then Platform and
Technical. Auto-expands the section/app of the active module; search expands all.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Login page: dark card/inputs, Show/Hide password toggle (manual value bind
since dynamic type can't use bind:value). Reader: dark content, tabs, and
markdown (headings/tables/code/blockquote).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
authApi baseURL is .../auth, so posting /auth/api/login double-prefixed to
/auth/auth/api/login → 403. Use /api/login and /api/users/me.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New GuideReader.svelte: nav tree (apps→modules) + tabbed markdown (marked),
audience-gated server-side (admins see internal tabs, badged). Replaces the old
DB-CRUD GuidesView. Consumes GET /api/v1/guide/nav + /modules/{module}.
Deployed to guide.bcos.dev.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Phase 1 of the guide rebuild (DESIGN.md):
- MarkdownGuideService scans content/**/*.md (frontmatter: module/title/tab/order/audience)
- GET /api/v1/guide/nav + /api/v1/guide/modules/{module}; audience gated by role
(internal tabs only for MSP_ADMIN/BCOS_ADMIN)
- Removed JPA/Flyway/Postgres, Guide entity/repo/service, admin CRUD, seed migrations
- Seed content: devices.sw-deploy (Overview/Data/Technical-internal), fleet.tasks
- Verified: boots with no DB, loads 4 docs, nav + audience filtering + 401 all correct
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>