Skip to content

[2/5] Observe locked SDK baselines accurately - #52

Merged
ebarti merged 2 commits into
mainfrom
agent/sdk-evolution-locked-baselines
Jul 28, 2026
Merged

[2/5] Observe locked SDK baselines accurately#52
ebarti merged 2 commits into
mainfrom
agent/sdk-evolution-locked-baselines

Conversation

@ebarti

@ebarti ebarti commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • treat uv.lock as the authoritative SDK baseline during explicit candidate inspection
  • isolate locked baselines when the matching SDK is absent or the ambient environment has drifted
  • keep non-opt-in runs honest by recording the actual ambient version instead of stamping it as locked
  • convert isolated API snapshot setup, install, execution, timeout, and malformed-output failures into bounded evidence

Stack

Review boundary

This layer repairs baseline provenance and snapshot collection only. Behavior-probe subprocess failures and the final fail > incomplete > changed > pass assessment are intentionally implemented together in the next layer so incomplete evidence cannot temporarily appear green.

Validation

  • PYTHONPATH=. .venv/bin/python -m pytest -q — 421 passed, 12 skipped
  • .venv/bin/ruff check .
  • .venv/bin/mypy
  • uv lock --check
  • git diff --check

@ebarti
ebarti marked this pull request as ready for review July 28, 2026 16:48
Base automatically changed from agent/sdk-evolution-demo-reliability-plan to main July 28, 2026 17:53
@ebarti
ebarti merged commit 86ec767 into main Jul 28, 2026
11 checks passed
@ebarti
ebarti deleted the agent/sdk-evolution-locked-baselines branch July 28, 2026 17:54
ebarti added a commit that referenced this pull request Jul 28, 2026
## Summary

- parse resolver updates once as exact package/from/to transitions and
reuse them across collection and deterministic gates
- derive canonical locked-baseline expectations from collected package
evidence, including no-update runs
- contain isolated behavior setup, install, execution, timeout, and
malformed-output failures as bounded structured evidence
- compute `fail > incomplete > changed > pass` from raw probes, diffs,
full probe pairing, and trusted expectations
- recompute the canonical assessment for reports and implementation
gates instead of trusting a cached headline
- persist `behavior_summary.json`, include it in the current-state
manifest, and surface snapshot/behavior errors and reasons in the
Markdown report
- require exact API-diff transitions and fail closed on missing,
malformed, contradictory, incomplete, or breaking behavior evidence

## Stack

- Depends on #52
- This is layer 3 of 5 in the SDK evolution demo reliability stack

## Review notes

The layer received a two-pass correctness review. Review findings
covered drifted no-update baselines, contradictory cached summaries,
malformed nested details, failure precedence, partial probe sets, empty
self-declared expectation scope, and real breaking-payload coverage; all
were repaired and re-reviewed with no remaining actionable findings.

## Validation

- `PYTHONPATH=. .venv/bin/python -m pytest -q` — 449 passed, 12 skipped
- focused SDK evolution suite — 90 passed
- `.venv/bin/ruff check .`
- `.venv/bin/mypy`
- `uv lock --check`
- `git diff --check`

Security-diff scans were intentionally not part of this phase review.
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