mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-17 10:03:08 +00:00
Changes from fix/bug-fixes-1rc
This commit is contained in:
@@ -179,11 +179,18 @@ export function AgentOutputModal({
|
||||
enabled: open && !!resolvedProjectPath,
|
||||
});
|
||||
|
||||
// Fetch feature data to access the server-side accumulated summary
|
||||
// Fetch feature data to access the server-side accumulated summary.
|
||||
// Also used to show fresh description/status instead of potentially stale props
|
||||
// (e.g. when opening via deep link from a notification click).
|
||||
const { data: feature, refetch: refetchFeature } = useFeature(resolvedProjectPath, featureId, {
|
||||
enabled: open && !!resolvedProjectPath && !isBacklogPlan,
|
||||
});
|
||||
|
||||
// Prefer fresh data from server over potentially stale props passed at open time.
|
||||
const resolvedDescription = feature?.description ?? featureDescription;
|
||||
const resolvedStatus = feature?.status ?? featureStatus;
|
||||
const resolvedBranchName = feature?.branchName ?? branchName;
|
||||
|
||||
// Reset streamed content when modal opens or featureId changes
|
||||
useEffect(() => {
|
||||
if (open) {
|
||||
@@ -519,7 +526,7 @@ export function AgentOutputModal({
|
||||
<DialogHeader className="shrink-0">
|
||||
<div className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 pr-10">
|
||||
<DialogTitle className="flex items-center gap-2">
|
||||
{featureStatus !== 'verified' && featureStatus !== 'waiting_approval' && (
|
||||
{resolvedStatus !== 'verified' && resolvedStatus !== 'waiting_approval' && (
|
||||
<Spinner size="md" />
|
||||
)}
|
||||
Agent Output
|
||||
@@ -581,7 +588,7 @@ export function AgentOutputModal({
|
||||
className="mt-1 max-h-24 overflow-y-auto wrap-break-word"
|
||||
data-testid="agent-output-description"
|
||||
>
|
||||
{featureDescription}
|
||||
{resolvedDescription}
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
|
||||
@@ -601,7 +608,7 @@ export function AgentOutputModal({
|
||||
{resolvedProjectPath ? (
|
||||
<GitDiffPanel
|
||||
projectPath={resolvedProjectPath}
|
||||
featureId={branchName || featureId}
|
||||
featureId={resolvedBranchName || featureId}
|
||||
compact={false}
|
||||
useWorktrees={useWorktrees}
|
||||
className="border-0 rounded-lg"
|
||||
|
||||
@@ -595,8 +595,8 @@ function RootLayoutContent() {
|
||||
'[FAST_HYDRATE] Background reconcile: cache updated (store untouched)'
|
||||
);
|
||||
|
||||
// Selectively reconcile event hooks from server.
|
||||
// Unlike projects/theme, eventHooks aren't rendered on the main view,
|
||||
// Selectively reconcile event hooks and ntfy endpoints from server.
|
||||
// Unlike projects/theme, these aren't rendered on the main view,
|
||||
// so updating them won't cause a visible re-render flash.
|
||||
const serverHooks = (finalSettings as GlobalSettings).eventHooks ?? [];
|
||||
const currentHooks = useAppStore.getState().eventHooks;
|
||||
@@ -609,6 +609,19 @@ function RootLayoutContent() {
|
||||
);
|
||||
useAppStore.setState({ eventHooks: serverHooks });
|
||||
}
|
||||
|
||||
// Reconcile ntfy endpoints from server (same rationale as eventHooks)
|
||||
const serverEndpoints = (finalSettings as GlobalSettings).ntfyEndpoints ?? [];
|
||||
const currentEndpoints = useAppStore.getState().ntfyEndpoints;
|
||||
if (
|
||||
JSON.stringify(serverEndpoints) !== JSON.stringify(currentEndpoints) &&
|
||||
serverEndpoints.length > 0
|
||||
) {
|
||||
logger.info(
|
||||
`[FAST_HYDRATE] Reconciling ntfyEndpoints from server (server=${serverEndpoints.length}, store=${currentEndpoints.length})`
|
||||
);
|
||||
useAppStore.setState({ ntfyEndpoints: serverEndpoints });
|
||||
}
|
||||
} catch (e) {
|
||||
logger.debug('[FAST_HYDRATE] Failed to update cache:', e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user