feat(sources): real-time file progress for sync and upload — background upload with success toast
This commit is contained in:
+20
-2
@@ -304,9 +304,12 @@ class GitSourceList(BaseModel):
|
||||
|
||||
|
||||
class UploadOut(BaseModel):
|
||||
"""``POST /api/git-sources/upload`` response (phase 49, task 02).
|
||||
"""The upload run's result fields (phase 49, task 02; phase 64, task 03).
|
||||
|
||||
The uploaded source's name (filename minus the archive suffix) plus
|
||||
Phase 64 (task 03): ``POST /api/git-sources/upload`` answers 202 the
|
||||
moment the archive is on disk; these fields become the shape of
|
||||
``GET /api/git-sources/upload/status`` ``detail`` on ``success`` —
|
||||
the uploaded source's name (filename minus the archive suffix) plus
|
||||
the SAME count keys as the admin sync's success ``detail``
|
||||
(``files``, ``added``, ``updated``, ``unchanged``, ``pruned``,
|
||||
``errors``, ``chunks`` — ``app.api.sync._run_sync``) and the
|
||||
@@ -325,6 +328,21 @@ class UploadOut(BaseModel):
|
||||
overview: bool
|
||||
|
||||
|
||||
class UploadAccepted(BaseModel):
|
||||
"""``POST /api/git-sources/upload`` 202 response (phase 64, task 03).
|
||||
|
||||
The archive is **safely on disk** — this is the "successfully
|
||||
uploaded" moment the Sources page toasts on (owner-locked A2). The
|
||||
scan itself (unpack → swap → row upsert → model check → import →
|
||||
overview) runs in a background task behind
|
||||
``GET /api/git-sources/upload/status``, whose ``success`` ``detail``
|
||||
carries the :class:`UploadOut` fields.
|
||||
"""
|
||||
|
||||
detail: str = "upload received"
|
||||
name: str
|
||||
|
||||
|
||||
class ToolCall(BaseModel):
|
||||
"""One agent tool-call record (the phase-37 ``tools`` record shape).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user