@@ -133,23 +133,19 @@ def _do_upload(self, on_progress: Callable[[int, int], None] | None = None) -> N
133133 on_progress: Optional callback(uploaded_bytes, total_bytes) for progress updates
134134 """
135135 try :
136- # Read file size for progress
137- file_size = os .path .getsize (self ._path )
138-
139- if on_progress :
140- on_progress (0 , file_size )
141-
142136 # Read and compress
143137 with open (self ._path , "rb" ) as f :
144138 trace_data = f .read ()
145139
146140 compressed_data = gzip .compress (trace_data )
141+ compressed_size = len (compressed_data )
147142
143+ # Report progress: start
148144 if on_progress :
149- on_progress (len ( compressed_data ), file_size )
145+ on_progress (0 , compressed_size )
150146
151147 # Upload to DigitalOcean Spaces via pre-signed URL
152- print (f"📤 [Sentience] Uploading trace to cloud ({ len ( compressed_data ) } bytes)..." )
148+ print (f"📤 [Sentience] Uploading trace to cloud ({ compressed_size } bytes)..." )
153149
154150 response = requests .put (
155151 self .upload_url ,
@@ -164,6 +160,11 @@ def _do_upload(self, on_progress: Callable[[int, int], None] | None = None) -> N
164160 if response .status_code == 200 :
165161 self ._upload_successful = True
166162 print ("✅ [Sentience] Trace uploaded successfully" )
163+
164+ # Report progress: complete
165+ if on_progress :
166+ on_progress (compressed_size , compressed_size )
167+
167168 # Delete file only on successful upload
168169 if os .path .exists (self ._path ):
169170 try :
0 commit comments