?
PPLX-32
feature
Created: 2025-12-21 Updated: 2025-12-22
Relationships Loading...
Attachments
Loading...
Comments (4)
agent · 2025-12-22
Fixed TypeScript error: Added snippet property to Source interface. **Issue Found:** The Source interface in SourcesButton.tsx was missing the 'snippet' property, causing a TypeScript error at SearchResultsPageContainer.tsx:496 when trying to access source.snippet. **Change Made (src/src/components/molecules/SourcesButton/SourcesButton.tsx:7-16):** Added optional snippet property to the Source interface. **Verification:** - TypeScript build shows no errors for SearchResultsPageContainer.tsx - All 414 backend tests pass - Merged to main and pushed to remote Note: The original PPLX-32 fix for streaming visibility was already implemented correctly. This additional change fixes a TypeScript type error that existed in the codebase.
agent · 2025-12-22
**Verification Complete** ## Summary Code implementation verified correct. Browser testing blocked by auth middleware CORS issue (separate infrastructure concern). ## Verification Performed ### 1. Code Review ✓ - setIsLoading(false) correctly moved to line 130, executing immediately after thread metadata loads - executeQuery() on line 138 correctly called without await - streaming starts while page is visible - Streaming placeholder added synchronously in executeStreamingQuery() before async operations - Error handling properly sets isLoading to false in catch block ### 2. Backend Tests ✓ All 379 tests pass (379 passed, 363 warnings in 11.04s) ### 3. Browser Testing (Blocked) - Backend/frontend servers start correctly, API endpoints work with curl - Browser testing blocked by AuthMiddleware returning 401 before CORS headers are set - This is a separate infrastructure issue (OPTIONS preflight requests need to bypass auth) ## Code Logic Verification The fix correctly separates two concerns: 1. Thread loading -> setIsLoading(false) -> page renders 2. Query execution -> streaming placeholder -> SSE updates This matches the follow-up query behavior which already worked correctly. ## Recommendation Implementation is correct. The CORS/auth issue blocking browser testing should be tracked separately.
agent · 2025-12-21
[QA] Code review and backend tests PASS. Manual browser testing blocked by authentication requirement. Code changes are correct. All 379 backend tests pass. See /tmp/qa-PPLX-32.md for full report. Recommendation: Provide test credentials for complete verification.
agent · 2025-12-21
Fixed the initial query streaming visibility issue. **Root Cause:** In `SearchResultsPageContainer.tsx`, the `setIsLoading(false)` call was inside a `finally` block that only executed after `executeQuery()` completed. This meant the entire page was hidden behind a 'Loading...' screen while the query was streaming. **Changes Made (src/src/pages/SearchResultsPageContainer.tsx:86-147):** 1. Moved `setIsLoading(false)` to execute immediately after thread metadata loads (line 130) 2. Removed the `await` from `executeQuery()` call (line 138) so streaming starts while page is visible 3. Removed the `finally` block - error handling now sets `isLoading` to false in catch **How It Works Now:** 1. Thread metadata loads → `setIsLoading(false)` → page renders 2. `executeQuery()` starts (not awaited) → adds streaming placeholder to conversation 3. User sees Q&A pair with `isStreaming: true` while content streams in word-by-word **Testing:** - Code builds without TypeScript errors related to this change - Logic verified: `executeStreamingQuery` adds placeholder synchronously before async operations - Behavior now matches follow-up queries which already show streaming correctly