Uh oh!
There was an error while loading. Please reload this page.
fix(policy): validate the applicable advisor candidate - #2850
Conversation
🌿 Preview your docs:https://nvidia-preview-pr-2850.docs.buildwithfern.com/openshell |
johntmyers
commented
Aug 20, 2026
BlockedHead SHA: Gator is blocked because PR #2850 has merge conflicts with Next action: @johntmyers, update the branch from current |
2d72d06 to
6b82f88Compare
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: Project-valid implementation of accepted issue #2821, covering exact-candidate evaluation, actionable application failures, and preservation of inspected endpoint contracts.
Head SHA: 6b82f885654867d1b2fe391fff2610dfc35283b5
Base SHA: ef296806f52c03956a4bb7ce9a384105160f9c6a
Merge base SHA: ef296806f52c03956a4bb7ce9a384105160f9c6a
Patch ID: f04e290221220295af9e228daa89d7891c2992fe
Gator payload: 4
Review mode: initial
Previous reviewed SHA: none
Review budget exhausted: no
Maintainer decision required: no
Blocking findings:
GATOR-6b82f885-01: Review tokens and effective-policy hashes use non-canonical protobuf encodings for nested map fields, so unchanged supported policies can appear stale.GATOR-6b82f885-02: Canonicalizing a one-port denial against a multi-port inspected endpoint can grant the new binary every port in that endpoint.
Carried findings:
- None
Non-blocking suggestions:
- None
Docs: Fern documentation and the related CLI skill/reference were updated for the user-visible review-token and application-error behavior.
Next state: gator:in-review
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
6b82f88 to
d9d38a5Comparejohntmyers
commented
Aug 20, 2026
Addressed both blocking Gator findings in
Verification:
|
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: Project-valid implementation of accepted issue #2821, covering exact-candidate evaluation, actionable application failures, and preservation of inspected endpoint contracts.
Head SHA: d9d38a561944dd041342c004dbfe6ff5b3c8d8de
Base SHA: 6c34a3c6458f1c1852fb9a89bb89b778a99fa19b
Merge base SHA: 6c34a3c6458f1c1852fb9a89bb89b778a99fa19b
Patch ID: e623f3b05064d830132c4a6d3fe099bba96f4397
Gator payload: 4
Review mode: follow_up
Previous reviewed SHA: 6b82f885654867d1b2fe391fff2610dfc35283b5
Review budget exhausted: no
Maintainer decision required: no
Thanks @johntmyers. I checked your two remediation updates in the author-only delta: canonical serialization now covers the relevant nested protobuf maps while preserving repeated-field order, and advisor canonicalization narrows a copied inspection contract to the observed port before owner selection.
Blocking findings:
- No blocking findings remain.
GATOR-6b82f885-01andGATOR-6b82f885-02are resolved by this head.
Carried findings:
- None.
Docs: Fern documentation and the related CLI skill/reference cover the user-visible review-token and application-error behavior.
Next state: gator:in-review pending required E2E dispatch; pipeline watch begins only after a current-head E2E workflow is queued, running, or complete.
Label |
zredlined
commented
Aug 21, 2026
@johntmyers Fix looks good to me. Ran a 30-min session with agent auto-approver, checking for the failure condition. 8 ambiguous agent policy proposal attempts happened in the session, each rejected before review (vs failing after approval) |
Build and validate the exact effective-policy candidate before approval, bind review to live policy/provider/credential inputs, and preserve inspected endpoint contracts during mechanistic expansion. Closes#2821 Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Serialize nested protobuf maps in stable key order for proposal review tokens and effective-policy hashes. Narrow reused multi-port endpoint contracts to the denied port so advisor proposals cannot widen binary access. Add regressions for both cases. Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Create the issue 2821 regression sandbox detached with a durable canonical main process so policy denial, approval, and hot-reload checks run before lifecycle exit. Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
d9d38a5 to
8e77aefComparejohntmyers
commented
Aug 21, 2026
CI Diagnosis and E2E Test AttestationThe three failures had one lifecycle/test mismatch:
Current The issue-specific regression had the same one-shot-main-process assumption, so
Test summary
Additional verification:
|
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: Project-valid implementation of accepted issue #2821, covering exact-candidate evaluation, actionable application failures, and preservation of inspected endpoint contracts.
Head SHA: 8e77aef742289e49d008571081f0814efe7968e1
Base SHA: de4c1fecf564cd16854447ec9c08659e7b64061b
Merge base SHA: de4c1fecf564cd16854447ec9c08659e7b64061b
Patch ID: a706ae97aee1ad413ab12fbd3ceb531ac450a34c
Gator payload: 4
Review mode: follow_up
Previous reviewed SHA: d9d38a561944dd041342c004dbfe6ff5b3c8d8de
Review budget exhausted: no
Maintainer decision required: no
Thanks @johntmyers. I checked the latest author-only delta and confirmed that it changes the issue regression to create a detached sandbox with a durable canonical process before exercising denial, approval, and hot reload. The two earlier reviewed commits are patch-equivalent across the rebase, so the prior resolutions remain valid. I also considered @zredlined's maintainer report that repeated ambiguous proposals were rejected before review; it is consistent with the intended fail-closed behavior and does not introduce a new obligation.
Blocking findings:
- No blocking findings remain.
GATOR-6b82f885-01andGATOR-6b82f885-02remain resolved.
Carried findings:
- None.
Docs: Fern documentation and the related CLI skill/reference cover the user-visible review-token and application-error behavior; the latest delta changes only E2E lifecycle setup.
Next state: gator:watch-pipeline; current-head Branch Checks and E2E workflows are running.
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
johntmyers
commented
Aug 21, 2026
Implemented the approve-all follow-up in What changed
Regression coverage
Verification
|
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: Project-valid implementation of accepted issue #2821, covering exact-candidate evaluation, actionable application failures, and preservation of inspected endpoint contracts.
Head SHA: 22e595cb1749f2494d4cac8c3f63fbe42f94db84
Base SHA: de4c1fecf564cd16854447ec9c08659e7b64061b
Merge base SHA: de4c1fecf564cd16854447ec9c08659e7b64061b
Patch ID: 748f0cdcd8a263791af8d06c47b699cfcba91eb1
Gator payload: 4
Review mode: critical_only
Previous reviewed SHA: 8e77aef742289e49d008571081f0814efe7968e1
Review budget exhausted: yes
Maintainer decision required: no
Thanks @johntmyers. I checked your bulk-approval update in the author-only delta, including the one-snapshot staging path, one-write persistence guard, stale-input rejection, provider-layer validation, per-chunk conflict handling, and TUI result wording. The critical-only convergence pass found no newly introduced Critical defect.
Blocking findings:
- No blocking findings remain.
GATOR-6b82f885-01andGATOR-6b82f885-02remain resolved.
Carried findings:
- None.
Docs: Existing Fern documentation covers the user-visible review-token and application-error behavior; this delta updates the bulk RPC contract and TUI wording without introducing a new setup flow.
Next state: gator:watch-pipeline; current-head Branch Checks and Helm Lint are green, and the required E2E workflow is queued/running.
johntmyers
commented
Aug 21, 2026
Monitoring CompleteMonitoring is complete because this PR has merged. Head SHA: Final status: the PR merged while gator was monitoring the pipeline. I removed the active |
Summary
Fixes policy-advisor approval so the prover evaluates the exact effective-policy candidate that can actually be applied. Reviews are bound to live policy, provider, and non-secret credential inputs; changed inputs refresh the candidate and require fresh review, while unchanged candidates reuse the stored prover result.
Related Issue
Closes#2821
Changes
Testing
mise run pre-commitpassesmise run cipassescargo test -p openshell-policycargo test -p openshell-server grpc::policy::testsmise run go:cimise run sdk:ts:cimise run e2e:mechanistic-existing-endpointmise run e2e:dockerChecklist