Skip to content

Commit dfe614a

Browse files
committed
fix(ws): add delay before indexing to let WebSocket connect
Redis pub/sub doesn't buffer - events sent before subscription are lost. Added 1.5s delay + initial progress event to confirm connection working. Also improved progress bar animation easing.
1 parent 2fa9487 commit dfe614a

3 files changed

Lines changed: 23 additions & 2 deletions

File tree

backend/routes/repos.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,16 @@ async def _run_async_indexing(
255255
publisher = get_event_publisher(redis_client)
256256

257257
try:
258+
# Wait for WebSocket client to connect and subscribe
259+
# Redis pub/sub doesn't buffer - events sent before subscription are lost
260+
await asyncio.sleep(1.5)
261+
258262
repo_manager.update_status(repo_id, "indexing")
259263

264+
# Publish initial progress to confirm connection
265+
if publisher:
266+
publisher.publish_progress(repo_id, 0, 1, 0, "Starting...")
267+
260268
# Check for incremental
261269
last_commit = repo_manager.get_last_indexed_commit(repo_id)
262270

@@ -289,6 +297,13 @@ async def progress_callback(
289297
nonlocal tracked_total_files
290298
tracked_total_files = total_files
291299
if publisher:
300+
logger.info(
301+
"Publishing progress event",
302+
repo_id=repo_id,
303+
files=f"{files_processed}/{total_files}",
304+
functions=functions_found,
305+
file=current_file
306+
)
292307
publisher.publish_progress(
293308
repo_id,
294309
files_processed,

backend/services/indexing_events.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,13 @@ def _publish(self, entity_id: str, event: dict) -> bool:
7474

7575
try:
7676
channel = self._get_channel(entity_id)
77-
self.redis.publish(channel, json.dumps(event))
77+
result = self.redis.publish(channel, json.dumps(event))
78+
logger.info(
79+
"Published event to Redis",
80+
channel=channel[:40],
81+
event_type=event.get("type"),
82+
subscribers=result
83+
)
7884
return True
7985
except Exception as e:
8086
logger.warning(

frontend/src/components/IndexingProgressModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export function IndexingProgressModal({
147147
className="h-full bg-gradient-to-r from-indigo-500 to-violet-500"
148148
initial={{ width: 0 }}
149149
animate={{ width: `${progress.percent}%` }}
150-
transition={{ duration: 0.3 }}
150+
transition={{ duration: 0.5, ease: "easeOut" }}
151151
/>
152152
</div>
153153
</div>

0 commit comments

Comments
 (0)