---
status: reconciled-partial
coverage_depth: deep
last_reconciled: 2026-07-18
specs:
  - apps/oshun/web/e2e/operator-editorial-review-approval.spec.ts
  - apps/oshun/web/e2e/pwa-lifecycle-deepening.spec.ts
  - apps/oshun/web/e2e/citation-drift-resolution.spec.ts
  - apps/oshun/web/e2e/veritas-nisaba-bridge.spec.ts
source: WALKTHROUGH/journeys/coverage.md
---

# Journey result: Journey E2E quality audit — Wave 4

- **Walked**: 2026-06-05 as an adversarial source-and-runtime review of the
  then-current 52-journey suite. The original pass used six independent,
  read-only audits and worked its confirmed fixes through the live web/BFF
  stack.
- **Reconciled**: 2026-07-18 against the current 64-journey registry, the Wave 5
  and Wave 6 successor audits, and the surviving operator, PWA, provenance, and
  Veritas/Nisaba specs. This was a source reconciliation, not a fresh full-suite
  runtime walk.
- **Verdict**: **partial** — Wave 4 remains useful evidence that one broken
  spec, two false-positive paths, grade drift, and cross-link debt were found
  and repaired. It is not the current coverage inventory: later waves corrected
  several of its premises, added real-HTTP coverage, and the registry has grown
  from 52 to 64 journeys.
- **Successors**: [Wave 5](./journey-e2e-quality-audit-2026-06-05-wave5.md)
  pressure-tested auditor assumptions;
  [Wave 6](./journey-e2e-quality-audit-2026-06-05-wave6.md) superseded Wave 5 as
  the live work list and shipped the next repair set.

## Result at a glance

| Wave 4 lane            | Dated finding                                                                                                      | Current source disposition                                                                                                                                                                      | Authority limit                                                            |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| Editorial decision     | The spec used a non-admin session and expected retired “awaiting audit replay” copy, so the real admin POST failed | Closed: the spec reissues admin inbox traffic with an admin bearer and asserts `data-decision-audit-id` plus `Decision recorded · audit`                                                        | Source presence; this reconciliation did not rerun the app spec            |
| PWA cache purge        | `currentCachePresent                                                                                               |                                                                                                                                                                                                 | staleCacheAbsent` could pass without proving eviction                      | Closed: the browser suite drives real service-worker cache removal, and the policy unit suite fires the `activate` listener against stale/current/foreign caches | Deterministic browser/unit harness, not every installed-browser race |
| Provenance inspector   | An `if (inspectorVisible)` block silently skipped the hash-chain core when no ledger existed                       | Closed and deepened: the current suite seeds test-only clean and broken ledgers and separately asserts unavailable and empty states                                                             | Harness ledger, not a production persistence audit                         |
| Veritas source lineage | Later Wave 6 found a test aimed at an unmounted overlay                                                            | Closed after Wave 4: the current spec opens the live Source Directory profile and follows its Nisaba lineage action                                                                             | Proves the mounted affordance, not the whole evidence graph                |
| Generic headers        | Roughly 30 specs used non-specific “Backs the journey” prose                                                       | Closed in the current tree: no E2E spec retains the old generic header phrases                                                                                                                  | Textual traceability, not behavioral depth by itself                       |
| Grade snapshot         | Several Wave 4 deep/partial labels disagreed                                                                       | Superseded: current `coverage.md` is authoritative; later coverage re-earned deep for install/update, first-time, Tara, and multi-device while offline and both Veritas journeys remain partial | A registry grade summarizes named evidence; it is not a fresh suite result |

## Evidence map

Wave 4 is one dated link in an evidence chain. Solid edges are preserved source
proof; the dashed edge is the runtime claim this documentation audit does not
make.

```mermaid
flowchart LR
    A[Wave 4 adversarial findings<br/>52 journeys] --> B[Same-day repairs<br/>broken and false-green paths]
    B --> C[Wave 5 live premise checks<br/>guards, claims, failure modes]
    C --> D[Wave 6 route and test repairs<br/>real-HTTP specs]
    D --> E[Current coverage registry<br/>64 journeys]
    E -. requires a fresh run .-> F[Current full-suite runtime verdict]
```

## Proven observations

### The decisive defects were repaired, not merely relabelled

- `operator-editorial-review-approval.spec.ts` now authenticates the admin-gated
  decision request, observes the audit-bearing confirmation, retains the audit
  identifier, and checks the decision after reload. The obsolete “awaiting audit
  replay” expectation is gone.
- `pwa-lifecycle-deepening.spec.ts` distinguishes the apply handshake from real
  activation eviction. It registers the actual worker in Chromium, creates
  current and stale caches, activates the update, and requires the stale cache
  to disappear. `pwa-service-worker-policy.test.ts` independently exercises the
  worker's `activate` handler and preserves current and foreign caches.
- `citation-drift-resolution.spec.ts` no longer hides its core behind
  `inspectorVisible`. A test-only ledger fixture drives exact clean-chain and
  broken-chain verdicts; separate cases make unavailable, empty, and unknown
  bundle behavior visible rather than green-by-omission.
- The current E2E tree has no “Backs the journey above” or “Backs the journeys
  above” header. The repair improves discoverability, while the assertions and
  real service boundaries remain the actual depth evidence.

