open-notebook/feature_list.json
Luis Novo 22f06af0bc fix: invalidate sourcesInfinite query key on source creation (#526)
useCreateSource and useFileUpload only invalidated QUERY_KEYS.sources()
which doesn't match the infinite scroll query key used by the notebook
page (QUERY_KEYS.sourcesInfinite()). Added sourcesInfinite invalidation
to both hooks so the source list auto-refreshes after adding sources.
2026-04-06 07:05:02 -03:00

93 lines
4.4 KiB
JSON

[
{
"category": "functional",
"description": "Source list auto-refreshes after creating a source via URL - useCreateSource invalidates sourcesInfinite query key so the notebook source list updates without manual refresh",
"steps": [
"Step 1: Navigate to a notebook page",
"Step 2: Note the current source list contents",
"Step 3: Add a new source via URL (which uses useCreateSource with async_processing)",
"Step 4: Verify the toast notification appears",
"Step 5: Verify the source list automatically updates to include the new source without manual page refresh"
],
"passes": true
},
{
"category": "functional",
"description": "Source list auto-refreshes after file upload - useFileUpload invalidates sourcesInfinite query key so the notebook source list updates without manual refresh",
"steps": [
"Step 1: Navigate to a notebook page",
"Step 2: Note the current source list contents",
"Step 3: Upload a file as a new source (which uses useFileUpload)",
"Step 4: Verify the toast notification appears",
"Step 5: Verify the source list automatically updates to include the new uploaded source without manual page refresh"
],
"passes": true
},
{
"category": "functional",
"description": "Source list auto-refreshes after creating a text source - useCreateSource handles text type sources and invalidates sourcesInfinite",
"steps": [
"Step 1: Navigate to a notebook page",
"Step 2: Add a new text source via the add source dialog",
"Step 3: Verify the source list automatically updates to include the new text source"
],
"passes": true
},
{
"category": "functional",
"description": "Batch source creation refreshes list - when multiple sources are added in batch mode, the source list updates after each",
"steps": [
"Step 1: Navigate to a notebook page",
"Step 2: Use the batch mode to add multiple URLs at once",
"Step 3: Verify the source list updates to show the newly added sources"
],
"passes": true
},
{
"category": "functional",
"description": "Source list shows processing status for async sources - new sources appear with processing indicator while being processed in the background",
"steps": [
"Step 1: Navigate to a notebook page",
"Step 2: Add a new source with async_processing enabled",
"Step 3: Verify the source appears in the list with a processing/queued status indicator",
"Step 4: Wait for processing to complete",
"Step 5: Verify the source status updates to completed without manual refresh (via useSourceStatus polling)"
],
"passes": true
},
{
"category": "functional",
"description": "Existing source operations still work - useDeleteSource, useUpdateSource, useAddSourcesToNotebook, useRemoveSourceFromNotebook continue to properly refresh the source list",
"steps": [
"Step 1: Navigate to a notebook with existing sources",
"Step 2: Delete a source and verify it disappears from the list",
"Step 3: Add an existing source from another notebook and verify it appears",
"Step 4: Remove a source from the notebook and verify it disappears"
],
"passes": true
},
{
"category": "functional",
"description": "Multi-notebook source creation refreshes all affected notebooks - when a source is created targeting multiple notebooks, sourcesInfinite is invalidated for each",
"steps": [
"Step 1: Open a notebook page",
"Step 2: Create a source targeting multiple notebooks via the notebooks field",
"Step 3: Verify the current notebook's source list updates",
"Step 4: Navigate to another targeted notebook",
"Step 5: Verify that notebook's source list also shows the new source"
],
"passes": true
},
{
"category": "style",
"description": "No visual regressions in source list after fix - the source list layout, infinite scroll, and loading states remain unchanged",
"steps": [
"Step 1: Navigate to a notebook with many sources (enough for infinite scroll)",
"Step 2: Verify sources display correctly with proper cards",
"Step 3: Scroll down to trigger infinite scroll loading",
"Step 4: Verify additional sources load correctly",
"Step 5: Add a new source and verify the list updates without layout jumps or visual glitches"
],
"passes": true
}
]