Files
Charon/docs/plans/archive/pr1_blocker_remediation.md
2026-02-19 16:34:10 +00:00

8.6 KiB

PR-1 Blocker Remediation Plan

Introduction

This plan remediates only PR-1 failed QA/security gates identified in:

  • docs/reports/qa_report_pr1.md
  • docs/reports/pr1_supervisor_review.md

Scope is strictly limited to PR-1 blockers and evidence gaps. PR-2/PR-3 work is explicitly out of scope.

Research Findings (PR-1 Blockers Only)

Confirmed PR-1 release blockers:

  1. Targeted Playwright gate failing (Authorization header required in test bootstrap path).
  2. Backend test failures (TestSetSecureCookie_*) preventing backend QA gate completion.
  3. Docker image scan failing with one High vulnerability (GHSA-69x3-g4r3-p962, github.com/slackhq/nebula).
  4. Missing/invalid local patch preflight artifacts (test-results/local-patch-report.md and .json).
  5. Missing freshness-gate evidence artifact(s) required by current PR-1 spec/supervisor review.
  6. Missing explicit emergency/security regression evidence and one report inconsistency in PR-1 status docs.

Prioritized Blockers by Release Impact

Priority Blocker Release Impact Primary Owner Supporting Owner
P0 E2E auth bootstrap failure in targeted suite Blocks proof of user-facing correctness in PR-1 path Playwright Dev Backend Dev
P0 Backend TestSetSecureCookie_* failures Blocks backend quality/security gate for PR-1 Backend Dev QA Security
P0 High image vulnerability (GHSA-69x3-g4r3-p962) Hard security release block DevOps Backend Dev
P1 Missing local patch preflight artifacts Blocks auditability of changed-line risk QA Security DevOps
P1 Missing freshness-gate evidence artifact(s) Blocks supervisor/spec compliance QA Security DevOps
P1 Missing explicit emergency/security regression evidence + report inconsistency Blocks supervisor approval confidence QA Security Playwright Dev

Owner Mapping (Exact Roles)

  • Backend Dev

    • Resolve cookie behavior/test expectation mismatch for PR-1 auth/cookie logic.
    • Support Playwright bootstrap auth fix when API/auth path changes are required.
    • Support dependency remediation if backend module updates are needed.
  • DevOps

    • Remediate image SBOM vulnerability path and rebuild/rescan image.
    • Ensure local patch/freshness artifacts are emitted, persisted, and reproducible in CI-aligned paths.
  • QA Security

    • Own evidence completeness: patch preflight artifacts, freshness artifact(s), and explicit emergency/security regression proof.
    • Validate supervisor-facing status report accuracy and traceability.
  • Playwright Dev

    • Fix and stabilize targeted Playwright suite bootstrap/authorization behavior.
    • Produce deterministic targeted E2E evidence for emergency/security control flows.

Execution Order (Fix First, Verify Once)

Phase A — Implement all fixes (no full reruns yet)

  1. Playwright Dev + Backend Dev: Fix auth bootstrap path causing Authorization header required in targeted PR-1 E2E setup.
  2. Backend Dev: Fix TestSetSecureCookie_* mismatch (policy-consistent behavior for localhost/scheme/forwarded cases).
  3. DevOps + Backend Dev: Upgrade vulnerable dependency path to a non-vulnerable version and rebuild image.
  4. QA Security + DevOps: Correct artifact generation paths for local patch preflight and freshness snapshots.
  5. QA Security + Playwright Dev: Ensure explicit emergency/security regression evidence is generated and report inconsistency is corrected.

Phase B — Single consolidated verification pass

