Approval cards previously showed only a generic gating message with no visibility into the underlying command/arguments being approved, and repeated pending requests for the same action could pile up as duplicates. - Add GatedActionApprovalDetails component to render the gated command/arguments payload on agent-gating approval cards in MailboxView - Persist approvalDedupeKey in targetAction.context and a payload-bearing summary via buildAgentGatedActionSummary in permanent-agent-gating - Wire agent-heartbeat, executor, and pi to pass through the richer gated-action context/summary - Add changeset (patch) documenting the fix - Update docs/dashboard-guide.md - Add/extend tests: GatedActionApprovalDetails, MailboxView, permanent-agent-gating, pi-create-fn-agent Files changed: .changeset/FN-7609-gated-action-approval-payload.md | 7 ++ docs/dashboard-guide.md | 1 + packages/core/src/types.ts | 8 +++ .../app/components/GatedActionApprovalDetails.css | 50 ++++++++++++++ .../app/components/GatedActionApprovalDetails.tsx | 72 +++++++++++++++++++ packages/dashboard/app/components/MailboxView.tsx | 12 ++++ .../__tests__/GatedActionApprovalDetails.test.tsx | 66 ++++++++++++++++++ .../app/components/__tests__/MailboxView.test.tsx | 41 +++++++++++ .../src/__tests__/permanent-agent-gating.test.ts | 31 +++++++++ .../src/__tests__/pi-create-fn-agent.test.ts | 80 ++++++++++++++++++++++ packages/engine/src/agent-heartbeat.ts | 19 ++++- packages/engine/src/executor.ts | 19 ++++- packages/engine/src/permanent-agent-gating.ts | 53 ++++++++++++++ packages/engine/src/pi.ts | 6 ++ 14 files changed, 461 insertions(+), 4 deletions(-) Fusion-Task-Id: FN-7609 Fusion-Task-Lineage: 80a6bb5b-79f7-4b78-9204-402c2dea6171 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
51 lines
1.0 KiB
CSS
51 lines
1.0 KiB
CSS
.gated-action-approval-details {
|
|
margin-bottom: var(--space-md);
|
|
padding: var(--space-md);
|
|
}
|
|
|
|
.gated-action-approval-details__title {
|
|
margin: 0 0 var(--space-sm) 0;
|
|
color: var(--text);
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.gated-action-approval-details__list {
|
|
margin: 0;
|
|
display: grid;
|
|
gap: var(--space-xs);
|
|
}
|
|
|
|
.gated-action-approval-details__row {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, auto) minmax(0, 1fr);
|
|
gap: var(--space-sm);
|
|
}
|
|
|
|
.gated-action-approval-details__row dt {
|
|
color: var(--text-muted);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.gated-action-approval-details__row dd {
|
|
margin: 0;
|
|
color: var(--text);
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.gated-action-approval-details__code {
|
|
margin: 0;
|
|
padding: var(--space-xs) var(--space-sm);
|
|
background: var(--bg-secondary);
|
|
border-radius: var(--radius-sm);
|
|
overflow-x: auto;
|
|
white-space: pre-wrap;
|
|
word-break: break-word;
|
|
font-size: 0.8125rem;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.gated-action-approval-details__row {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
}
|