49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
---
|
|
id: TASK-146
|
|
title: Sankey Power Overlay — dual-bar node sizing
|
|
status: To Do
|
|
assignee: []
|
|
created_date: '2026-04-16 18:56'
|
|
labels:
|
|
- rnetwork
|
|
- governance
|
|
- power-indices
|
|
dependencies:
|
|
- TASK-144
|
|
references:
|
|
- modules/rnetwork/components/folk-trust-sankey.ts
|
|
- src/encryptid/power-indices.ts
|
|
priority: medium
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
Add power index overlay to `folk-trust-sankey.ts` right-column nodes.
|
|
|
|
## What
|
|
Right-column delegate nodes currently show rank badge + received weight %. Add a second bar showing Banzhaf power %, creating a visual comparison: raw weight vs actual coalitional power.
|
|
|
|
## Primitive
|
|
- Fetch power indices once on authority change: `GET /rnetwork/api/power-indices?space={space}&authority={authority}`
|
|
- Build `Map<did, { banzhaf, shapleyShubik }>` lookup
|
|
- Right-column nodes get dual horizontal bars:
|
|
- Top bar (gray): raw received weight %
|
|
- Bottom bar (authority color): Banzhaf power %
|
|
- Nodes where power >> weight glow red (disproportionate influence)
|
|
|
|
## Implementation
|
|
- `folk-trust-sankey.ts`: Add `powerMap` field, fetch in `loadData()`
|
|
- Modify `renderRightNodes()` to draw second bar below weight bar
|
|
- Add CSS for `.power-bar` with transition animation
|
|
- ~60 lines, one fetch, zero new files
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
<!-- AC:BEGIN -->
|
|
- [ ] #1 Dual bars on right-column nodes: weight % and Banzhaf %
|
|
- [ ] #2 Red glow on nodes where Banzhaf > 1.5x weight share
|
|
- [ ] #3 Bars animate on authority tab switch
|
|
- [ ] #4 Toggle to show/hide power overlay
|
|
<!-- AC:END -->
|