Skip to content

Conversation

@aldro61
Copy link
Collaborator

@aldro61 aldro61 commented Jan 24, 2026

Summary

  • Add progress tracking to installer so it can resume from where it left off after network failures
  • Track completed steps in a ServiceNow system property (workarena.installation.progress)
  • Add retry logic for transient errors (network timeouts, Playwright errors)
  • Add per-list and per-form progress tracking to avoid redoing completed items
  • Support --fresh and --resume CLI flags, with interactive prompt when previous progress exists

Key Changes

Progress tracking:

  • Each step is marked as completed after successful execution
  • On resume, completed steps are skipped
  • Per-report, per-list, and per-form granular tracking

Retry logic:

  • @retry_on_transient_error decorator retries up to 5 times
  • Handles ConnectionError, TimeoutError, OSError, PlaywrightTimeoutError, PlaywrightError
  • Informative logging on retries

Fresh install:

  • Cleans up previously patched reports before re-patching
  • Resets report date filter to current time
  • Clears all progress tracking

Test plan

  • Run installer with --fresh on a new instance
  • Interrupt mid-way and resume with --resume
  • Verify completed steps/lists/forms are skipped on resume
  • Test retry behavior by simulating network issues
  • Verify --fresh properly resets and re-patches reports

🤖 Generated with Claude Code

Major improvements to the installer to handle network glitches and
allow resuming from where it left off:

Progress tracking:
- Track completed steps in a system property (workarena.installation.progress)
- Support --fresh flag to start from scratch
- Support --resume flag to resume without prompting
- Interactive prompt when previous progress is detected
- Per-list and per-form progress tracking to avoid redoing completed items

Retry logic:
- Add retry_on_transient_error decorator for all setup functions
- Retry on ConnectionError, TimeoutError, OSError, and Playwright errors
- Per-report retry in patch_report_filters
- 5 retry attempts with informative logging

Fresh install improvements:
- Clean up previously patched reports before re-patching
- Reset report date filter to current time
- Clear progress tracking on fresh install

Other improvements:
- Add progress logging (e.g., "Processing report 50/200")
- Skip completed lists/forms on resume
- Only create test users when there are items to process

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@aldro61 aldro61 merged commit 4134527 into main Jan 24, 2026
4 of 7 checks passed
@aldro61 aldro61 deleted the feat/resumable-installer branch January 24, 2026 05:14
@aldro61
Copy link
Collaborator Author

aldro61 commented Jan 24, 2026

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants