Repository navigation
feat(OMN-18961): the session-start goal surface announces a pending tick re-fire - #2289
Merged
Merged
Conversation
jonahgabriel
enabled auto-merge (squash)
September 21, 2026 03:55
jonahgabriel
pushed a commit
to OmniNode-ai/onex_change_control
that referenced
this pull request
Sep 21, 2026
…iclaude#2289 (#10621) * evidence(OMN-18961): author OCC companion for OmniNode-ai/omniclaude#2289 OCC companion by node_pr_lifecycle_fix_effect (OMN-13317 F1 / OMN-13990 / OMN-14285). Product PR head d7898148920043c8a666f62fbe5fe3480a030b5d. * evidence(OMN-18961): self-bind OCC#10621 + rebind contract_sha256 --------- Co-authored-by: omnimarket-bot <bot@omninode.ai>
Contributor
✅ Hostile Reviewer — PASSEDBlocking findings (critical/error): 0 Findings
Gate semantics (pilot phase)
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524) |
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.
OMN-18961. The companion to the driver change in the registry repository: when the morning tick has deferred itself to an announced usage-limit reset, the session-start goal surface says so.
Why
A stale goal with a re-fire coming and a stale goal nobody is coming back to are different states, and until now they printed identically. The reader of the second should re-baseline by hand. The reader of the first should usually wait, because a re-baseline run against a limit that is minutes from clearing burns the same budget the deferral exists to preserve.
The line prints after the failure cause and before the re-baseline command, because that command is the right action when nothing is coming and the wrong one when a re-fire is imminent.
What changed
The stale branch reads the deferral record the driver writes and prints the scheduled time. Absent record, nothing is said: announcing a re-fire that does not exist is worse than announcing none, because it tells the reader to wait for something nobody is going to send. A fresh goal never reads either file, on the same reasoning that already governs the failure cause.
The JSON field reader is now general over a file rather than hardcoded to the notice, so both records go through one decoder and one set of escape rules. No behaviour change to the failure-cause path.
Tests
Three cases added to
tests/hooks/test_session_start_goal_surface.py, each a real subprocess run: a pending re-fire announced beside the staleness with the cause still printed; no record meaning no claim; and a fresh goal staying silent. 33 passed, 0 skipped.Still pure bash, no interpreter, no network, no writes, exit 0 on every user-visible outcome. The existing static test that asserts all of that passes unchanged.
Evidence-Ticket: OMN-18961
Evidence-Source: OCC#10621