feat: latency publisher, release assurance, edge-doc reconciliation#257
Merged
Conversation
Bundles the working-tree changes as one set (per maintainer request):
- Latency publisher: `tether publish-latency` CLI + scripts/publish_jetson_latency.py
turn `tether bench realtime` certificates into a per-model comparison table.
New shared lib src/tether/realtime_cert_publish.py + multi-cert formatter in
realtime_cert.py; README latency-table markers (auto-populated on publish).
Tests: tests/test_realtime_cert_publish.py.
- Release assurance: src/tether/release_assurance.py + `tether release assure`
docs; tests/test_release_assurance.py.
- Chat subsystem updates: chat/{executor,loop,schema,welcome}.py + test_chat_regression.py.
- Shadow rollout: src/tether/shadow_rollout.py.
- Blackwell reconciliation: README hardware table now reflects onnxruntime-gpu>=1.25.1
shipping sm_120 kernels (replaces the stale "not supported / segfaults" claim,
matching the code's Blackwell guard).
- Type safety: fixed 21 mypy errors across cli.py (17), realtime_cert.py (1),
release_assurance.py (3), shadow_rollout.py (1); changed src is mypy-clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`{failed or "-"}` reused the f-string's double-quote delimiter (a PEP 701
feature, Python 3.12+), which is a SyntaxError on Python 3.10/3.11 — it broke
the `pytest (ubuntu py3.10)` CI job at collection of test_release_assurance.py.
Switched the inner literal to single quotes. Verified every changed .py file
compiles under Python 3.10.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
inject_table_into_readme verified both markers were present but not that END follows BEGIN; an out-of-order or duplicated END raised an unpack ValueError instead of returning False. Guard that END appears after BEGIN. Adds a regression test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
_final_decision derived PROMOTE/HOLD/ROLLBACK only from component decisions and ignored risk_signals, so a policy clamping actions at runtime (guard_violations > 0) returned PROMOTE while the report's own blocked_by listed it — a self- contradicting verdict in a deployment safety gate. - Hard-safety signals (guard_violations, policy_guard_regression) now force a non-PROMOTE decision (HOLD, or ROLLBACK for an active candidate), regardless of the promotion profile — these are zero-tolerance and not profile-tunable. - Profile-governed signals (policy action/latency deltas) stay governed by the promotion gate, so we don't over-block what a profile explicitly permits. - blocked_by now agrees with the decision: empty on PROMOTE, full failing-signal set otherwise — no more contradictory reports. Adds a regression test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Bundles several working-tree workstreams into one PR.
Changes
tether publish-latency+scripts/publish_jetson_latency.pyrendertether bench realtimecertificates into a per-model comparison table. New shared libsrc/tether/realtime_cert_publish.py+ multi-cert formatter inrealtime_cert.py; README latency-table markers (auto-populated on publish).src/tether/release_assurance.py+tether release assuredocs.chat/{executor,loop,schema,welcome}.py); shadow rollout packet writer.onnxruntime-gpu>=1.25.1shipping sm_120 kernels, replacing the stale "not supported / segfaults" claim (matches the code's Blackwell guard).srcis mypy-clean.Verification
ModuleNotFoundError: No module named 'uvicorn'(the[serve]extra is absent from the test env; the test imports uvicorn itself). Environmental, not a code defect.srcfiles.publish-latencyandrelease assureregister and run.🤖 Generated with Claude Code