Skip to content

Stabilize onboarding cycle UX and enforce Python 3.10+ runtime gates - #69

Draft
AreteDriver wants to merge 11 commits into
mainfrom
codex/onboarding-cycle-ux
Draft

Stabilize onboarding cycle UX and enforce Python 3.10+ runtime gates#69
AreteDriver wants to merge 11 commits into
mainfrom
codex/onboarding-cycle-ux

Conversation

@AreteDriver

@AreteDriver AreteDriver commented Apr 26, 2026

Copy link
Copy Markdown
Collaborator

Why this PR

Argus currently mixes UX improvements, runtime compatibility guardrails, and CI/tooling updates. This draft groups them so reviewers can validate end-to-end onboarding behavior and Python baseline enforcement in one pass.

Scope

  • Onboarding + cycle UX updates across main window, tabs, and cycle controller.
  • Runtime hardening: fail fast when Python is below 3.10 before Qt initialization.
  • Installer/launcher + docs/metadata alignment to a Python 3.10+ floor.
  • Dev install reliability fix on Python 3.12.
  • AI quality-gate and CI consistency updates.
  • Restore merge-dropped auto-discovery lifecycle and four-tab navigation behavior.
  • Make the production type gate actionable and eliminate its source-tree errors.
  • Repair Linux Qt prerequisites and move the test stack to advisory-fixed compatible versions.

Commit map

  • 1927368 onboarding/cycle workflow improvements.
  • a60e321 test/config fallback hardening.
  • 3129e1e AI tooling + changed-file quality gate.
  • 73db298 docs/runtime baseline + CI typecheck alignment.
  • e5a326f pre-Qt Python version guard.
  • 5ec22e6 enforce Python floor in run.sh and install.sh.
  • 6eee4b0 dev dependency conflict fix for fresh installs.
  • d4e6377 restore onboarding lifecycle, repair import signal wiring, and unblock lint/type gates.
  • 1b6d11d add AI-gate Qt packages, repair the Pillow resampling test, and upgrade pytest/pytest-asyncio.

Reviewer focus

  • Unsupported interpreter path shows a clean error and exits before Qt app init.
  • Auto-discovery connects once, respects settings, and disconnects on shutdown.
  • Import paths share frame wiring for activation, removal, focus, and retry signals.
  • Roster and cycle-control navigation land in the Fleet and Layouts containers.
  • Python floor messaging is consistent across docs, scripts, and CI.
  • CI type-checks production code rather than conflating source errors with test mocks.
  • The pytest 9.0.3 / pytest-asyncio 1.4.0 pairing remains compatible across Python 3.10–3.12.

Validation evidence

  • ruff check .: pass.
  • ruff format --check .: 132 files formatted.
  • mypy src/argus_overview --ignore-missing-imports --no-error-summary: pass locally and on GitHub.
  • Focused onboarding/main-window suite: 132 passed.
  • Changed-file suite: 804 passed, 3 skipped.
  • Final pytest 9 UI/command/Windows regression suite: 913 passed, 3 skipped.
  • Command-center API-preservation follow-up: 61 passed.
  • pip-audit --ignore-vuln CVE-2026-3219: no known vulnerabilities after upgrading pip in the validation environment.
  • bash -n install.sh run.sh: pass.
  • Workflow YAML parse and git diff --check: pass.
  • Fresh-head GitHub evidence before 1b6d11d: lint, format, mypy, secret scan, CodeQL, Truth Baseline, Linux package build, and normal security scan passed. Remaining failures were traced to missing AI-gate Qt packages, one stale Pillow assertion, and PYSEC-2026-1845 on pytest 8.4.2; 1b6d11d addresses exactly those causes.

Risk and rollout

  • Behavior change is intentional for Python <3.10 users (now fast-fail).
  • Workflow changes require maintainer review because the typecheck target is now the production package.
  • Keep as draft until all fresh checks on head 1b6d11d are green and one reviewer validates the onboarding flow.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the project's minimum Python requirement to 3.10 and introduces several architectural and UX improvements. Key changes include the addition of a centralized CycleController for window management, an onboarding panel for the Overview tab, and enhanced character management with auto-discovery batching. Developer experience is also improved through pinned dependencies and pre-commit hooks. Review feedback suggests improving encapsulation in the CycleController by avoiding protected member access and refactoring the configuration directory resolution to prevent potential crashes in restricted environments.

Comment thread src/argus_overview/core/cycle_controller.py
Comment thread src/argus_overview/utils/constants.py
@AreteDriver AreteDriver added enhancement New feature or request reliability Reliability related code-quality Code quality labels Apr 26, 2026
@AreteDriver AreteDriver self-assigned this Apr 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

code-quality Code quality enhancement New feature or request reliability Reliability related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant