Skip to content

fix(agents): attribute OpenCode catalog drift refusals without relaxing the guard (#58) - #144

Open
James3014 wants to merge 2 commits into
mainfrom
codex/issue-58-opencode-drift-attribution
Open

James3014 wants to merge 2 commits into
mainfrom
codex/issue-58-opencode-drift-attribution

Conversation

@James3014

Copy link
Copy Markdown
Owner

Native evidence reproduced an unattributable OpenCode catalog drift refusal: five material predicates collapsed into one generic error, so a witness could not tell a real catalog change from stale snapshot or scope bookkeeping.

This keeps the exact fail-closed guard (same five predicates, same order, same pre-provider throw point) and only names the first predicate that fires: GENERATION_CHANGED, SOURCE_CHANGED, SNAPSHOT_EXPIRED, FRESHNESS_CHANGED, or RUNTIME_IDENTITY_CHANGED. The historical refusal sentence is preserved verbatim with a machine-readable Drift suffix, and structured expected-vs-observed evidence rides on the error fields with host-sensitive runtime identity fingerprinted (sha256-16) rather than emitted raw.

Bounded observability repair only for #58. No resolver, validation, routing, retry, or lifecycle changes; no deployment or native witness claims.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant