fix: restore public smoke contract parity - #4355
Merged
Merged
Conversation
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
This was referenced Sep 14, 2026
songoow
added a commit
to songoow/loopx
that referenced
this pull request
Sep 14, 2026
…esive owners loopx-project#4355 froze quota.py (1118) and support_control.py (1015) at their baselines while each cohesive extraction lands. This lands those two extractions and retires both pins: - quota_failure_report.py owns the honest failure and validation payloads: what gets logged, what the operator sees, and how a rejected request is reported without inventing success. Moved verbatim; the handler keeps only the renamed imports. quota.py returns to 922 lines. - support_control_chat.py owns the chat and dashboard registration pair, which launch the same local presentation surface with different defaults. support_control.py returns to 889 lines. No behavior change: the quota failure path renders the same payloads, and the chat/dashboard parsers register identically. Validation: module-size and help-manpage smokes pass with both pins removed; 57 quota settlement CLI tests pass except two sqlite closeout cases that fail identically on unmodified main; chat/dashboard --help and a quota should-run failure path render unchanged; Ruff clean on all four files. Signed-off-by: song <liusongstep@gmail.com>
songoow
added a commit
to songoow/loopx
that referenced
this pull request
Sep 14, 2026
…esive owners loopx-project#4355 pinned `quota.py` (1118) and `support_control.py` (1015) at their current baseline while cohesive extractions land. This retires both pins by moving two genuinely cohesive owner groups out: * `quota_failure_report.py` (273) owns what gets logged, what the operator sees, and how a rejected request is reported without inventing success. * `support_control_chat.py` (155) owns the chat/dashboard parser registration. `quota.py` and `support_control.py` drop to 923 and 899 lines, both back under the default 1000-line budget, so the temporary pins are removed from the module-size smoke. Review follow-ups on the previous head: * Deleted two unused settlement-identity helpers (`_heartbeat_receipt_settlement_bindings`, `_effective_spend_turn_instance_id`) that had been copied into the new module while the live definitions stayed in `quota.py`. They had no caller, and a second copy of the quota settlement identity rule would drift on the next change to it. Their now-unused imports went with them. * Moved the `support_control_chat` import back into the module import block; it sat after `SUPPORT_CONTROL_COMMANDS`, which Ruff reported as `E402`. Verified: the module-size, support-control and control-plane modularization smokes pass; `chat`, `dashboard` and `quota` parse their arguments; the cli_commands suite is 72/72; the quota failure path renders unchanged; Ruff is clean on all four files. Signed-off-by: song <liusongstep@gmail.com>
songoow
added a commit
to songoow/loopx
that referenced
this pull request
Sep 14, 2026
…esive owners loopx-project#4355 pinned `quota.py` (1118) and `support_control.py` (1015) at their current baseline while cohesive extractions land. This retires both pins by moving two genuinely cohesive owner groups out: * `quota_failure_report.py` (273) owns what gets logged, what the operator sees, and how a rejected request is reported without inventing success. * `support_control_chat.py` (155) owns the chat/dashboard parser registration. `quota.py` and `support_control.py` drop to 923 and 899 lines, both back under the default 1000-line budget, so the temporary pins are removed from the module-size smoke. Review follow-ups on the previous head: * Deleted two unused settlement-identity helpers (`_heartbeat_receipt_settlement_bindings`, `_effective_spend_turn_instance_id`) that had been copied into the new module while the live definitions stayed in `quota.py`. They had no caller, and a second copy of the quota settlement identity rule would drift on the next change to it. Their now-unused imports went with them. * Moved the `support_control_chat` import back into the module import block; it sat after `SUPPORT_CONTROL_COMMANDS`, which Ruff reported as `E402`. Verified: the module-size, support-control and control-plane modularization smokes pass; `chat`, `dashboard` and `quota` parse their arguments; the cli_commands suite is 72/72; the quota failure path renders unchanged; Ruff is clean on all four files. Signed-off-by: song <liusongstep@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Repair current-main public smoke regressions across heartbeat/bootstrap prompt contracts, capability-gate projection, status capability readback, CLI help/output budgets, monitor/todo routing, onboarding, installer/configure-goal fixtures, and Reward Memory actor-scoped recall/writeback.
The implementation reuses the existing typed capability and provider boundaries. Reward-memory outcome staging is localized to the quota helper, and repeated installer fixture runs skip only the already-covered optional extension scan so the smoke remains inside the suite timeout budget.
Validation
git diff --checkpassed.install-local-smokein 94 seconds.cqr_fe410a11884a80091866recorded and verified against the exact committed diff; strict receipt policy is valid.Premerge status
The risk-based premerge gate still reports two run failures in this host: the catalog runner resolves the installed checkout and times out its stale
install-localinvocation at the 120-second runner budget, whilecatalog-run-e2e-smokewas a transient failure and passed on direct rerun. Direct changed-file checks and the boundary run passed. No manual holds or tracked side effects were reported.This is a multi-surface runtime/control-plane change; it is submitted for normal maintainer review and is not self-merged.