From 34161ccc08d3cf6ca6defecdfc2c8afb2367b7ff Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 1 Mar 2026 21:59:02 -0800 Subject: [PATCH] Changes from fix/bug-fixes-1rc --- .../board-view/dialogs/agent-output-modal.tsx | 15 +++++++++++---- apps/ui/src/routes/__root.tsx | 17 +++++++++++++++-- .../ui/tests/features/feature-deep-link.spec.ts | 2 +- package-lock.json | 8 ++++---- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/apps/ui/src/components/views/board-view/dialogs/agent-output-modal.tsx b/apps/ui/src/components/views/board-view/dialogs/agent-output-modal.tsx index a0bdadba..03639d75 100644 --- a/apps/ui/src/components/views/board-view/dialogs/agent-output-modal.tsx +++ b/apps/ui/src/components/views/board-view/dialogs/agent-output-modal.tsx @@ -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({
- {featureStatus !== 'verified' && featureStatus !== 'waiting_approval' && ( + {resolvedStatus !== 'verified' && resolvedStatus !== 'waiting_approval' && ( )} 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} @@ -601,7 +608,7 @@ export function AgentOutputModal({ {resolvedProjectPath ? ( 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); } diff --git a/apps/ui/tests/features/feature-deep-link.spec.ts b/apps/ui/tests/features/feature-deep-link.spec.ts index 7083c264..639c51f5 100644 --- a/apps/ui/tests/features/feature-deep-link.spec.ts +++ b/apps/ui/tests/features/feature-deep-link.spec.ts @@ -28,7 +28,7 @@ test.describe('Feature Deep Link', () => { let projectPath: string; let projectName: string; - test.beforeEach(async ({}, testInfo) => { + test.beforeEach(async (_fixtures, testInfo) => { projectName = `test-project-${testInfo.workerIndex}-${Date.now()}`; projectPath = path.join(TEST_TEMP_DIR, projectName); fs.mkdirSync(projectPath, { recursive: true }); diff --git a/package-lock.json b/package-lock.json index cb443da7..d1d9d868 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "automaker", - "version": "0.15.0", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "automaker", - "version": "0.15.0", + "version": "1.0.0", "hasInstallScript": true, "license": "MIT", "workspaces": [ @@ -33,7 +33,7 @@ }, "apps/server": { "name": "@automaker/server", - "version": "0.15.0", + "version": "1.0.0", "license": "SEE LICENSE IN LICENSE", "dependencies": { "@anthropic-ai/claude-agent-sdk": "0.2.32", @@ -99,7 +99,7 @@ }, "apps/ui": { "name": "@automaker/ui", - "version": "0.15.0", + "version": "1.0.0", "hasInstallScript": true, "license": "SEE LICENSE IN LICENSE", "dependencies": {