Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
197ce14
test(browser): require pinned Chrome Agent Task execution
seonghobae Aug 11, 2026
f9917cd
feat(browser): execute controlled Agent Task in pinned Chrome
seonghobae Aug 11, 2026
41c10cf
chore(browser): sync hardened fixture contract
seonghobae Aug 11, 2026
9ed317b
test(browser): require unchanged Agent Task URL
seonghobae Aug 11, 2026
65be355
test(browser): prove Agent Task URL remains unchanged
seonghobae Aug 11, 2026
33ec162
chore(browser): align Agent Task execution with fixture hardening
seonghobae Aug 11, 2026
b619f17
merge: align pinned Chromium Agent Task proof with current prerequisite
seonghobae Aug 15, 2026
c261541
merge: align pinned Chrome Agent Task proof with current prerequisite
seonghobae Aug 17, 2026
0b3c590
test(browser): reject page-controlled Agent Task state diagnostics
seonghobae Aug 20, 2026
b35e97c
fix(browser): redact Agent Task state diagnostics
seonghobae Aug 20, 2026
b2c9cef
test(browser): reject catch-all Agent Task session cleanup
seonghobae Aug 21, 2026
6d30e9e
fix(browser): fail closed on Agent Task session cleanup
seonghobae Aug 21, 2026
d1f0dfc
docs(browser): record pinned Agent Task evidence
seonghobae Aug 21, 2026
4930ab7
chore(browser): refresh Agent Task execution on current fixture
seonghobae Aug 26, 2026
991e4d8
test(browser): expose cleanup evidence defects
seonghobae Aug 26, 2026
d2d504d
fix(browser): preserve cleanup failure causality
seonghobae Aug 26, 2026
5bb7c7f
test(browser): cover truncated cleanup response
seonghobae Aug 26, 2026
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ All notable changes to OriginWeave are documented in this file. The format follo
- Real loopback TCP integration proof plus deterministic timeout, refusal, retry, peer-inspection, peer-mismatch, canonicalization, IPv6 metadata, and single-use replay tests.
- Real loopback rustls integration covering trusted DNS SAN, Common-Name fallback rejection, wrong-name and untrusted-root rejection, fixed-time expiry and not-yet-valid failures, exact IPv4 and IPv6 SANs, TLS 1.2/TLS 1.3, required and optional ALPN, and transport-origin binding.
- Cumulative interactive-first RAM, VRAM, batch, local-model, admission, pause, and compositor-pressure mitigation plans, including active-consumer reduction at exact hard limits.
- Real pinned-Chrome WebDriver evidence for the controlled Agent Task fixture: the CI lane uses an isolated profile, disables extensions, types and submits synthetic text, observes the same-document post-condition, and proves profile cleanup; this does not claim a shipped OriginWeave browser adapter.
- Universally value-redacted network evidence with explicit path, metadata, and provenance bounds; ambiguous path rejection; validated source URLs; lowercase SHA-256 identifiers; and verification state.
- Rust 1.97.1 build contract, strict Clippy and rustdoc gates, and exact production function, line, region, and branch coverage enforcement.
- Hourly bounded OpenCode product-development workflow using `NVIDIA_NIM_API_KEY`, an unprivileged disposable workspace, loopback-only model broker, independently verified patches, and publication through a dedicated `OPENCODE_PR_TOKEN` that cannot review or merge.
Expand Down
4 changes: 2 additions & 2 deletions docs/DOCUMENTATION_FITNESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ Active #64 makes a successful action-outcome value require existing verified pro

### 3.19 Controlled Agent Task fixture

Active #65 supplies a deterministic synthetic local web fixture with a labelled semantic input, submit control, same-document post-condition and explicitly hidden/untrusted prompt-injection text. The fixture contains no credential collection surface and requires no live third-party site.
Active #65 supplies a deterministic synthetic local web fixture with a labelled semantic input, submit control, same-document post-condition and explicitly hidden/untrusted prompt-injection text. Active #70 executes that fixture through real WebDriver on pinned Chrome with an isolated profile, disabled extensions, synthetic input, same-document post-condition verification and profile cleanup. The fixture contains no credential collection surface and requires no live third-party site.

**Resolution:** the fixture makes the future real Chromium vertical slice reproducible without turning a third-party site into a test dependency. It is not a browser adapter, semantic extractor, input dispatcher, policy engine, trusted clock, process-attribution source or proof of real Chromium execution.
**Resolution:** the #65/#70 lane makes controlled browser-level evidence reproducible without turning a third-party site into a test dependency. It is not a browser adapter, semantic extractor, OriginWeave input-dispatch authority, policy engine, trusted clock, process-attribution source or proof of the shipped product runtime.

### 3.20 Bounded browser process-set resource evidence

