Repository navigation
Complete private runtime reports and saved-run acceptance - #345
Merged
Merged
Conversation
Signed-off-by: Narendran Raghavan <[email protected]>
Signed-off-by: Narendran Raghavan <[email protected]>
rng1995
marked this pull request as ready for review
November 5, 2026 16:57
rng1995
requested review from
chrisknvidia,
mosheabr and
rmalani-nv
as code owners
November 5, 2026 16:57
rng1995
commented
Nov 5, 2026
rng1995
left a comment
Collaborator
Author
There was a problem hiding this comment.
Self-review: reproduced a replay output-bound mismatch; regression coverage and a fix will follow.
rng1995
commented
Nov 5, 2026
rng1995
left a comment
Collaborator
Author
There was a problem hiding this comment.
Self-review: two producer/consumer gaps reproduced in case coverage and comparison exclusions. Fixes and regressions will follow.
Signed-off-by: Narendran Raghavan <[email protected]>
…nto naren/private-runtime-reports Signed-off-by: Narendran Raghavan <[email protected]>
Signed-off-by: Narendran Raghavan <[email protected]>
rng1995
commented
Nov 5, 2026
rng1995
left a comment
Collaborator
Author
There was a problem hiding this comment.
Automated review: 5 findings (0 P1, 0 P2, 5 P3); 5 posted inline.
Address review 5789863421 on #345: - Read the engine's `error` alias only when `execution_errors` is absent, so each execution error is listed once and later limitations are not pushed out of the 64-row diagnostics budget. - Settle sanitization to a fixed point in the shared validator and return the validated payload from the projection. The live report, its provenance copy and the saved snapshot are now the same bytes, including multi-line diagnostics with redacted keys. - Import the atomic writer only when saving, so replay needs no tier3 modules. - Make the completeness tests start from a complete baseline, cover the snapshot completeness/omission/top-level/row-bound checks, and run the real loader with optional packages blocked under a generous timeout. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
The offline replay check blocked a hand-picked package list that missed the tier3, publisher and dashboard extras (mcp, jwt, oauthlib, dotenv, streamlit) and the security scanners. List the top-level import names of every optional extra in pyproject.toml so a module-level import of any of them in the replay path fails the test. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
Resolve the CHANGELOG.md conflict by keeping both new "Added" entries: private runtime reports (this branch) and tier3 feedback chat (main). Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
rng1995
enabled auto-merge (squash)
November 5, 2026 21:59
Report text cut while settling sanitization as truncated, so a cell that a later redaction pass pushes past the display bound is not silently shortened. Pin the fixed-point loop with an input that needs three sanitizer passes and check every retained string is already settled. Block cryptography and httpx in the replay dependency test; optional extras pull them in and no base dependency provides them. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
A hand-kept list of blocked extras misses packages the extras pull in (requests, aiohttp, tiktoken and others). Refuse every module that is not standard library, skillevaluator, a base dependency or already loaded at interpreter startup, so any new optional import fails the test. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Narendran Raghavan <[email protected]>
This was referenced Nov 6, 2026
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.
Summary
Private runs already collect loading, MCP, behavior and comparison evidence, but cannot show those facts consistently or replay them after temporary artifacts are removed. This implements split-plan item 24 with one passive runtime projection and a retained display snapshot. Public activation remains item 25.
plugin_runtime_report.jsonbefore private cleanup and caller publication. Offline replay uses fixed-file, no-follow, bounded JSON/schema validation, requires no source tree or optional runtime dependencies, and performs no probes or regrading. Storage failures remain advisory and cannot suppress caller publication or cleanup.The ordinary reporter/CLI entrypoints remain unchanged. Snapshot replay is an explicit private API; older runs without a snapshot report it unavailable. Private usage and the implementation design are documented in the included contributor notes.
Verification
make lint, changed-file formatting,make build, OSS-boundary scan, Fern check (0 errors, 1 warning), and staged/new-commit secret scans passed.make test: 22,125 passed, 60 skipped, 27 failed with an initially unlocked environment/system Python. The failing test and owning source files are unchanged from the task base. All 27 previously failing cases passed after syncing locked dependencies and selecting the project Python on PATH (85.54s). The original failed full run is retained; this is not a claim that the initial full run was green.Acceptance substitutes external provider/container execution with local deterministic fixtures and runs emitted setup/census scripts. It exercises real discovery, validation, preparation, service/runner orchestration, evidence, comparisons, publication and cleanup. It does not qualify live agents, providers, remote backends or MCP services.
CI full test jobs passed on Python 3.12, 3.13 and 3.14 for the implementation commit. Windows exposed an oversized pytest parameter ID; the follow-up gives the fixture short IDs (21 replay checks passed locally) and the latest CI run is pending. Product code is unchanged by that follow-up.
Review follow-up
Three verified inline findings are fixed in
37bdd247and their threads are replied to and resolved:Post-merge compatibility: 111 passed, including the real four-arm workflow and saved replay. The extended affected run recorded 1,899 passed, 6 skipped and 4 subprocess deadline failures; all four passed in a serial rerun at the original limits. Lint, builds, installed base-only replay, 247 Python/Jinja/JSON byte comparisons, three CLI help checks and secret scans passed. Independent re-review found no new actionable issue. The concurrent remote merge is preserved; the latest CI run is pending.
Release Impact
CHANGELOG.mdand private API usage notes.