Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/overlay/state.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ it("shows only authoritative compact execution details in plain language", () =>
expect(details).toEqual([
"Citrix",
"1:05",
"Effect evidence: separate read-only session (Tier 2)",
"Effect evidence: separate read-only session (Oracle tier 1)",
"0 model calls",
"No external network calls",
]);
Expand Down
10 changes: 5 additions & 5 deletions src/overlay/state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -464,12 +464,12 @@ export function overlaySecondaryItems(
if (effectTiers.length) {
const tier = Math.min(...effectTiers);
const phrase = {
1: "independent system interface",
2: "separate read-only session",
3: "persisted-state reacquisition",
4: "immediate screen confirmation",
1: "system-of-record check (Oracle tier 2)",
2: "separate read-only session (Oracle tier 1)",
3: "persisted-state reacquisition (Oracle tier 0)",
4: "immediate screen confirmation (Oracle tier 0)",
}[tier];
items.push(`Effect evidence: ${phrase} (Tier ${tier})`);
items.push(`Effect evidence: ${phrase}`);
}
if (state.modelCalls !== null) {
items.push(
Expand Down
45 changes: 22 additions & 23 deletions src/screens/Qualification.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -888,10 +888,10 @@ export function Qualification({
value={minimumTier}
onChange={(event) => setMinimumTier(Number(event.target.value))}
>
<option value={1}>Tier 1 · independent system</option>
<option value={2}>Tier 2 · independent session</option>
<option value={3}>Tier 3 · persisted-state reacquisition</option>
<option value={4}>Tier 4 · immediate screen</option>
<option value={1}>System of record · Oracle tier 2</option>
<option value={2}>Independent session · Oracle tier 1</option>
<option value={3}>Persisted-state reacquisition · Oracle tier 0</option>
<option value={4}>Immediate screen · Oracle tier 0</option>
</select>
</div>
</div>
Expand Down Expand Up @@ -995,7 +995,7 @@ export function Qualification({
>
<div className="field" style={{ marginBottom: 0, minWidth: 280 }}>
<label htmlFor="project-minimum-effect-tier">
Workflow minimum verification tier
Workflow minimum verification strength
</label>
<select
id="project-minimum-effect-tier"
Expand All @@ -1005,12 +1005,12 @@ export function Qualification({
setProjectMinimumTier(Number(event.target.value))
}
>
<option value={1}>Tier 1 · independent system</option>
<option value={2}>Tier 2 · independent session</option>
<option value={1}>System of record · Oracle tier 2</option>
<option value={2}>Independent session · Oracle tier 1</option>
<option value={3}>
Tier 3 · persisted-state reacquisition
Persisted-state reacquisition · Oracle tier 0
</option>
<option value={4}>Tier 4 · immediate screen</option>
<option value={4}>Immediate screen · Oracle tier 0</option>
</select>
</div>
<Button
Expand Down Expand Up @@ -1752,16 +1752,16 @@ export function Qualification({
setVerificationTier(Number(event.target.value))
}
>
<option value={1}>Tier 1 · independent system</option>
<option value={2}>Tier 2 · independent session</option>
<option value={1}>System of record · Oracle tier 2</option>
<option value={2}>Independent session · Oracle tier 1</option>
<option value={3}>
Tier 3 · persisted-state reacquisition
Persisted-state reacquisition · Oracle tier 0
</option>
<option value={4}>Tier 4 · immediate screen</option>
<option value={4}>Immediate screen · Oracle tier 0</option>
</select>
<span className="page-sub">
The project requires Tier{" "}
{project.project.minimum_effect_tier} or stronger.
The project requires its configured verification
strength or stronger.
{project.project.minimum_effect_tier < 4
? " Immediate-screen evidence is below the current minimum."
: " The current minimum permits immediate-screen evidence."}
Expand Down Expand Up @@ -1836,18 +1836,17 @@ export function Qualification({
setBindingVerificationTier(Number(event.target.value))
}
>
<option value={1}>Tier 1 · independent system</option>
<option value={2}>Tier 2 · independent session</option>
<option value={1}>System of record · Oracle tier 2</option>
<option value={2}>Independent session · Oracle tier 1</option>
<option value={3}>
Tier 3 · persisted-state reacquisition
Persisted-state reacquisition · Oracle tier 0
</option>
<option value={4}>Tier 4 · immediate screen</option>
<option value={4}>Immediate screen · Oracle tier 0</option>
</select>
<span className="page-sub">
The project requires Tier{" "}
{project.project?.minimum_effect_tier ?? minimumTier} or
stronger. Consequential writes cannot qualify from the
current screen alone.
The project requires its configured verification
strength or stronger. Consequential writes cannot
qualify from the current screen alone.
</span>
</div>
<div className="grid grid-2">
Expand Down
21 changes: 21 additions & 0 deletions tests/test_oracle_vocabulary.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""Desktop must present the public Seal oracle ladder to operators."""

from __future__ import annotations

from pathlib import Path

ROOT = Path(__file__).parents[1]


def test_operator_surfaces_use_the_seal_oracle_ladder() -> None:
qualification = (ROOT / "src" / "screens" / "Qualification.tsx").read_text(
encoding="utf-8"
)
overlay = (ROOT / "src" / "overlay" / "state.ts").read_text(encoding="utf-8")
public_copy = qualification + overlay

assert "System of record · Oracle tier 2" in qualification
assert "Independent session · Oracle tier 1" in qualification
assert "Tier 1 · independent system" not in public_copy
assert "Tier 2 · independent session" not in public_copy
assert "(Tier ${tier})" not in public_copy
6 changes: 3 additions & 3 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading