Commit Graph

4 Commits (4ab49082c1bfe2b4274915d8e09c068b5e833e5b)

Author SHA1 Message Date
Gud Boi 4ab49082c1 Add opt-in Kraken chart lifecycle reproducer
Preserve the production chart journey behind
`--live-provider=kraken`; ordinary runs skip it without network
access. Public Kraken data needs no API key. Supply empty owned
broker config, a unique registry and explicit paper EMS without
submitting orders.

Observe readiness or guest failure, retain original errors, and
check observed actor endpoints and chart SHM after cancellation.
These observations do not prove all descendant PIDs have exited
or account for unpublished child SHM.

The selected live run is known-failing: readiness can precede
`rt_linked.mode`, Qt reports abstract paint calls, and teardown
left a paper actor requiring explicit SIGINT recovery. Preserve
this reproducer for the follow-up; do not treat its default skip
as successful live qualification.

Generation and failure evidence were recorded with the preceding
prerequisite commit in the existing session provenance.

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:23:30 -04:00
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