Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ A skipped security, GPU, browser, TLS, or statistical test is not passing eviden
## Documentation and research

- Update `docs/doctoring.md` when a standard or research claim affects design.
- Refreshing the volatile product-gap baseline requires paginated live PR and issue counts, full exact heads, and the matching `CHANGELOG.md` inventory line; run its documentation contracts before publication. A local browser policy that blocks loopback or file rendering is not visual evidence—inspect the GitHub-rendered exact head after push instead.
- Use primary specifications, official documentation, or peer-reviewed/primary papers.
- Format references in APA 7th style.
- Update an ADR for binding architectural changes.
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ All notable changes to OriginWeave are documented in this file. The format follo
- Recorded the verified pointer-reply connection repair and recovery tests, keeping pending hosted checks, remaining authority gaps and browser acceptance separate.
- Recorded the published text-entry connection safeguards and their test evidence, separating queued hosted checks and remaining pointer/status repairs from released browser behavior.
- Separate the current maintenance queue and source lineage from preserved historical observations, and record the text-entry session and pending-request safeguards without claiming released browser behavior.
- Current delivery inventory: 126 open pull requests (12 ready, 114 draft); 14 open non-PR issues. Observed 2026-09-08; source acceptance remains revision-specific.
- Current delivery inventory: 130 open pull requests (13 ready, 117 draft); 14 open non-PR issues. Observed 2026-09-09; source acceptance remains revision-specific.
- Corrected historical checkpoint labels and made the current inventory check reject stale counts; recorded verified text-input parent adoption without claiming browser execution.
- Recorded the executed session-isolation repair and its verified adoption, separating complete local checks and PR visual inspection from pending hosted checks and unreleased browser acceptance.
- Recorded the current click safeguards, restored regression coverage and completed PR visual inspection, keeping the separately owned parent repair and queued hosted checks distinct from delivery.
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ Additional constraints:
- Do not add hostname reconnect, proxy-environment inheritance, dangerous certificate-verifier hooks, Common Name fallback, TLS 0-RTT, key logging, or secret extraction to a production TLS path.
- Keep changes bounded to one product gap and preserve modular crate boundaries.
- Never claim a test, benchmark, browser integration, TLS identity, GPU execution, release, or merge succeeded without current exact-head evidence.
- For volatile gap-baseline refreshes, bind the dated inventory, full PR heads, and `CHANGELOG.md` line to the same live observation; if local rendering is blocked, visually inspect the GitHub-rendered exact head after push.
- When refreshing live delivery evidence, update the dated baseline, `CHANGELOG.md`, and full exact SHA atomically; use `scripts/ci/collect_live_merge_evidence.sh` rather than an abbreviated SHA or historical count.
30 changes: 29 additions & 1 deletion docs/product-technical-gap-baseline.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,35 @@ This is a dated delivery baseline, not a substitute for the PRD, TRD, roadmap, a

This volatile section is refreshed from live GitHub state and is authoritative only for the exact observations recorded here. The dated snapshot below remains historical evidence and is not promoted to current acceptance evidence. Live GitHub PR/base/head/check APIs are authoritative over PR bodies and prior maintenance prose; a body that still names an older head is stale evidence, not merge evidence.

### Latest verified cut: 2026-09-08
### Latest verified cut: 2026-09-09

#### Presentation identity and controlled-browser evidence

At `2026-09-09T08:45:00Z`, the live inventory was **130 open pull requests:
13 Ready/non-draft and 117 Draft; 14 open non-PR issues**. Protected `main`
remains `87c4daa1830bac5a5228b6036752ad5633232085`; no GitHub Release exists.
Ruleset `18156473` still requires one counted approval and seven central required
workflows. Queued reviewer evidence is non-passing: discard queued, skipped,
cancelled, absent, predecessor, synthetic, status-only, and model-only evidence.

Issue #292 remains the buyer-visible presentation-identity gap. Draft #293 is
at exact head `6855e2578ae94279cc9ab4a14527b016e8c049ee` on Ready #229
`024f63690cf05cfe6f0d4a430f0e18ea8fd2c4d6`. Its reusable lifecycle deliberately
does not apply reduced motion without a complete restore or disposable-context
owner. Thus command planning cannot be presented as full profile application.
Pinned Chromium application, page-observed post-conditions, and cleanup evidence
remain unimplemented and unreleased. Issue #212 owns the sandbox-helper contract;
the product branch must consume it rather than copy or weaken workflow behavior.

#### Transport-closure verification and test-integrity repair

The current queue also leaves Ready #287 at
`3975daf48e01a5e9d1cf9fb104a3be1aa03b0402` with exact-head native and central
checks queued. Its prior CodeQL dispatch outcome was an absent central verdict,
not a classifier-source finding. No release, protected-main shipment, or approval
is inferred from local work, a child merge, or queued checks.

### Previous verified cut: 2026-09-08

#### Published intent acknowledgment verification

