feat: alive UI wave, galaxy presence, spread and fleet enhancements
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

Dashboard ambient layer, comrade presence, Mission Deck and War Room, Emberwake supply chain, spread/docs publishing, fleet policy and modules API, CI docker mining, and refreshed USB pack.
This commit is contained in:
AetherForge
2026-06-04 22:36:17 -07:00
parent 1551bd5dad
commit a32860b0d9
154 changed files with 17383 additions and 601 deletions

View File

@@ -108,6 +108,45 @@ function DeleteButton({ buildId, onDeleted, onError }: { buildId: string; onDele
);
}
function PublicButton({
buildId,
isPublic,
onToggled,
onError,
}: {
buildId: string;
isPublic: boolean;
onToggled: () => void;
onError: (msg: string) => void;
}) {
const [busy, setBusy] = useState(false);
const handleClick = async () => {
if (busy) return;
setBusy(true);
try {
await api.setBuildPublic(buildId, !isPublic);
onToggled();
} catch (e) {
onError(e instanceof Error ? e.message : 'Failed to update public flag');
} finally {
setBusy(false);
}
};
return (
<button
type="button"
className={`bm-public-btn${isPublic ? ' bm-public-btn-active' : ''}`}
disabled={busy}
onClick={() => void handleClick()}
title={isPublic ? 'Remove from login-page public builds list' : 'Expose on unauthenticated public builds API'}
>
{busy ? '…' : isPublic ? '🌐 Public' : '🌐 Mark public'}
</button>
);
}
function PinButton({
buildId,
pinned,
@@ -177,7 +216,7 @@ function BuildCard({
const sh = `curl -sL ${serverBase}/install.sh | bash`;
return (
<NeonCard accent={build.pinned ? 'green' : 'brass'} className={`bm-card${build.pinned ? ' bm-card-pinned' : ''}`}>
<NeonCard accent={build.pinned ? 'green' : 'brass'} className={`bm-card operator-deck-card operator-interactive${build.pinned ? ' bm-card-pinned' : ''}`}>
{/* ── Pinned banner ── */}
{build.pinned && (
<div className="bm-pinned-banner">
@@ -195,6 +234,7 @@ function BuildCard({
>
{platformLabel(build.platform)}
</span>
{build.public && <span className="bm-tag bm-tag-public">PUBLIC</span>}
{isFusion && <span className="bm-tag bm-tag-fusion">FUSION</span>}
{isUniversal && !isFusion && <span className="bm-tag bm-tag-universal">UNIVERSAL</span>}
</div>
@@ -294,6 +334,7 @@ function BuildCard({
<span className="bm-qr-label">Scan to download</span>
</div>
<div className="bm-action-btns">
<PublicButton buildId={build.id} isPublic={!!build.public} onToggled={onPinned} onError={onActionError} />
<PinButton buildId={build.id} pinned={!!build.pinned} onPinned={onPinned} onError={onActionError} />
<button
type="button"
@@ -349,7 +390,7 @@ export default function BuildManagerPage() {
}, [navigate]);
return (
<div className="page fade-in bm-page">
<div className="page fade-in bm-page operator-deck-page">
<div className="bm-header">
<div>
<h1 className="font-display bm-title">Build Manager</h1>