Skip to content

fix: publish native GitHub reviews#10

Merged
CompleteDotTech merged 3 commits into
OpenCoven:mainfrom
CompleteDotTech:agent/native-review-publication
Jul 14, 2026
Merged

fix: publish native GitHub reviews#10
CompleteDotTech merged 3 commits into
OpenCoven:mainfrom
CompleteDotTech:agent/native-review-publication

Conversation

@CompleteDotTech

@CompleteDotTech CompleteDotTech commented Jul 14, 2026

Copy link
Copy Markdown
Member

Summary

  • publish PR results through GitHub's native review API instead of append-only issue comments
  • require complete, internally consistent, host-verified evidence before APPROVE or REQUEST_CHANGES; downgrade stale, partial, contradictory, dirty-worktree, incomplete-diff, or unverified-test output to COMMENT
  • bind review identities to both audited head and base revisions, verify App-authored HMAC markers, and recover publication idempotently after crashes or signing-key rotation
  • dismiss stale/superseded decisive reviews only after verified GitHub state, including head changes, base retargeting, reopening, and base-branch pushes
  • acknowledge webhooks before long work, run compute in supervised child processes, prioritize revision maintenance separately, and recover queued/running/publication work with durable rate-limit-aware backoff
  • fail closed unless task state, bubblewrap isolation, external egress/resource controls, native-review policy triggers, and live pull_request/push App subscriptions are explicitly verified
  • scope GitHub installation tokens by phase and keep GitHub/App/webhook credentials out of the untrusted runtime

Root cause

The hosted adapter published agent text as issue comments and trusted runtime claims without fully reconciling them against the PR revision, checkout, diff coverage, validation receipts, or existing GitHub review state. It also performed long work in the webhook request path and lacked reliable recovery for several crash, race, and transient-API cases. Together, those gaps caused inconsistent pseudo-reviews, duplicate or stale review state, and ambiguous test claims.

This remains deployment-specific transport and evidence enforcement. Canonical familiar/authority rules and result contracts continue to live in OpenCoven/coven-github.

Validation

  • npm test — 93 passing
  • npm run build
  • npm run smoke:app
  • node --check scripts/doctor-app-config.mjs
  • jq empty config/example-policy.json
  • git diff --check
  • GitHub Actions TypeScript test + build on b96014caf095243dc8226b7e393d8d900960bca1

Coverage includes delivery-claim and publication races, orphan recovery, worker crashes, stale head/base revisions, base-branch pushes, masked dismissal failures, Retry-After handling, signed-marker forgery/key rotation, inline diff locations, incomplete evidence, secret redaction, state-path hardening, and isolation gates.

Deployment gates

  • keep publication.mode=record_only until the installed App is verified to receive both pull_request and push, and protected-branch dismissal authority is proven with a real test PR
  • deploy the file-backed queue/locks on one Linux host and a local filesystem with atomic rename; multi-host/HA needs an external durable queue and distributed lease
  • set external-isolation declarations only after egress and CPU/memory/PID/disk limits actually exist
  • this release is trusted-repository-only because coven-code still receives a reusable model credential; untrusted/public PR execution needs a separately constrained worker and quota-limited credential broker

@CompleteDotTech
CompleteDotTech marked this pull request as ready for review July 14, 2026 11:43
@CompleteDotTech
CompleteDotTech merged commit 977254a into OpenCoven:main Jul 14, 2026
1 check passed
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