Skip to content

Commit c302ebb

Browse files
Fixed the Human Nodes “legacy drift”:
humanNodes.ts: replaced formationProject strings with canonical formationProjectIds (from formation.ts) and added factionId (matching factions.ts). humanNodeProfiles.ts: removed hardcoded faction + defaultProjects; profile faction + formation projects now derive from humanNodes + formationProjects. HumanNodes.tsx: cards/list now show the correct faction name and resolve formation project titles from the formation mock (no more generic “Operator readiness”, etc.). HumanNode.tsx: formation section renders an empty-state message when a node has no formation projects.
1 parent bdfe55e commit c302ebb

File tree

8 files changed

+257
-216
lines changed

8 files changed

+257
-216
lines changed

src/data/mock/factions.ts

Lines changed: 129 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -20,218 +20,222 @@ export type Faction = {
2020

2121
export const factions: Faction[] = [
2222
{
23-
id: "protocol-keepers",
24-
name: "Protocol Keepers",
23+
id: "delegation-removal-supporters",
24+
name: "Delegation removal supporters",
2525
description:
26-
"Pushes for harder liveness guarantees and validator neutrality.",
27-
members: 24,
28-
votes: "24",
29-
acm: "1,800",
30-
focus: "Core protocol",
26+
"End delegation. Direct votes only. No proxy power, no silent capture.",
27+
members: 19,
28+
votes: "19",
29+
acm: "1,420",
30+
focus: "Governance design",
3131
goals: [
32-
"Guarantee validator neutrality and reduce reliance on trusted relays.",
33-
"Tighten liveness guarantees for sequencers and biometric checkpoints.",
32+
"Remove proxy power and enforce direct participation as the default.",
33+
"Reduce governance capture vectors and make outcomes legible.",
3434
],
3535
initiatives: [
36-
"Humanode EVM Dev Starter Kit & Testing Sandbox",
37-
"Validator neutrality charter",
38-
"Cross-shard liveness probes",
36+
"Tier Decay v1",
37+
"Delegation removal v1",
38+
"Quorum transparency checklist",
3939
],
4040
roster: [
4141
{
42-
humanNodeId: "shahmeer",
43-
role: "Core protocol",
44-
tag: { kind: "acm", value: 184 },
42+
humanNodeId: "andrei",
43+
role: "Governance systems",
44+
tag: { kind: "acm", value: 176 },
4545
},
4646
{
47-
humanNodeId: "dato",
48-
role: "Reliability & ops",
49-
tag: { kind: "mm", value: 88 },
47+
humanNodeId: "petr",
48+
role: "Policy ops",
49+
tag: { kind: "mm", value: 74 },
5050
},
5151
{
52-
humanNodeId: "andrei",
53-
role: "Infra & telemetry",
54-
tag: { kind: "text", value: "Votes 52" },
52+
humanNodeId: "victor",
53+
role: "Rules & definitions",
54+
tag: { kind: "text", value: "Votes 46" },
5555
},
5656
],
5757
},
5858
{
59-
id: "formation-guild",
60-
name: "Formation Guild",
59+
id: "validator-subsidies",
60+
name: "Validator subsidies",
6161
description:
62-
"Wants Formation to own more budget and streamline squad approvals.",
63-
members: 18,
64-
votes: "18",
65-
acm: "1,500",
66-
focus: "Execution & delivery",
62+
"Subsidize validators to improve uptime, geographic spread, and operator diversity.",
63+
members: 22,
64+
votes: "22",
65+
acm: "1,610",
66+
focus: "Network reliability",
6767
goals: [
68-
"Delegate more discretionary budget to guild leads.",
69-
"Shorten the path from proposal to active squad.",
68+
"Improve uptime and reduce single-region concentration.",
69+
"Make validator operations sustainable for smaller operators.",
7070
],
7171
initiatives: [
72-
"Guild ops stack rollout",
73-
"Squad fast-track pilot",
74-
"Formation mentorship lane",
72+
"Uptime subsidy model v1",
73+
"Geographic diversity grants",
74+
"Operator onboarding playbook",
7575
],
7676
roster: [
7777
{
78-
humanNodeId: "shannon",
79-
role: "Execution lead",
80-
tag: { kind: "acm", value: 173 },
78+
humanNodeId: "dato",
79+
role: "Reliability & ops",
80+
tag: { kind: "acm", value: 188 },
8181
},
8282
{
83-
humanNodeId: "ekko",
84-
role: "Delivery ops",
85-
tag: { kind: "mm", value: 75 },
83+
humanNodeId: "shannon",
84+
role: "Operator programs",
85+
tag: { kind: "mm", value: 82 },
8686
},
8787
{
88-
humanNodeId: "petr",
89-
role: "Budget ops",
90-
tag: { kind: "text", value: "Votes 41" },
88+
humanNodeId: "ekko",
89+
role: "Telemetry & dashboards",
90+
tag: { kind: "text", value: "Votes 39" },
9191
},
9292
],
9393
},
9494
{
95-
id: "mesh-vanguard",
96-
name: "Mesh Vanguard",
97-
description: "Advocates anonymous identities and stronger mesh privacy.",
98-
members: 16,
99-
votes: "16",
100-
acm: "1,400",
101-
focus: "Reliability & ops",
95+
id: "formal-verification-maxis",
96+
name: "Formal verification maxis",
97+
description:
98+
"Specs and proofs before upgrades. Verified safety over “ship now, patch later.”",
99+
members: 17,
100+
votes: "17",
101+
acm: "1,780",
102+
focus: "Security & protocol",
102103
goals: [
103-
"Enable anonymous identities inside the mesh without sacrificing quorum.",
104-
"Harden telemetry privacy and reduce metadata leakage.",
104+
"Require clear specs and review before upgrades.",
105+
"Prefer verified safety over “ship now, patch later.”",
105106
],
106107
initiatives: [
107-
"Mesh privacy enhancements",
108-
"Anonymous identity pilot",
109-
"Telemetry minimisation program",
108+
"Biometric Account Recovery & Key Rotation Pallet",
109+
"Audit playbook v1",
110+
"Formal spec templates",
110111
],
111112
roster: [
112113
{
113-
humanNodeId: "andrei",
114-
role: "Reliability",
115-
tag: { kind: "acm", value: 170 },
114+
humanNodeId: "sesh",
115+
role: "Security reviews",
116+
tag: { kind: "acm", value: 194 },
116117
},
117118
{
118-
humanNodeId: "dato",
119-
role: "Ops & incident drills",
120-
tag: { kind: "mm", value: 88 },
119+
humanNodeId: "shahmeer",
120+
role: "Protocol engineering",
121+
tag: { kind: "mm", value: 91 },
121122
},
122123
{
123-
humanNodeId: "sesh",
124-
role: "Security & hardening",
125-
tag: { kind: "text", value: "Votes 64" },
124+
humanNodeId: "fares",
125+
role: "Risk modeling",
126+
tag: { kind: "text", value: "Votes 44" },
126127
},
127128
],
128129
},
129130
{
130-
id: "treasury-collective",
131-
name: "Treasury Collective",
131+
id: "anti-ai-slop-conglomerate",
132+
name: "Anti-AI-slop conglomerate",
132133
description:
133-
"Advocates changing fee structures and treasury distributions.",
134-
members: 15,
135-
votes: "15",
136-
acm: "1,300",
137-
focus: "Economics",
134+
"Enforce a quality bar: human-made outputs, citations, review, and zero spam.",
135+
members: 14,
136+
votes: "14",
137+
acm: "980",
138+
focus: "Quality & culture",
138139
goals: [
139-
"Rebalance civic vs ops disbursements.",
140-
"Align incentives with participation thresholds.",
140+
"Reduce low-effort spam and improve signal in proposals and threads.",
141+
"Normalize review, citations, and clear acceptance criteria.",
141142
],
142143
initiatives: [
143-
"Fee split recalibration",
144-
"Treasury transparency dashboard",
145-
"Participation-weighted rewards",
144+
"Fixed Governor Stake & Spam Slashing Rule for Vortex",
145+
"Proposal quality checklist",
146+
"Review culture sprint",
146147
],
147148
roster: [
148149
{
149-
humanNodeId: "fares",
150-
role: "Budget modeling",
151-
tag: { kind: "acm", value: 163 },
150+
humanNodeId: "silis",
151+
role: "Quality bar",
152+
tag: { kind: "acm", value: 152 },
152153
},
153154
{
154-
humanNodeId: "petr",
155-
role: "Reporting cadence",
156-
tag: { kind: "mm", value: 77 },
155+
humanNodeId: "temo",
156+
role: "UX clarity",
157+
tag: { kind: "mm", value: 68 },
157158
},
158159
{
159160
humanNodeId: "victor",
160-
role: "Policy liaison",
161-
tag: { kind: "text", value: "Votes 33" },
161+
role: "Policy language",
162+
tag: { kind: "text", value: "Votes 31" },
162163
},
163164
],
164165
},
165166
{
166-
id: "guardian-circle",
167-
name: "Guardian Circle",
167+
id: "social-media-awareness",
168+
name: "Social media awareness",
168169
description:
169-
"Expands mentorship and onboarding safety nets for new governors.",
170-
members: 12,
171-
votes: "12",
172-
acm: "900",
173-
focus: "Mentorship",
170+
"Turn governance into signal: distribution, creators, campaigns, and measurable reach.",
171+
members: 16,
172+
votes: "16",
173+
acm: "1,120",
174+
focus: "Growth & distribution",
174175
goals: [
175-
"Reduce churn in new governor cohorts.",
176-
"Provide safe escalation paths for governance disputes.",
176+
"Make governance legible to outsiders without dumbing it down.",
177+
"Run repeatable campaigns and track measurable outcomes.",
177178
],
178179
initiatives: [
179-
"Mentorship cohorts",
180-
"Guardian hotline",
181-
"Onboarding playbooks",
180+
"Vortex Field Experiments: Season 1",
181+
"Humanode AI Video Series: 3 Viral-Quality Shorts",
182+
"AI Video Launch & Distribution Sprint",
182183
],
183184
roster: [
184-
{
185-
humanNodeId: "fiona",
186-
role: "Onboarding",
187-
tag: { kind: "acm", value: 148 },
188-
},
189185
{
190186
humanNodeId: "tony",
191187
role: "Community ops",
192-
tag: { kind: "text", value: "Votes 28" },
188+
tag: { kind: "acm", value: 139 },
193189
},
194190
{
195-
humanNodeId: "temo",
196-
role: "UX & docs",
197-
tag: { kind: "mm", value: 66 },
191+
humanNodeId: "dima",
192+
role: "Campaign execution",
193+
tag: { kind: "mm", value: 63 },
194+
},
195+
{
196+
humanNodeId: "petr",
197+
role: "Narrative & copy",
198+
tag: { kind: "text", value: "Votes 22" },
198199
},
199200
],
200201
},
201202
{
202-
id: "research-lab",
203-
name: "Research Lab",
203+
id: "local-voting-adoption-movement",
204+
name: "Local voting adoption movement",
204205
description:
205-
"Explores deterrence models and privacy-first biometrics research.",
206-
members: 15,
207-
votes: "15",
208-
acm: "1,100",
209-
focus: "Research",
206+
"Run local pilots and onboard communities into on-chain voting with real turnout.",
207+
members: 20,
208+
votes: "20",
209+
acm: "1,260",
210+
focus: "Adoption",
210211
goals: [
211-
"Advance deterrence simulations for hostile scenarios.",
212-
"Prototype privacy-preserving biometric circuits.",
212+
"Bootstrap real participation with local pilots and clear onboarding.",
213+
"Turn “read-only spectators” into active governors over time.",
213214
],
214215
initiatives: [
215-
"Commitment staking slashing conditions review",
216-
"Privacy circuit sprint",
217-
"Threat model atlas",
216+
"Local pilot playbook v1",
217+
"Onboarding cohorts",
218+
"Voluntary Governor Commitment Staking",
218219
],
219220
roster: [
220221
{
221-
humanNodeId: "victor",
222-
role: "Legal research",
223-
tag: { kind: "acm", value: 160 },
222+
humanNodeId: "fiona",
223+
role: "Onboarding",
224+
tag: { kind: "acm", value: 148 },
224225
},
225226
{
226-
humanNodeId: "silis",
227-
role: "Risk analysis",
228-
tag: { kind: "mm", value: 81 },
227+
humanNodeId: "victor",
228+
role: "Local governance policy",
229+
tag: { kind: "mm", value: 79 },
229230
},
230231
{
231-
humanNodeId: "sesh",
232-
role: "Threat modeling",
233-
tag: { kind: "text", value: "Votes 47" },
232+
humanNodeId: "shannon",
233+
role: "Field ops",
234+
tag: { kind: "text", value: "Votes 27" },
234235
},
235236
],
236237
},
237238
];
239+
240+
export const getFactionById = (id: string | undefined): Faction | undefined =>
241+
(id ? factions.find((faction) => faction.id === id) : undefined) ?? undefined;

src/data/mock/feed.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -122,32 +122,32 @@ export const feedItems: FeedItem[] = [
122122
timestamp: "2025-03-30T05:10:00Z",
123123
},
124124
{
125-
id: "protocol-keepers-thread",
126-
title: "Protocol Keepers Thread",
127-
meta: "Faction · Protocol Keepers",
125+
id: "formal-verification-thread",
126+
title: "Formal verification thread",
127+
meta: "Faction · Formal verification maxis",
128128
stage: "thread",
129129
summaryPill: "Faction thread",
130-
summary: "Privacy sprint planning · new replies.",
130+
summary: "Audit checklist proposal · new replies.",
131131
ctaPrimary: "Open thread",
132132
ctaSecondary: "Mark read",
133-
href: "/app/factions/protocol-keepers",
133+
href: "/app/factions/formal-verification-maxis",
134134
timestamp: "2025-03-26T04:00:00Z",
135135
},
136136
{
137-
id: "formation-guild",
138-
title: "Formation Guild Update",
139-
meta: "Faction · Formation Guild",
137+
id: "social-media-awareness",
138+
title: "Social media awareness update",
139+
meta: "Faction · Social media awareness",
140140
stage: "faction",
141141
summaryPill: "Slots open",
142142
summary: (
143143
<span>
144-
Votes: 18 · <HintLabel termId="acm">ACM</HintLabel>: 1,500 · Ops slots
145-
open for guild initiatives.
144+
Votes: 16 · <HintLabel termId="acm">ACM</HintLabel>: 1,120 · Creator and
145+
ops slots open for upcoming campaigns.
146146
</span>
147147
),
148148
ctaPrimary: "Open faction",
149149
ctaSecondary: "Follow",
150-
href: "/app/factions/formation-guild",
150+
href: "/app/factions/social-media-awareness",
151151
timestamp: "2025-03-20T20:00:00Z",
152152
},
153153
];

0 commit comments

Comments
 (0)