Skip to content

fix: don't mark first launch complete on startup script error#99

Merged
BeckettFrey merged 2 commits into
releasefrom
copilot/fix-startup-script-failure
Apr 14, 2026
Merged

fix: don't mark first launch complete on startup script error#99
BeckettFrey merged 2 commits into
releasefrom
copilot/fix-startup-script-failure

Conversation

Copilot AI commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Any transient failure (network timeout, disk full, permission error) during first-launch asset retrieval permanently suppressed the startup script on all subsequent launches, leaving the user with missing assets and no recovery path short of manually deleting ~/.voxkit/.first_launch_complete.

Changes

  • src/voxkit/gui/workers/startup.py
    • Removed mark_first_launch_complete() from on_error — first-launch flag is now only set on successful script completion, allowing automatic retry on next launch
    • Removed redundant from PyQt6.QtCore import QTimer re-import inside on_error (already in outer scope)
    • Replaced misleading comment # Still mark as complete to avoid running again with accurate intent
# Before
def on_error(error_msg: str):
    ...
    mark_first_launch_complete()  # silently bricks first-launch on any failure

# After
def on_error(error_msg: str):
    ...
    # Do NOT mark first launch complete on error — allow retry on next launch
    QTimer.singleShot(2000, loading_dialog.close_gracefully)

Testing

  • No new tests added; the fix is in the control flow of a GUI worker (excluded from coverage by convention)

  • Existing tests/storage/test_utils.py coverage of mark_first_launch_complete / is_first_launch remains unaffected

  • Test testable logic

  • Edge cases addressed

Testing Notes: The only behavioral change is that mark_first_launch_complete() is no longer called on error. Successful completion path is unchanged.

Documentation

  • Code comments added/updated

Documentation Notes: Inline comment updated to reflect correct intent.

Checklist

  • Code follows project conventions
  • No breaking changes (or documented if intentional)
  • All CI checks pass

Copilot AI changed the title [WIP] Fix startup script failure that skips first-launch setup fix: don't mark first launch complete on startup script error Apr 14, 2026
Copilot AI requested a review from BeckettFrey April 14, 2026 20:59
@BeckettFrey BeckettFrey marked this pull request as ready for review April 14, 2026 21:29
@BeckettFrey BeckettFrey merged commit 58a41f4 into release Apr 14, 2026
3 checks passed
@BeckettFrey BeckettFrey deleted the copilot/fix-startup-script-failure branch April 14, 2026 21:33
BeckettFrey added a commit that referenced this pull request Apr 14, 2026
* fixes #64: add ai optimized documentation file

* fix: replace localhost help_url defaults with production URL (#92)

* Initial plan

* fix: replace localhost help_url defaults with production URL

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/496f7ed1-fdaa-4df9-b574-5ab55254c136

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* fix: dataset panel empty state non-responsive when splitter resized (#94)

* Initial plan

* fix: prevent helper_label and empty_label from resizing with splitter

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/ede8fa76-ccf4-4940-bd76-7f46adde44c5

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* setup-logging (#95)

* Refactor configuration and update release workflow process (#96)

* refactor: remove shadowed config

* replace: move to invoke for os agnostic clarity

* remove release workflow in favor of more manual steps

* Configure shredguard for blocking regex patterns (#98)

* fix: don't mark first launch complete on startup script error (#99)

* Initial plan

* fix: don't mark first launch complete on startup script error

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/e51a7557-a81e-4972-a7e6-45133b115413

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* fix: readable_from_unique_id handles prefixed IDs from generate_unique_id (#101)

* Initial plan

* fix: handle prefixed IDs in readable_from_unique_id

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* fix: raise descriptive ValueError when no timestamp found in readable_from_unique_id

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/f6936450-f9a2-4df8-b75a-b403d98db565

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* Initial plan (#103)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* Revert "Initial plan (#103)" (#106)

This reverts commit b9ab4a0.

* Fix problem with dedicated internal function (#107)

* fix: add empty-ID guard to delete_model to prevent wiping engine models directory (#100)

* Initial plan

* fix: add empty-ID guard to delete_model to prevent wiping engine models directory

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/0cce5a70-83a5-4c00-b1e8-19f85cb895d1

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* fix: validate_dataset checks stem-name pairing between audio and label files (#102)

* Initial plan

* fix: validate_dataset checks stem-name pairing between audio and label files

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/73d34692-65d9-48a2-9621-7127982837a2

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* chore: remove accidentally committed root conftest.py

Agent-Logs-Url: https://github.com/BrainBehaviorAnalyticsLab/voxkit-desktop/sessions/46f1cfe0-1564-47a8-85ea-4c404b6b23f8

Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BeckettFrey <83560790+BeckettFrey@users.noreply.github.com>

* 82/fix view btn width (#105)

* Fix button width inconsistency

* Migrate to table style

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
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.

Startup script failure permanently skips first-launch setup

2 participants