fix(lifecycle): bound secret prompts and stale config-watch polls

Secret prompts (setApiKey and descriptor secrets) previously ran with no
QML-side deadline by design, so a wedged kdialog kept the provider's
actions disabled until the settings page reopened. Give the interactive
prompt phase one long escape-hatch deadline (15 minutes) while keeping
the short noninteractive deadline away from live dialogs, and release
the pending state when it fires. The enforced lifecycle contract in
scripts/test_process_lifecycle.sh is updated accordingly.

Bring providerConfigWatcher under the same stale-source discipline as
the other executable sources: the followed poll name is tracked, a
changed watch command disconnects the old poll and follows the new one,
and replies from a retired poll are disconnected instead of being left
polling on every interval tick.

Close the two reply handlers that ran parsing after their ledger entry
closed: a provider fallback reply now always completes its fallback
queue slot (degrading to a scoped error row), and an account reply
always releases its account lane with a scoped error, so an unexpected
parse failure cannot strand a slot until the next full refresh.

Verification: make check (819 QML assertions passed, 71 skipped for
missing optional KDE modules locally; 71 python tests OK, 1 skip;
kpackagetool6 absent so the AppStream check is a local skip).
Documentation impact: CHANGELOG Unreleased updated; usage guide,
README, and TODO unaffected because no documented behavior, setup step,
or parity status changes.
fdba45dc36Simone committed on 9/9/2026, 10:41:30 PMparente91865d
4 files changedLine totals unavailable