From f2a1e71af709350aa53ef047a2565199d1366c37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Thu, 28 May 2026 19:37:28 -0400 Subject: [PATCH] Replace fabricated figures with real data on Home and Members The Home budget card invented a cap of 4x the allocated total and listed agent counts under a money heading; the Members table hardcoded every human's department as Executive with a blank budget. Source the cap from the real per-department monthly budget envelope (hiring policies), show real allocated dollars per provider, and render humans (which carry no department or budget) as not-applicable instead of a fabricated department. --- .../src/renderer/src/pages/HomePage.tsx | 24 +++++++++++++------ .../src/pages/settings/MembersPanel.tsx | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/AgentCompany-New/src/renderer/src/pages/HomePage.tsx b/AgentCompany-New/src/renderer/src/pages/HomePage.tsx index a5cc4269..d25c0b08 100644 --- a/AgentCompany-New/src/renderer/src/pages/HomePage.tsx +++ b/AgentCompany-New/src/renderer/src/pages/HomePage.tsx @@ -25,6 +25,13 @@ export function HomePage({ snapshot, actions }: PageProps) { () => snapshot.providers.filter((provider) => provider.orgId === orgId), [snapshot.providers, orgId], ); + const budgetCapCents = useMemo( + () => + snapshot.hiringPolicies + .filter((policy) => policy.orgId === orgId) + .reduce((sum, policy) => sum + policy.monthlyBudgetLimitCents, 0), + [snapshot.hiringPolicies, orgId], + ); const [newTaskOpen, setNewTaskOpen] = useState(false); const pendingApprovals = approvals.filter((approval) => approval.state === "pending"); @@ -60,7 +67,7 @@ export function HomePage({ snapshot, actions }: PageProps) { decidedByEmployeeId: employee.id, }))} /> - +
@@ -158,33 +165,36 @@ function WaitingCard({ function SpendCard({ providers, totalBudgetCents, + capCents, agents, }: { providers: ProviderRecord[]; totalBudgetCents: number; + capCents: number; agents: AgentRecord[]; }) { const connected = providers.filter((provider) => provider.enabled); - const cap = totalBudgetCents > 0 ? totalBudgetCents * 4 : 0; - const fillPct = cap > 0 ? Math.min(100, Math.round((totalBudgetCents / cap) * 100)) : 0; + const fillPct = capCents > 0 ? Math.min(100, Math.round((totalBudgetCents / capCents) * 100)) : 0; return (
-
This month
+
Monthly budget
{money(totalBudgetCents)} - {cap > 0 ? `/ ${money(cap)}` : "allocated"} + {capCents > 0 ? `/ ${money(capCents)}` : "allocated"}
{connected.slice(0, 3).map((provider) => { - const usingAgents = agents.filter((agent) => agent.modelProviderId === provider.id).length; + const allocatedCents = agents + .filter((agent) => agent.modelProviderId === provider.id) + .reduce((sum, agent) => sum + agent.budgetCents, 0); return (
{provider.label} - {usingAgents} {usingAgents === 1 ? "agent" : "agents"} + {money(allocatedCents)}
); diff --git a/AgentCompany-New/src/renderer/src/pages/settings/MembersPanel.tsx b/AgentCompany-New/src/renderer/src/pages/settings/MembersPanel.tsx index aefcdcdd..3791a970 100644 --- a/AgentCompany-New/src/renderer/src/pages/settings/MembersPanel.tsx +++ b/AgentCompany-New/src/renderer/src/pages/settings/MembersPanel.tsx @@ -43,7 +43,7 @@ export function MembersPanel({
Human
-
Executive
+
—
—
))}