Commit Graph

3 Commits (5c17419c9301979ab27b603b80de4abd5f202d87)

Author SHA1 Message Date
Gud Boi 5c17419c93 Fix `Qtractor` startup and paper-chart prerequisites
Let explicit runtime kwargs override stale globals and drive the
blocking adapter through PyQt6's `QApplication.exec()`. Exercise
registry selection and normal/error completion with real runtimes.

Thread an explicit paper execution mode through chart startup and
subsequent symbol loads to EMS, retaining the live CLI default.
Reject invalid modes before initialization and await provider search
registration before publishing application readiness.

Also, correct the credential-free Kraken `Client(config={})` call.
The public-data run progressed past this constructor failure but
still exposed display readiness, Qt paint, and daemon teardown
defects. This is a prerequisite fix, not live-chart qualification;
the failing opt-in reproducer remains outside this boundary.

Retain the combined session provenance, including failed live-run
evidence. Its orphan report predates the later human-authorized
SIGINT cleanup, which stopped the exact remaining paper actor.

Prompt-IO: ai/prompt-io/opencode/20260908T215045Z_1a2d4893_prompt_io.md

(this patch was generated in some part by `opencode` using `gpt-6-astra` (`openai`))
2026-10-20 11:14:03 -04:00
Gud Boi 1a2d489397 Add structured `QtractorSession` lifecycle
Factor nonblocking `start_qtractor()` from the blocking Qt-loop
adapter and expose guest readiness, completion, outcome, and owned
cancellation through `QtractorSession`.

Replace `MainWindow.closeEvent()` process-wide `SIGINT` with the
session shutdown callback. Publish readiness after `_async_main()`
enters all startup scopes, then restore shared Qt state and globals
after guest completion.

Add a headless regression which starts and closes two real Tractor
runtimes under one pytest-owned `QApplication`.

Prompt-IO: ai/prompt-io/opencode/20260903T205404Z_aadfd1cf_prompt_io.md

(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
2026-09-08 11:21:28 -04:00
Gud Boi b1f372bad1 Isolate `Qt` tests from process state
Own XDG config roots before Piker or Qt imports and restore the
caller's process environment when pytest exits.

Also,
- force offscreen rendering through an explicit `--headless` flag
- restore QSettings, config globals and PyQtGraph registries per test
- prove one QApplication can serve repeated tests without state leaks
- document each teardown phase and a future public config-path API

(this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))
2026-08-31 22:11:27 -04:00