Repository navigation
feat(providers): V36-C08-DATA inactive model/evidence facts projection - #2041
Merged
Merged
Conversation
…ection Red checkpoint: the public types and a minimal projectModelFacts stub compile, the new cases fail on assertions (count 1 for the first case). Test-First: src/lib/providers.test.ts::keeps configured model hints distinct from observed evidence and unknown cost Test-First: src/lib/providers.test.ts::leaves wrong-identity or future or malformed observations unknown and stale ones non-current Test-First: src/lib/providers.test.ts::never runs getters or copies unrelated fields of untrusted evidence Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…vidence Adds the unused pure projectModelFacts projection: configured hints stay separate from source-stamped observations, mismatched identity, future and malformed evidence stay unknown, stale evidence is labelled non-current, and unknown effort/cost never become 0. No caller, IPC or selection is added. Test-First: src/lib/providers.test.ts::keeps configured model hints distinct from observed evidence and unknown cost Test-First: src/lib/providers.test.ts::leaves wrong-identity or future or malformed observations unknown and stale ones non-current Test-First: src/lib/providers.test.ts::never runs getters or copies unrelated fields of untrusted evidence Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Cuarroc
marked this pull request as ready for review
October 30, 2026 00:16
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
30 of 46 tasks
Contributor
✅ Merged into
|
| Condition | Required by | |
|---|---|---|
| ✅ | github-review-approved |
GitHub repository ruleset rule main-pr-required-checks |
| ✅ | label != do-not-merge |
— |
The batch, tested on draft #2042
| Condition | Required by | |
|---|---|---|
| ✅ | check-success = gates (linux) |
— |
| ✅ | check-success = gates (windows) |
— |
| ✅ | check-success = red-first |
— |
| ✅ | any of: check-success = @github-actions/gates (linux), check-neutral = @github-actions/gates (linux), check-skipped = @github-actions/gates (linux) |
GitHub repository ruleset rule main-pr-required-checks |
| ✅ | any of: check-success = @github-actions/gates (windows), check-neutral = @github-actions/gates (windows), check-skipped = @github-actions/gates (windows) |
GitHub repository ruleset rule main-pr-required-checks |
| ✅ | any of: check-success = @github-actions/red-first, check-neutral = @github-actions/red-first, check-skipped = @github-actions/red-first |
GitHub repository ruleset rule main-pr-required-checks |
| ✅ | any of: check-neutral = @mergify/Mergify Merge Protections, check-skipped = @mergify/Mergify Merge Protections, check-success = @mergify/Mergify Merge Protections |
GitHub repository ruleset rule main-pr-required-checks |
Times in UTC · dashboard · how the merge queue works
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.
Dieses Paket fügt nur eine ungenutzte, reine Datenfunktion hinzu: Sie trennt eingestellte Modell-Hinweise von echten, mit Quelle und Zeit belegten Beobachtungen. Unbekannte Werte für Aufwand und Kosten bleiben "unbekannt" und werden nie zu 0 oder "gratis"; nur ein ausdrücklich beobachtetes 0 bleibt 0. Es gibt keine Oberfläche, keinen Aufrufer, keine Modellwahl und keine Quoten- oder Schlüsseländerung, die Modellauswahl-Oberfläche (C08UI) bleibt hinter A1+R2 gesperrt.
Report
Package: V36-C08-DATA (parent V36-C08), Tier B, operator UMSETZEN, DRAFT. Base
82a79d25, head0d373808. Parent M0-P2 (PR #2015, mergeb1645626) is an ancestor of the base (checked, exit 0). Authority: Root/Stabs controller admission of the pure unused DATA leaf; no R2/Satz3/paid/key/routing grant.What changed (RAW 178 lines vs base, cap 180: 121
src/lib/providers.ts+ 57src/lib/providers.test.ts, 0 deletions)Additive only; no existing function, type, hook, export or test body was touched,
src/types.tsuntouched (read-only), no live caller added.New exports in
src/lib/providers.ts:ModelFact<T>={state:"known",value} | {state:"unknown"}ModelFactsInput{providerId, harness, configured?{model?,effort?}, observed?{providerId,harness,sourceId,model,observedAt (unix s),effort?,cost?{amount,unit}} | null}ModelFactsClock{nowSeconds, staleAfterSeconds}(caller-supplied; noDate.now, no built-in TTL)ModelFacts{configuredHint{model|null,effort|null}, observed: {state:"unknown",reason:"missing"|"identity-mismatch"|"invalid"|"future"} | {state:"observed",freshness:"current"|"stale",sourceId,model,observedAt,effort:ModelFact<string>,cost:ModelFact<{amount,unit}>}}projectModelFacts(input, clock): ModelFacts: pure; reads own data properties only (no getters, no spread, no logging, inherited members ignored). Represents evidence, does not authenticate the caller.Literal oracle table (fixed in the tests, not computed by production code):
model-configured/high, no observationunknown/missingmodel-observed, sourcesession-1, t=900, now=1000, window 300, effort/cost nullobserved/current, source+time kept, effort and costunknowneffort:"low",cost {0,"usd"}low, cost known{0,"usd"}(explicit 0 preserved)unknown/identity-mismatchunknown/futureunknown/invalidcurrent/stale(model still reported, non-current)unknowneffort/cost/configured, unrelated fieldsecretEvidence (all foreground under the assigned guard and warm slot,
CARGO_BUILD_JOBS=1)7edad0ff(same public types, stub projection):npm run typecheckexit 0;npm run test:unit -- src/lib/providers.test.ts -t "keeps configured model hints distinct from observed evidence and unknown cost"exit 1, 1 failed / 23 skipped, AssertionError onconfiguredHint(assertion red, count 1, not a missing-import red). Committed through the normal hooks.0d373808: same selector exit 0 (1 passed / 23 skipped); wholesrc/lib/providers.test.tsexit 0 (24 passed);npm run typecheckexit 0.ShellAccessibility,UsageView,UsageView.claims,ErsteinrichtungScreentests): exit 0, 25 passed.bash scripts/ci/red-first.sh(canonical, unchanged, own internal targets): exit 0, all 3 Test-First entries red/missing at base and green at head.bash scripts/ci/gates.sh lane prepushin this worktree: exit 0 (313 s; typecheck, lint, fe-test, hq-test, denkraum, clippy, rust-suite green).--no-verify;git push -uexit 0,git ls-remoteshows0d373808bde02bcc69498effbb15a82a3e570434.git diff --numstat 82a79d25gives 57/0 and 121/0.Test names: the second case was named without a comma so the Test-First trailer is not read as a list. No old assertion was changed.
Architecture drift
No finding; no seam file touched, no allowlist change.
NICHT ABGEDECKT
#[cfg(windows)]tests, ConPTY/DPAPI, Windows clippy arms): not covered on Linux; it runs in the merge queue.linuxlane.Review
Review: ausstehend (Stufe B, zwei verschiedene Nicht-Autor-Familien, vom Orchestrator/Root eingereiht). No author review launched, no Ready/queue/merge. Stabs updates PLAN after merge; C08UI stays open and gated.
🤖 Generated with Claude Code
Root review record (2026-10-30 00:25Z, head 0d37380)
nonBlankkeeps untrimmed value; asymmetric trim in identity compare (providers.ts:506-510)as nevercast in test 2Tier B complete with two non-author families (author Anthropic) → ready +
review-okbound to 0d37380.