Add live phase-checklist progress for snow dcm deploy and plan#3069
Draft
sfc-gh-jsommerfeld wants to merge 4 commits into
Draft
Add live phase-checklist progress for snow dcm deploy and plan#3069sfc-gh-jsommerfeld wants to merge 4 commits into
sfc-gh-jsommerfeld wants to merge 4 commits into
Conversation
Deploy and plan now show a live RENDER → COMPILE → PLAN → DEPLOY phase checklist as the server processes the operation, with a pip-style progress bar for PLAN and DEPLOY phases and a braille spinner for RENDER/COMPILE. - deploy switches to deploy_async + DeployProgressTracker.run_deploy_poll so the phase display updates in real time while the query runs - plan uses tracker.run_loader_phase with simulated RENDER/COMPILE phases followed by the synchronous PLAN call - manager: extract _build_deploy_query helper, add deploy_async method that submits the SQL with execute_async and returns the sfqid - commands: both deploy and plan wrap sync_local_files and the backend call inside a tracker.session() context for a unified UI Co-authored-by: Cursor <cursoragent@cursor.com>
Purge now shows the same live phase checklist as deploy. It runs PLAN and DEPLOY server-side, so the tracker polls SYSTEM$GET_DCM_PROJECT_PROGRESS and renders pip-style progress bars. - progress: add "purge" operation mode (RENDER/COMPILE/PLAN/DEPLOY, no UPLOAD phase since purge never syncs local files); render the DEPLOY phase as "PURGE" via a per-operation display-name override while still matching the server-reported DEPLOY phase during polling - manager: extract _build_purge_query helper, add purge_async method - commands: purge wraps purge_async + run_deploy_poll in tracker.session() Co-authored-by: Cursor <cursoragent@cursor.com>
execute_async leaves the cursor open; wrap it in a context manager so it is released immediately. The async query keeps running server-side and its results are still fetched later via the sfqid (run_deploy_poll). Co-authored-by: Cursor <cursoragent@cursor.com>
6fd96da to
878a1a6
Compare
3 tasks
Collapse the two divergent blues — the periwinkle hex #a0a8fe (refresh status / unknown rows) and the terminal-default named "blue" (running phase, progress bar/spinner) — onto one BLUE constant in styles.py, and route progress.py's hardcoded style="blue" literals through it, so every blue in DCM output renders the same hue. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deploy and plan now show a live
RENDER → COMPILE → PLAN → DEPLOYphase checklist as the server processes the operation, with a pip-style progress bar for the PLAN and DEPLOY phases and a braille spinner for RENDER/COMPILE. (The phase model itself lives in #3068; this PR wires the commands to it.)deploy_async+DeployProgressTracker.run_deploy_pollso the phase display updates in real time while the query runstracker.run_loader_phasewith simulated RENDER/COMPILE phases followed by the synchronous PLAN call_build_deploy_queryhelper, adddeploy_asyncmethod that submits the SQL withexecute_asyncand returns the sfqidsync_local_filesand the backend call inside atracker.session()context for a unified UIpurge
snow dcm purgeshows the same live phase checklist. Purge runs PLAN and DEPLOY entirely server-side (it never syncs local files), so it has no UPLOAD phase and pollsSYSTEM$GET_DCM_PROJECT_PROGRESSjust like deploy; the server-reported DEPLOY phase is displayed asPURGE(thepurgeoperation mode and the display-name override are defined in #3068)._build_purge_queryhelper, addpurge_asyncmethod that submits the SQL withexecute_asyncand returns the sfqidpurge_async+run_deploy_pollinside atracker.session()context (replacing the old static spinner)Resource cleanup
deploy_async/purge_asyncnow runexecute_asyncinside awith self._conn.cursor()block so the cursor is released immediately. Closing the cursor does not cancel the query — it keeps running server-side and its results are still fetched later via the sfqid inrun_deploy_poll.Pre-review checklist
RELEASE-NOTES.md(see when and how).Changes description
...