Conversation
songoow
marked this pull request as draft
September 21, 2026 09:40
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
…n trigger Add the default-off progress_review policy, the strict progress_review_receipt_v0 contract and a pure trigger that counts consecutive completed drift receipts joined to run rows by turn identity. In assist the trigger raises the existing autonomous replan obligation after the typed repeat fuse; unknown, abstained, failed or missing receipts break the streak, an acknowledged replan re-arms it, and a changed goal contract invalidates earlier receipts. The same context is read by status projections and by the refresh-state writeback, so an acknowledgement is judged against the obligation that status shows. The core imports nothing from the observer package and adds no pause, gate or acceptance authority. Signed-off-by: song <liusongstep@gmail.com>
…aces Register the builtin progress-review-sentinel capability and expose its per-goal policy (off, shadow, assist; drift signal; drift threshold) through configure-goal flags, the configuration catalog, the Dashboard capability editor, the chat configuration API and dashboard localization, with a bilingual capability README. The policy is default off and a malformed block fails closed to off. Signed-off-by: song <liusongstep@gmail.com>
The observer asks three Noul questions (behavior_change, serves_acceptance, evidence_increment) next to the two Choice questions, derives the noul and choice drift signals with the configured label threshold, and, when bound to a runtime root, writes one progress_review_receipt_v0 per evaluated event under the goal runtime. Probabilities inside the undecided band are not decisions, so an evaluation with no decided answer still abstains. drift label records a private human truth and drift status reports agreement per signal; labels never enter a receipt. Signed-off-by: song <liusongstep@gmail.com>
…d-loop test loopx-jev sentinel compare replays a frozen 16-sequence matrix (6 constructed cosmetic-drift sequences, 3 mixed sequences that drift after genuine work, 7 real upstream commits labelled on-goal) against recorded provider answers and reports, per sequence, when the typed repeat fuse fires, when each receipt signal first flags drift, when assist would raise the obligation, and every false flag; --live records fresh answers. The closed-loop test drives one real refresh-state sequence through off, shadow and assist, checks loopx status, accepts a real acknowledged replan and verifies the re-arm. The smoke replays the committed recording without a credential. Signed-off-by: song <liusongstep@gmail.com>
Update the operation guide and the decision record in both languages, link the capability from the README capability tables and the research RFC, and state what the committed live recording shows and does not show: the typed fuse fires on none of the sixteen sequences, the noul signal flags six of nine drift sequences at round one with no false flags on real commits, cosmetic churn after a landed implementation is missed, and one executed negative probe was flagged in two of three live runs. Signed-off-by: song <liusongstep@gmail.com>
songoow
force-pushed
the
codex/jev-drift-shadow-upstream
branch
from
September 21, 2026 10:59
1f2f218 to
6be1537
Compare
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.
What this PR does
Closes the progress-review loop that #4854 started, on top of the existing LoopX contracts, and ships a reproducible differential.
progress-review-sentinel(default off). A per-goal policycontrol_plane.progress_reviewwith modesoff/shadow/assist, a strictprogress_review_receipt_v0contract, and a pure trigger that counts consecutive completed drift receipts joined to run rows by turn identity. Inassist, the trigger raises the existingautonomous_replan_obligation(kind: external_progress_review_drift) after the typed repeat fuse; unknown, abstained, failed or missing receipts break the streak; an acknowledged replan re-arms it; a changed goal contract invalidates earlier receipts. The refresh-state writeback judges an acknowledgement against the same obligation thatloopx statusshows.configure-goal --progress-review-mode|--progress-review-signal|--progress-review-drift-threshold|--clear-progress-review-configuration, the configuration catalog, the Dashboard capability editor, the chat configuration API and dashboard localization. Malformed blocks fail closed tooff.packages/loopx-jev). Three Noul questions next to the two Choice questions; typed drift signals derived with the label threshold;drift init --runtime-rootwrites one receipt per evaluated event under the goal runtime;drift labelrecords private human truth anddrift statusreports agreement. The core imports nothing from the package.loopx-jev sentinel comparereplays a frozen 16-sequence matrix (6 constructed cosmetic-drift sequences, 3 mixed sequences that drift after genuine work, 7 real upstream commits labelled on-goal) against committed provider recordings;--liverecords fresh answers.examples/progress-review-sentinel-smoke.pyreplays it without a credential.packages/loopx-jev/tests/test_closed_loop.pydrives one realrefresh-statesequence three ways:offsees nothing (the typed fuse cannot fire on self-declaredadvanced),shadowshows receipts and no obligation,assistraises the obligation,loopx statuspublishes it, a real acknowledged replan re-arms it, and one more drift round is not enough.Why
typed_progress_repeat_triggerneeds identical fingerprints plus a self-declaredunchanged/blocked. An Agent that keeps declaringadvancedwith a freshhypothesis_idwhile only renaming identifiers is invisible to it, and the periodic review looks at that Goal only after 20 durable runs.Recorded differential (committed live run,
jev-1.13.0, 35 rounds, all completed)noulreceiptschoicereceiptsassistobligation at threshold 2All six purely cosmetic sequences, including an 18 KB rename sweep, were flagged at round 1 and would raise the obligation at round 2. Client-measured assessment latency: 807 ms median, 1.5 s p95; 1879 median input tokens.
What it misses. Once a real implementation exists in the scoped file, later cosmetic churn on that file kept
serves_acceptanceat 0.62–0.90, so none of the three mixed sequences was flagged at its drift round. One executed negative probe was flagged as drift in two of three live runs. Across three live runsnoulflagged 6, 7 and 6 of 9; one of 35 answers in one run was rejected by the strict decoder (selected label ≠ argmax) and failed closed.Verification
refresh-state, injected answers, receipts, labels, matrix strictness, replay determinism, closed loop).tests/control_plane/test_external_progress_review.pyandtests/capabilities/test_progress_review.py; regression on obligation, refresh gate, configuration UI, chat API and capability registry suites (115 + 76 passing locally).ruff checkon the CI scope, strictmypyon the new modules,docs-governance-smoke,repository-hygiene-smoke,progress-review-sentinel-smoke.Boundaries and what is not claimed
progress_observation.Still a Draft: maintainers decide whether this bounded closed loop and its recorded differential are worth adopting.