plan/06-endpoints.md
06 · Endpoints + propagation footprint (Wave 2)
TL;DR: the published target version and each endpoint's active version are different facts (I). Give propagation a footprint where endpoints live: an Endpoints listing and detail in the lab (copied from the live qdash pages), a Policy Config column on the team page's Endpoints ledger. Stale, offline or failed endpoints are never shown as updated; stale ones point at the MDM.
Owns: new app/pages/pages/phase4/mock/organization/endpoints/{index,detail}.vue, new app/components/governance/live/Endpoint*.vue, app/components/governance/live/TeamDevicesLedger.vue, and in app/data/governance-parts.ts only the rail entries (MOCK_NAV / MOCK_SUBMENUS, l.43–51). Reads 00's fleet, fleetSummary, targetVersion.
Today
Organization › Endpoints lands on the blank catch-all [...slug].vue. The only endpoint UI is the team page's TeamDevicesLedger.vue (fed by useTeamMock.ts). Fleet is counts only until 00 lands.
Steps
- Copy, then adapt (replicate first): from
../qcontrol/crates/qdash/ui/app/pages/organization/endpoints/index.vue(PageHeader,TeamEndpointsBand,TeamEndpointsLedger→components/team/EndpointsBand.vue,EndpointsLedger.vue) and…/endpoints/detail.vue(EndpointHeader,EndpointTiles,EndpointInstalls). Copy intogovernance/live/Endpoint*.vuethe way c114 copied the team page (seegovernance/live/Team*.vueand its mock adapter pattern). Read-only; no backend. - Listing. Band on top: the propagation bar from the note (
../sources/logseq-propagation.png): "97 of 100 endpoints on Policy Config v13 · 3 still on earlier versions", then counts by status. Ledger gets a Policy Config column:v13(current, green dot),v12 · behind(amber),v12 · offline 6d(grey),v12 · failed(rose, with reason). Filter chip "Not on v13". - Detail. Tiles: Active v12, Target v13, Last seen, Status. When not current: "This endpoint hasn't picked up v13. If it's off-boarded or on a shelf, check your MDM." (R). Small activation history (versions with when they activated).
- Team detail ledger. Same column in
TeamDevicesLedger.vue; endpoint names link to the lab detail. - Rail. Point Organization › Endpoints at the new page (concrete routes beat the catch-all, so this may be no-op — check).
- Monitor-section propagation view stays future (I, R): leave a
DesignInProgress-style note on nothing; just don't build it.
Done when
/pages/phase4/mock/organization/endpoints, …/endpoints/detail?endpoint=mac-eng-07 (behind), win-fin-02 (failed), one current; team detail ledger column. After 03's Publish (v14), the listing shows 0 of 100 on v14 until propagate(). Screenshots shots/06-*.png.
Look for (review)
Can you find the three laggards in under five seconds? Does anything imply an endpoint is updated just because v13 was published?