TenantAtlas/specs/397-receipt-page-reduction/implementation-report.md
ahmido a5b7300ca9 feat: reduce receipt page surface depth and simplify evidence summaries (#468)
Automated PR created by Codex via Gitea API.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #468
2026-06-22 11:03:10 +00:00

11 KiB

Implementation Report: Spec 397 - Receipt Page Reduction Pass v1

Date: 2026-06-22
Branch: 397-receipt-page-reduction
Implementation slice: Existing /admin receipt-style detail surfaces only: Evidence Snapshot detail, Baseline Snapshot detail, Restore Run detail, Review Pack detail receipt sections, and Stored Report detail receipt metadata.

Product Surface Close-Out

  • No-legacy posture: canonical replacement. No duplicate legacy/new receipt surfaces, no compatibility toggle, no new receipt framework.
  • Product Surface Impact: default receipt pages now emphasize outcome, scope, timing, trust/readiness, and next action before internal support detail.
  • UI Surface Impact: rendered Filament detail pages changed; no navigation architecture, dashboard, wizard, or report-content redesign.
  • Page archetype: Receipt Page. Review Pack and Stored Report retain Report Page behavior for actual report/output content; this pass changes receipt metadata/detail sections.
  • Surface budgets: default long lists are capped at eight rows/items where changed; technical links and proof panels are collapsed or demoted.
  • Technical Annex / deep-link demotion: OperationRun proof, evidence snapshot link detail, raw artifact descriptors, raw payload JSON, detector/source metadata, and long governed-subject/item lists are secondary/internal.
  • Canonical status vocabulary: Restore Run detail now maps to Not configured, Running, Ready, Needs attention, Failed, and Blocked.
  • Product Surface exceptions: none.
  • Visible complexity outcome: reduced. No new visible section family was added; internal depth remains available through collapsed/detail sections.

Runtime Changes

  • Evidence Snapshot: renamed Evidence dimensions to Internal evidence dimensions, collapsed it by default, removed default artifact-source summary rendering.
  • Baseline Snapshot: capped default governed-subject summary and grouped detail output to eight rows/items; collapsed detailed captured-policy inventory.
  • Restore Run: simplified top-level decision labels/actions, capped default item/foundation outcome rows, completed missing summary counts from recorded item outcomes, moved readiness/proof detail under closed View technical run details, kept running OperationRun links out of the primary action, and added explicit post-run evidence operator guidance for completed-vs-running proof gaps.
  • Review Pack: renamed receipt evidence fields to Evidence basis / Evidence completeness; moved the evidence snapshot link into internal technical detail.
  • Stored Report: renamed technical sections to Internal report artifact and Internal payload details with support-oriented descriptions.

Safety / Governance

  • Persisted truth: no migrations, tables, columns, enums, or new persisted state.
  • Graph / remote calls: no Graph or remote render calls added.
  • Queues / cron / storage: no queue, cron, or storage behavior changes.
  • RBAC: existing resource policies/scopes retained; customer-safe and entitlement tests passed.
  • Destructive/high-impact actions: no destructive actions were materially changed. Existing confirmed/audited actions remain in place for Evidence Snapshot expiry, Review Pack expiry, Restore Run archive/restore/force-delete/bulk/rerun flows.
  • Global search: all touched resources remain globally unsearchable: Evidence Snapshot, Baseline Snapshot, Restore Run, Review Pack, Stored Report.
  • Livewire v4 compliance: Filament v5 / Livewire v4.1.4 project baseline preserved; no Livewire v3 APIs introduced.
  • Provider registration: unchanged; Laravel providers remain in apps/platform/bootstrap/providers.php.
  • Asset strategy: no new assets registered. No filament:assets deployment step is newly required by this pass.
  • Deployment impact: no env vars, migrations, queues, storage volumes, or Dokploy runtime changes.

Browser Proof

Focused browser proof is textual, not durable screenshot-based. Pest Browser removes successful screenshots from the host test directory, and the copy helper did not leave stable PNG artifacts under specs/397-receipt-page-reduction/artifacts/.

Command:

cd apps/platform && ./vendor/bin/sail artisan test tests/Browser/Spec397ReceiptPageReductionSmokeTest.php

Result: passed, 1 test / 70 assertions.

Covered routes/surfaces:

  • Evidence Snapshot detail: Outcome summary, Evidence basis and readiness, Evidence coverage summary, Internal evidence dimensions; no default Artifact source.
  • Baseline Snapshot detail: Coverage summary, capped governed subjects, first eight visible, additional rows demoted.
  • Restore Run detail: completed and running paths cover Needs attention, Running, View technical run details, Monitor restore progress, capped item outcomes, no default OperationRun proof/link or raw restore payload, Next Action opens the demoted technical detail target, completed-without-evidence links to existing Evidence snapshots capture, and running proof gaps do not expose an evidence-capture CTA.
  • Review Pack detail: output guidance and pack readiness visible; internal evidence detail remains hidden by default in technical detail.
  • Stored Report detail: report scope/summary precede Internal report artifact and Internal payload details; no default Raw payload.

Human Product Sanity

  • Five-second scan: pass. Each touched receipt now exposes outcome/scope/readiness before raw proof detail.
  • Customer-safe boundary: pass. Customer/default paths do not lead with raw evidence IDs, OperationRun proof, raw payload labels, source keys, or detector metadata.
  • Visible complexity: reduced. Long tables and proof panels are capped/collapsed; no new visible navigation or page family added.

Validation

Feature / Filament receipt tests:

cd apps/platform && ./vendor/bin/sail artisan test \
  tests/Feature/Evidence/EvidenceSnapshotResourceTest.php \
  tests/Feature/Filament/BaselineSnapshotStructuredRenderingTest.php \
  tests/Feature/Filament/Spec335RestoreRunDetailProductizationTest.php \
  tests/Feature/ReviewPack/ReviewPackResourceTest.php \
  tests/Feature/StoredReports/StoredReportDetailPresentationTest.php \
  tests/Feature/Filament/Spec372CustomerAuditorSurfaceSafetyTest.php \
  tests/Feature/Filament/Artifacts/ArtifactSourceTaxonomySurfaceTest.php

Result: direct receipt files passed; initial run exposed one stale taxonomy assertion, fixed and rerun:

cd apps/platform && ./vendor/bin/sail artisan test tests/Feature/Filament/Artifacts/ArtifactSourceTaxonomySurfaceTest.php

Result: passed, 2 tests / 24 assertions.

Review-fix focused rerun:

cd apps/platform && ./vendor/bin/sail artisan test \
  tests/Feature/Filament/Spec335RestoreRunDetailProductizationTest.php \
  tests/Feature/Filament/Spec390RestoreReadinessGuidanceTest.php \
  tests/Feature/Filament/RestoreResultAttentionSurfaceTest.php

Result: passed, 22 tests / 127 assertions.

Safety and boundary tests:

cd apps/platform && ./vendor/bin/sail artisan test \
  tests/Feature/BulkDeleteRestoreRunsTest.php \
  tests/Feature/BulkRestoreRestoreRunsTest.php \
  tests/Feature/RestoreRunArchiveGuardTest.php \
  tests/Feature/Reviews/CustomerReviewWorkspaceLaunchLinksTest.php \
  tests/Feature/ReviewPack/Spec392CustomerOutputRouteGateTest.php \
  tests/Feature/ReviewPack/ReviewPackRbacTest.php \
  tests/Feature/StoredReports/StoredReportEntitlementEnforcementTest.php \
  tests/Feature/Filament/BaselineSnapshotAuthorizationTest.php \
  tests/Feature/Filament/BaselineSnapshotRelatedContextTest.php

Result: passed, 34 tests / 126 assertions.

Browser regression tests:

cd apps/platform && ./vendor/bin/sail artisan test \
  tests/Browser/Spec277StoredReportsSurfaceSmokeTest.php \
  tests/Browser/Spec282GovernanceArtifactRetargetingSmokeTest.php \
  tests/Browser/Spec284ArtifactSourceTaxonomySmokeTest.php \
  tests/Browser/Spec335RestoreRunDetailProductizationSmokeTest.php \
  tests/Browser/Spec372CustomerAuditorSurfaceSafetySmokeTest.php \
  tests/Browser/Spec376BrowserAuditFixtureCoverageSmokeTest.php

Result: Spec277, Spec335, Spec372, and Spec376 passed; initial Spec282/Spec284 failures were stale visible-text expectations after receipt reduction. Fixed and reran:

cd apps/platform && ./vendor/bin/sail artisan test \
  tests/Browser/Spec282GovernanceArtifactRetargetingSmokeTest.php \
  tests/Browser/Spec284ArtifactSourceTaxonomySmokeTest.php

Result: passed, 2 tests / 59 assertions.

Review-fix browser reruns:

cd apps/platform && ./vendor/bin/sail artisan test tests/Browser/Spec397ReceiptPageReductionSmokeTest.php

Result: passed, 1 test / 70 assertions.

cd apps/platform && ./vendor/bin/sail artisan test tests/Browser/Spec335RestoreRunDetailProductizationSmokeTest.php

Result: passed, 1 test / 48 assertions.

Latest combined browser rerun:

cd apps/platform && ./vendor/bin/sail artisan test \
  tests/Browser/Spec397ReceiptPageReductionSmokeTest.php \
  tests/Browser/Spec335RestoreRunDetailProductizationSmokeTest.php

Result: passed, 2 tests / 118 assertions.

Formatting / hygiene:

cd apps/platform && ./vendor/bin/sail pint --test

Result: attempted twice. The full unscoped scan continued emitting broad repo-wide style findings for several minutes and was interrupted to avoid leaving a long-running process.

Changed-file Pint:

cd apps/platform && ./vendor/bin/sail pint --test <changed PHP files>

Result: failed once with one touched-file style issue in BaselineSnapshotPresenter.php; fixed with Pint and reran successfully: 19 files passed.

Review-fix changed-file Pint:

cd apps/platform && ./vendor/bin/sail pint --test \
  app/Filament/Resources/RestoreRunResource/Presenters/RestoreRunDetailPresenter.php \
  resources/views/filament/infolists/entries/restore-results.blade.php \
  tests/Feature/Filament/Spec335RestoreRunDetailProductizationTest.php \
  tests/Browser/Spec335RestoreRunDetailProductizationSmokeTest.php \
  tests/Browser/Spec397ReceiptPageReductionSmokeTest.php

Result: passed, 5 files.

Diff whitespace:

git diff --check

Result: passed.

Post-Implementation Analysis

  • Confirmed no new persisted entity, abstraction framework, enum/status family, Graph call, queue behavior, or compatibility toggle was introduced.
  • Confirmed Product Surface docs were updated for route inventory, design coverage matrix, unresolved restore caveat, and the three existing receipt page reports.
  • Confirmed broader restore create/failure/conflict workflow remains follow-up; this pass verifies completed and running Restore Run detail receipt reduction.