Expand Down
27 changes: 9 additions & 18 deletions tests/test_documentation_active_pr_evidence_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,19 +88,12 @@ def test_baseline_refresh_changelog_matches_the_live_snapshot(self) -> None:
refresh_lines = [line for line in added.splitlines() if line.startswith(refresh_prefix)]
self.assertEqual(1, len(refresh_lines))
refresh_line = refresh_lines[0]
self.assertIn("on 2026-09-05", refresh_line)
latest_cut = bounded_section(
self.baseline,
"### Latest verified cut: 2026-09-08",
"### Historical verified cut: 2026-09-07",
"### Latest verified cut: 2026-09-09",
"### Previous verified cut: 2026-09-08",
)
current = bounded_section(
latest_cut,
"#### Transport-closure verification and test-integrity repair",
"### Historical verified cut: 2026-09-07",
) if "### Historical verified cut: 2026-09-07" in latest_cut else latest_cut.split(
"#### Transport-closure verification and test-integrity repair", 1
)[1]
current = latest_cut
queue_counts = re.findall(
r"\*\*(\d+) open pull requests: (\d+) Ready/non-draft and (\d+) Draft; "
r"(\d+) open non-PR issues\*\*",
Expand All @@ -115,9 +108,7 @@ def test_baseline_refresh_changelog_matches_the_live_snapshot(self) -> None:
self.assertEqual(1, len(inventory_lines))
self.assertIn(f"{total} open pull requests ({ready} ready, {draft} draft)", inventory_lines[0])
self.assertIn(f"{issues} open non-PR issues", inventory_lines[0])
self.assertIn("024f63690cf05cfe6f0d4a430f0e18ea8fd2c4d6", refresh_line)
self.assertIn("3a651967c421f77088fe25e86a63faae295390b3", refresh_line)
self.assertIn("01038ba71fb276426cc67f90a91a3c431e194db5", refresh_line)
self.assertIn("Observed 2026-09-09", inventory_lines[0])
self.assertIn(
"Revalidated the active ruleset inventory at 7 required workflows",
changed,
Expand All @@ -135,13 +126,13 @@ def test_latest_inventory_drift_cannot_be_hidden_by_historical_counts(self) -> N
"""Changing only the newest count must invalidate an unchanged changelog."""
latest = bounded_section(
self.baseline,
"### Latest verified cut: 2026-09-08",
"### Historical verified cut: 2026-09-07",
"### Latest verified cut: 2026-09-09",
"### Previous verified cut: 2026-09-08",
)
self.assertIn("126 open pull requests", latest)
self.assertIn("130 open pull requests", latest)
mutated_latest = latest.replace(
"126 open pull requests",
"127 open pull requests",
"130 open pull requests",
"131 open pull requests",
1,
)
self.assertNotEqual(latest, mutated_latest)
Expand Down
18 changes: 9 additions & 9 deletions tests/test_live_gap_evidence_integrity_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ def setUpClass(cls) -> None:
cls.evidence = EVIDENCE_SCRIPT.read_text(encoding="utf-8")
cls.latest = bounded(
cls.baseline,
"### Latest verified cut: 2026-09-08",
"### Historical verified cut: 2026-09-07",
"### Latest verified cut: 2026-09-09",
"### Previous verified cut: 2026-09-08",
)

def test_latest_inventory_and_changelog_use_the_september_8_cut(self) -> None:
def test_latest_inventory_and_changelog_use_the_september_9_cut(self) -> None:
marker = (
"126 open pull requests: 12 Ready/non-draft and "
"114 Draft; 14 open non-PR issues"
"130 open pull requests: 13 Ready/non-draft and "
"117 Draft; 14 open non-PR issues"
)
self.assertIn(marker, " ".join(self.latest.split()))
inventory = [
Expand All @@ -49,14 +49,14 @@ def test_latest_inventory_and_changelog_use_the_september_8_cut(self) -> None:
if line.startswith("- Current delivery inventory:")
]
self.assertEqual(1, len(inventory))
self.assertIn("126 open pull requests (12 ready, 114 draft)", inventory[0])
self.assertIn("130 open pull requests (13 ready, 117 draft)", inventory[0])
self.assertIn("14 open non-PR issues", inventory[0])
self.assertIn("Observed 2026-09-08", inventory[0])
self.assertIn("Observed 2026-09-09", inventory[0])

def test_presentation_snapshot_uses_full_exact_sha(self) -> None:
full_sha = "0c077445d73640a6299ea4d379faa4b0ab0226c2"
full_sha = "6855e2578ae94279cc9ab4a14527b016e8c049ee"
self.assertIn(full_sha, self.latest)
self.assertNotIn("to exact head\n`0c077445`", self.latest)
self.assertNotIn("to exact head\n`6855e257`", self.latest)

def test_documented_current_evidence_collector_is_executable(self) -> None:
current_evidence = self.baseline.split("## Evidence commands", 1)[1]
Expand Down
Loading