You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reliability (roadmap 1.1 + 1.2, meant for 1.16 but never shipped):
- Run.reconcile_stale now sends the script's normal failure notification for
every run it flips to FAILED (running-past-deadline and lost-from-queue),
best-effort per run so a broken channel can't stall the heartbeat.
- Package operations: pip runs through EnvironmentService._run_pip (own
process group + kill_process_tree on timeout, stdin=DEVNULL, PIP_NO_INPUT);
each django-q task gets pip's cap + 60s so pip always dies first; the
worker retry floor accounts for the longest pip task; the heartbeat
reconciles stale PackageOperations; STALE_AFTER 15 -> 30 min.
July QA sweep (docs/TEST_PLAN_e2e.md section 100):
- F2: a plugins/<slug> folder with no Plugin row is moved aside
(<slug>.orphaned-<ts>) instead of blocking every upload of that slug; a
dev-mode folder is refused with a clear message.
- F3: partial venvs are removed when `python -m venv` fails, and an
unreferenced leftover folder is reclaimed on the next create.
- F4: the interpreter picker probes `import ensurepip, venv` and hides
interpreters that can't build a venv.
- F5: pyrunner_db.connect() no longer claims psycopg ships with the runtime;
it points at Environments -> Packages.
- F6: plugin.json min_pyrunner is enforced at upload and activation.
- F8: saving a changed admin URL slug warns that it applies after a restart.
- F1: run-local-postgres.ps1 -Fresh removes the three named volumes
explicitly after `down -v` and fails loudly if any survive.
- F9: not reproducible - ScheduleFirstTickTests drives django-q's real
scheduler loop and locks "interval fires once, clock modes don't fire on
creation".
Tests: core/test_stabilization_v1_17.py (27 tests); full core suite 1644 OK.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
0 commit comments