Expand Down
7 changes: 7 additions & 0 deletions docs/TEST_STRATEGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,13 @@ session creation
-> task close/recovery
```

Active PR #70 exercises the controlled local Agent Task fixture on the pinned
Chrome for Testing build through real WebDriver input, same-document
post-condition observation and ephemeral-profile cleanup. That lane proves
browser-level fixture execution only; it does not replace the OriginWeave
BiDi/CDP authority adapter, semantic node contract, policy dispatch or
protected-main runtime acceptance required by issue #28.

### 3.5 Buyer acceptance

Versioned task packs measure repeatable product outcomes rather than one lucky agent run. The benchmark artifact records browser build, OriginWeave version, model/provider/reasoning configuration, seed where supported, policy profile, hardware profile and source fixtures.
Expand Down
21 changes: 15 additions & 6 deletions docs/traceability/action-postcondition-evidence.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ On that unchanged exact head, CI run `31445201739` succeeds; Rust contracts job

This remains controlled test infrastructure rather than browser-execution evidence. The fixture itself does not establish WebDriver BiDi/CDP transport, Chromium semantic extraction, policy dispatch, native input, post-condition provenance, profile teardown or process attribution.

### PR #70 — pinned Chrome execution of the controlled Agent Task fixture

**Capability maturity:** `IMPLEMENTED_ON_ACTIVE_PR`

PR #70 reuses the existing pinned Chrome for Testing workflow and executes the #65 fixture through loopback ChromeDriver with extensions disabled and a fresh temporary profile. Each bounded trial performs real WebDriver clear/type/click operations, observes the `submitted` state and synthetic value through element endpoints, verifies that submission preserves the loaded URL, and proves that the temporary profile is removed after teardown. The runner emits credential-free repeatability evidence and fails the lane when any trial or post-condition is incomplete.

This is real WebDriver evidence for a controlled local fixture, not a product browser adapter. It does not establish WebDriver BiDi/CDP authority translation, OriginWeave semantic observation or node handles, policy-authorized typed action dispatch, trusted browser-process attribution, or protected-main product runtime completion.

## 4. Non-transitive success semantics

The intended first-slice chain is:
Expand All @@ -77,10 +85,10 @@ Unverified -/> successful action completion
Rejected -/> successful action completion
caller-supplied timestamp ordering -/> proof of trusted clock provenance
VerifiedActionOutcomeEvidence type existence -/> proof of real Chromium execution
controlled fixture success -/> proof of real Chromium execution
controlled fixture success -/> proof of an OriginWeave product browser runtime
```

PR #64 now rejects a caller-supplied observation timestamp that predates caller-supplied dispatch time, but the type cannot independently prove the clock source, that a real browser actually dispatched the action, that the supplied provenance belongs to the claimed browser target/node, or that the observed state was caused by that action. PR #65 supplies deterministic hostile input and a post-condition target but no browser execution. Those claims remain the responsibility of the real adapter/runtime composition under issue #28.
PR #64 now rejects a caller-supplied observation timestamp that predates caller-supplied dispatch time, but the type cannot independently prove the clock source, that a real browser actually dispatched the action, that the supplied provenance belongs to the claimed browser target/node, or that the observed state was caused by that action. PR #70 proves real Chromium execution against the controlled fixture, but its test-harness CSS locators and direct WebDriver calls are not the OriginWeave adapter/runtime composition required under issue #28.

## 5. Active prerequisite graph for issue #28

Expand All @@ -93,15 +101,16 @@ The first real Chromium vertical slice remains distributed across bounded active
- PR #49 — ephemeral compatibility-profile lifecycle regression stacked on #43;
- PR #51 — bounded browser-task telemetry plus one explicitly supplied Linux PID `VmRSS` sampler; Chromium process discovery/process-set attribution remains outside that slice;
- PR #64 — verified and caller-timestamp-ordered post-condition action-outcome evidence; and
- PR #65 — controlled hostile local Agent Task workflow fixture, gate-clean and Ready for review.
- PR #65 — controlled hostile local Agent Task workflow fixture; and
- PR #70 — real WebDriver execution of that fixture on pinned Chrome, without claiming a product browser adapter.

These active PRs are non-shipped evidence. They do not themselves compose WebDriver BiDi/CDP transport, trusted Chromium process attribution, policy-authorized real input dispatch, causal post-condition observation, or deterministic end-to-end teardown/recovery into one protected-main runtime.
These active PRs are non-shipped evidence. PR #70 proves a bounded browser-level fixture flow, but the active set does not itself compose WebDriver BiDi/CDP transport, OriginWeave authority translation, trusted Chromium process attribution, policy-authorized real input dispatch, causal post-condition observation, or deterministic end-to-end teardown/recovery into one protected-main runtime.

## 6. Remaining issue #28 boundary

This dossier does **not** close issue #28. Material remaining work includes:

- pinned stock Chromium exercised as one reproducible end-to-end Agent Task runtime path, not only extension compatibility fixtures;
- a production Agent Task runtime path that composes pinned stock Chromium with OriginWeave authority, rather than only the controlled #70 fixture and extension compatibility fixtures;
- isolated Agent Task profile/context lifecycle and cleanup in the production vertical path;
- versioned WebDriver BiDi adapter plus explicitly bounded CDP observation fallback where needed;
- real semantic observation feeding typed query and policy-authorized typed action;
Expand All @@ -113,4 +122,4 @@ This dossier does **not** close issue #28. Material remaining work includes:

## 7. Documentation fitness consequence

The ADR/PRD/TRD/Architecture/UML/ERD graph remains **DESIGN-SUFFICIENT / PROTECTED-MAIN-PARTIAL**. PR #64 narrows a typed evidence gap already governed by existing provenance/action-success decisions, while PR #65 supplies controlled test infrastructure for the eventual real-browser proof. Neither introduces a new trust domain, deployed component, persistence owner, database schema, or independent architecture decision, so a new ADR or physical ERD entity would overstate the implementation. Detailed real-Chromium dispatch/post-condition sequence diagrams should be reconciled when the executable adapter chain stabilizes rather than manufacturing as-built detail before that runtime exists.
The ADR/PRD/TRD/Architecture/UML/ERD graph remains **DESIGN-SUFFICIENT / PROTECTED-MAIN-PARTIAL**. PR #64 narrows a typed evidence gap, PR #65 supplies the controlled fixture, and PR #70 supplies real WebDriver evidence for that fixture. Neither introduces a new trust domain, deployed component, persistence owner, database schema, or independent architecture decision, so a new ADR or physical ERD entity would overstate the implementation. Detailed real-Chromium dispatch/post-condition sequence diagrams should be reconciled when the executable adapter chain stabilizes rather than manufacturing as-built detail before that runtime exists.
Loading
Loading