Skip to content

Reject incomplete inventory captures and verify provider coverage - #55

Merged
harder merged 1 commit into
mainfrom
codex/maintenance-provider-outcomes
Oct 15, 2026
Merged

harder merged 1 commit into
mainfrom
codex/maintenance-provider-outcomes

Conversation

@harder

@harder harder commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

An exit-zero gh inventory result marked as truncated must not become complete, cacheable root coverage. The adapter now rejects its explicit stdout-truncation flag before JSON parsing. The current runner already appends a non-JSON truncation marker; this makes the adapter honor its completeness contract directly.

Ten full-capture regressions distinguish credential/network process failures, malformed and incompatible JSON, explicit truncation, valid empty inventory, failed custom coverage despite default success, denied enumeration and missing custom roots. They preserve provider diagnostics, retry failed captures and prevent absence-based cleanup. Valid empty coverage yields only review-only Untracked observations.

Validation:

  • Before the guard: 9 of 10 cases passed; only explicit truncation failed. Afterward: all 10 pass.
  • All 1,354 local tests pass; final build has zero warnings/errors and format verification passes. Formatter changes only line breaks in the new test; the final source was rebuilt and all 10 cases rerun.
  • Both native macOS hosts pass actual permission-denial inventory/cleanup proofs under gh 2.97.0 and 2.102.0. The fixture restores mode in finally and verifies unchanged objects/bytes/modes.
  • CI runs the real denial proof for both native hosts on Linux/macOS; the deterministic denied-enumeration test runs on all three test platforms.
  • Separate source/test review passed 49 affected tests. Separate native-proof/CI and final evidence reviews found no actionable issues. Final committed-head CI passes all 13 checks. Each of Linux, macOS and Windows passes 1,354 tests with zero failures/skips. Inspected all 68 native proof files and 212 fixture rows across Linux x64, macOS ARM64, Windows x64 and Windows ARM64, including actual denied-root proofs on POSIX. Both Windows jobs passed a same-head failed-job rerun after the first attempt hit GitHub API HTTP 403 rate limits; no proof gate was removed.

This PR also preserves PR #54 final evidence and closes original M02. Original M04 has final platform proof and awaits merge; the full 21-item goal remains active.

Copilot AI balanced review requested due to automatic review settings October 15, 2026 09:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Final committed-head cross-platform/native verification and artifact inspection still require maintainer confirmation.

0 open findings

What changed in this PR

This PR strengthens SkillView’s inventory completeness checks so truncated provider output cannot establish cached coverage or support absence-based cleanup.

Changes:

  • Reject explicitly truncated gh skill list output before JSON parsing.
  • Add ten capture regressions and native POSIX permission-denial proofs in CI.
  • Preserve PR #54 evidence, close M02, and document pending M04 verification.
File Description
tests/​SkillView.Tests/​Inventory/​InventoryProviderOutcomeTests.cs Tests failures, retries, coverage, and cleanup suppression.
src/​SkillView.Core/​Inventory/​LocalInventoryService.cs Corrects the minimum-version comment.
src/​SkillView.Core/​Inventory/​CleanupClassifier.cs Clarifies tracking-absence semantics in comments.
src/​SkillView.Core/​Gh/​GhSkillListAdapter.cs Rejects truncated captures without caching.
AGENTS.md Documents capture-completeness requirements.
agent_docs/​running-tests.md Explains regression and native-proof procedures.
agent_docs/​maintenance-implementation.md Records acceptance progress and verification limits.
agent_docs/​maintenance-acceptance.json Marks M02 complete using merged evidence.
agent_docs/​evidence/​prove-inventory-denied-root.py Adds isolated POSIX permission-denial verification.
agent_docs/​evidence/​maintenance-batch-8-provider-checkpoint.json Records local validation evidence and pending gates.
.github/​workflows/​ci.yml Runs denial proofs for both native POSIX hosts.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@harder
harder merged commit daac6fc into main Oct 15, 2026
22 of 24 checks 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.

2 participants