Add HelpTip coverage for War Room, Mission Deck, and Forge gaps (UH-03–05).
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

This commit is contained in:
AetherForge
2026-06-07 06:31:08 -07:00
parent c8437c5b22
commit 728c34363b
13 changed files with 223 additions and 69 deletions

View File

@@ -1,5 +1,6 @@
import type { ForgeFieldMeta } from '../../help/forgeRules';
import { forgeBadgeLabel } from '../../help/forgeRules';
import { HelpTip } from '../HelpTip';
interface ForgeLockedHintProps {
meta?: ForgeFieldMeta;
@@ -31,13 +32,17 @@ interface ForgeSectionHeaderProps {
title: string;
description: string;
badge: 'baked' | 'server-only';
helpField?: string;
}
export function ForgeSectionHeader({ title, description, badge }: ForgeSectionHeaderProps) {
export function ForgeSectionHeader({ title, description, badge, helpField }: ForgeSectionHeaderProps) {
return (
<div className="forge-section-header">
<div className="forge-section-title-row">
<h3>{title}</h3>
<h3>
{title}
{helpField ? <> <HelpTip field={helpField} /></> : null}
</h3>
<span className={`forge-field-badge forge-badge-${badge}`}>{forgeBadgeLabel(badge)}</span>
</div>
<p className="form-hint forge-section-desc">{description}</p>

View File

@@ -6,6 +6,7 @@ import {
tickForceLayout,
type ConstellationNode,
} from '../../help/campaignConstellations';
import { HelpTip } from '../HelpTip';
interface CampaignConstellationsProps {
campaigns: WarRoomCampaign[];
@@ -169,7 +170,8 @@ export default function CampaignConstellations({ campaigns, onSelectCampaign }:
<p className="war-room-constellation-legend form-hint">
Node size = hits · brightness = online · color = conversion · edges = shared pin/build.
Click a star to jump to its funnel card.
Click a star to jump to its funnel card.{' '}
<HelpTip field="ew_war_room_constellations" />
</p>
</div>
);

View File

@@ -11,6 +11,7 @@ import {
} from '../../help/warRoom';
import { hashHeatIntensity, lotlTierLabel } from '../../help/warRoomTelemetry';
import JoinLaneBadge from '../Fleet/JoinLaneBadge';
import { HelpTip } from '../HelpTip';
import WarRoomOdometer from './WarRoomOdometer';
interface WarRoomFunnelBoardProps {
@@ -44,6 +45,9 @@ export default function WarRoomFunnelBoard({
className={`war-room-funnel-board${alive ? ' war-room-funnel-board--alive' : ''}`}
role="list"
>
<p className="war-room-funnel-board-key form-hint">
Funnel board <HelpTip field="ew_war_room_funnel_board" />
</p>
{campaigns.map((c, cardIndex) => {
const stages = funnelStages(c);
const leaks = detectFunnelLeaks(c);
@@ -201,11 +205,13 @@ export default function WarRoomFunnelBoard({
<p className="war-room-leak-msg">{primaryLeak.message}</p>
<p className="war-room-leak-action">{primaryLeak.action}</p>
</div>
<HelpTip field="ew_war_room_leak" />
</div>
) : (
<div className="war-room-leak war-room-leak--clear" role="status">
<span className="war-room-leak-badge">FLOW</span>
<p className="war-room-leak-msg">Funnel flowing no major leaks detected.</p>
<HelpTip field="ew_war_room_leak" />
</div>
)}
</article>