### Later audits corrected the audit itself

- Wave 5 demonstrated why source review needed a live check: it rejected false
  assumptions about messages-center refresh data and the Nisaba SSR fallback,
  corrected unresolved-versus-rejected consent language, removed vacuous
  notebook guards, and added failure-mode coverage.
- Wave 6 found more stale “route absent” claims and a Veritas/Nisaba test aimed
  at dead UI. The current bridge spec explicitly targets the mounted
  `VeritasSourceDirectory`, opens a source profile, follows the real Nisaba
  lineage link, and verifies the destination surface.
- Wave 6 also shipped focused real-HTTP specs for Arete habits, Metis ingest,
  Sophia answers, Psyche memory, Nisaba notebooks, entitlements, Telegram
  binding, tenant invites, persona rehearsal, shared-library resolution, and
  admin auth policy. Those successors—not Wave 4's deferred list—record the
  delivered expansion.

## Boundaries and gaps

- **A dated 52-journey audit is not the 64-journey inventory.** New journeys,
  specs, and grade changes must be read from current `coverage.md`.
- **A repaired assertion is not an executed assertion today.** This page was
  reconciled from source. It does not claim a new Oshun web E2E run or a current
  release verdict.
- **A harness ledger is not production provenance persistence.** It proves the
  inspector's clean, broken, unavailable, and empty contracts without silently
  depending on a developer database.
- **Real service-worker activation is not a device matrix.** The browser and
  unit proofs close the false-positive cache condition, but storage eviction,
  update timing, and installed-shell behavior still vary by browser and OS.
- **A `Covers:` header is not coverage.** It repairs the traceability triangle;
  the linked test still has to drive the claimed step and failure mode.
- **Current deep grades are not retroactive Wave 4 facts.** Install, update,
  first-time, Tara, and multi-device gained later evidence. Offline first use,
  Veritas evidence trail, and Veritas-to-Nisaba remain partial in the current
  matrix.
- **Feature backlog remains product work.** Inert review actions, provider or
  device boundaries, and absent durable workflows should not be converted into
  passing tests until the product behavior exists.

## Re-run evidence

The repaired Wave 4 seams can be checked serially without implying that every
current journey was walked:

```bash
PW_BROWSER_CHANNEL=chrome pnpm exec playwright test \
  -c apps/oshun/web/playwright.config.ts \
  apps/oshun/web/e2e/operator-editorial-review-approval.spec.ts \
  apps/oshun/web/e2e/pwa-lifecycle-deepening.spec.ts \
  apps/oshun/web/e2e/citation-drift-resolution.spec.ts \
  apps/oshun/web/e2e/veritas-nisaba-bridge.spec.ts \
  --workers=1
```

Then run the focused service-worker policy suite and compare the registry rather
than copying the historical grade table:

```bash
pnpm exec vitest run apps/oshun/web/src/__tests__/pwa-service-worker-policy.test.ts
rg -n 'Backs the journeys? above' apps/oshun/web/e2e -g '*.spec.ts'
```

A green focused run proves only these repaired seams. A current full-suite
verdict requires the repository's complete web E2E gate against a fresh app and
BFF stack.

## Source trail

- [Current journey coverage registry](../journeys/coverage.md)
- [Wave 5 successor audit](./journey-e2e-quality-audit-2026-06-05-wave5.md)
- [Wave 6 successor audit](./journey-e2e-quality-audit-2026-06-05-wave6.md)
- [Base quality audit and earlier resolution log](./journey-e2e-quality-audit-2026-06-05.md)
- [Editorial decision browser spec](../../apps/oshun/web/e2e/operator-editorial-review-approval.spec.ts)
- [PWA lifecycle browser spec](../../apps/oshun/web/e2e/pwa-lifecycle-deepening.spec.ts)
- [Service-worker policy unit suite](../../apps/oshun/web/src/__tests__/pwa-service-worker-policy.test.ts)
- [Provenance browser spec](../../apps/oshun/web/e2e/citation-drift-resolution.spec.ts)
- [Live Veritas/Nisaba bridge spec](../../apps/oshun/web/e2e/veritas-nisaba-bridge.spec.ts)

## Cross-references

- [Install-as-PWA result](./install-as-pwa.md)
- [Citation-drift result](./citation-drift-resolution.md)
- [Editorial review result](./editorial-review-approval.md)
- [Offline-first journey](../journeys/offline-first-time-use.md)
- [PWA update journey](../journeys/pwa-update-flow.md)
- [Veritas evidence journey](../journeys/veritas-evidence-trail.md)
- [Veritas-to-Nisaba journey](../journeys/veritas-to-nisaba-deeper.md)

## Open questions

- Which dated full-suite run should become the current 64-journey runtime
  baseline, and where will its app/BFF revisions and artifacts be retained?
- Which registry grade changes require an explicit evidence-delta note so a
  later reader can distinguish re-earned depth from silent label drift?
- Can the provenance fixture contract be complemented by a disposable durable
  store test without making local E2E depend on developer-owned data?
- Which platform/device matrix owns PWA activation, cache eviction, and
  installed-shell behavior beyond deterministic Chromium coverage?
- Should the remaining build-feasible product backlog live in one maintained
  release gate instead of being copied across historical wave reports?