Run once, in order, after all Phase A fixes are merged into PR-1 branch:

  1. Targeted Playwright PR-1 suites (including security/emergency affected flows).
  2. Backend test gate (including TestSetSecureCookie_*).
  3. Local patch preflight artifact generation and existence checks.
  4. Freshness-gate artifact generation and existence checks.
  5. CodeQL check-findings (confirm target PR-1 rules remain clear).
  6. Docker image security scan (confirm zero High/Critical).
  7. Supervisor evidence pack update (docs/reports/*) and re-audit submission.

Acceptance Criteria by Blocker

B1 — Targeted Playwright Gate (P0)

  • Targeted PR-1 suites pass with no auth bootstrap failures.
  • No Authorization header required error occurs in setup/fixture path.
  • Emergency/security-related user flows in PR-1 scope have explicit pass evidence.
  • TestSetSecureCookie_* tests pass consistently.
  • Behavior aligns with intended security policy for secure cookie handling.
  • No regression introduced to authentication/session flows in PR-1 scope.

B3 — Docker High Vulnerability (P0)

  • Image scan reports High=0 and Critical=0.
  • GHSA-69x3-g4r3-p962 no longer appears in resulting image SBOM/scan output.
  • Remediation is reproducible in CI-aligned scan flow.

B4 — Local Patch Preflight Artifacts (P1)

  • test-results/local-patch-report.md exists after run.
  • test-results/local-patch-report.json exists after run.
  • Artifact content reflects current PR-1 diff and is not stale.

B5 — Freshness-Gate Evidence (P1)

  • Freshness snapshot artifact(s) required by PR-1 spec are generated in docs/reports/.
  • Artifact filenames/timestamps are referenced in PR-1 status reporting.
  • Supervisor can trace freshness evidence without manual reconstruction.

B6 — Emergency/Security Evidence + Report Consistency (P1)

  • PR-1 status docs explicitly separate implemented vs validated vs pending (no ambiguity).
  • Inconsistency in backend status report regarding cookie logic is corrected.
  • Emergency/security regression evidence is linked to exact test executions.

Technical Specifications (PR-1 Remediation Only)

Evidence Contracts

  • Patch preflight artifacts must be present at:
    • test-results/local-patch-report.md
    • test-results/local-patch-report.json
  • Freshness evidence must be present in docs/reports/ and referenced by filename in status reports.
  • PR-1 status reports must include:
    • execution timestamp,
    • exact command(s),
    • pass/fail result,
    • artifact references.

Scope Guardrails

  • Do not add new PR-2/PR-3 features.
  • Do not widen test scope beyond PR-1-impacted flows except for mandatory gate runs.
  • Do not refactor unrelated subsystems.

Risks and Mitigations

Risk Likelihood Impact Mitigation Owner
Fixing one gate re-breaks another (e.g., cookie policy vs E2E bootstrap) Medium High Complete all code/tooling fixes first, then single consolidated verification pass Backend Dev + Playwright Dev
Security fix in dependency introduces compatibility drift Medium High Pin fixed version, run image scan and targeted runtime smoke in same verification pass DevOps
Artifact generation succeeds in logs but files missing on disk Medium Medium Add explicit post-run file existence checks and fail-fast behavior QA Security + DevOps
Supervisor rejects evidence due to formatting/traceability gaps Low High Standardize report sections: implemented/validated/pending + artifact links QA Security

PR Slicing Strategy

  • Decision: Single PR-1 remediation slice (PR-1R) only.
  • Reason: Scope is blocker closure and evidence completion for an already-open PR-1; splitting increases coordination overhead and rerun count.
  • Slice: PR-1R
    • Scope: Only P0/P1 blockers listed above.
    • Dependencies: Existing PR-1 branch state and current QA/supervisor findings.
    • Validation Gate: One consolidated verification pass defined in this plan.
  • Rollback/Contingency: Revert only remediation commits within PR-1R; do not pull PR-2/PR-3 changes for fallback.

Final PR-1 Re-Audit Checklist

  • Targeted Playwright PR-1 suites pass (no auth bootstrap errors).
  • Backend TestSetSecureCookie_* and related backend gates pass.
  • Docker image scan shows zero High/Critical vulnerabilities.
  • test-results/local-patch-report.md exists and is current.
  • test-results/local-patch-report.json exists and is current.
  • Freshness-gate artifact(s) exist in docs/reports/ and are referenced.
  • Emergency/security regression evidence is explicit and linked.
  • PR-1 report inconsistency (cookie logic statement) is corrected.
  • CodeQL target PR-1 findings remain clear (go/log-injection, go/cookie-secure-not-set, js/regex/missing-regexp-anchor, js/insecure-temporary-file).
  • Supervisor re-review package is complete with commands, timestamps, and artifact links.

Out of Scope

  • Any PR-2 or PR-3 feature scope.
  • New architectural changes unrelated to PR-1 blocker closure.
  • Non-blocking cleanup not required for PR-1 re-audit approval.