8.6 KiB
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.mddocs/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:
- Targeted Playwright gate failing (
Authorization header requiredin test bootstrap path). - Backend test failures (
TestSetSecureCookie_*) preventing backend QA gate completion. - Docker image scan failing with one High vulnerability (
GHSA-69x3-g4r3-p962,github.com/slackhq/nebula). - Missing/invalid local patch preflight artifacts (
test-results/local-patch-report.mdand.json). - Missing freshness-gate evidence artifact(s) required by current PR-1 spec/supervisor review.
- 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)
- Playwright Dev + Backend Dev: Fix auth bootstrap path causing
Authorization header requiredin targeted PR-1 E2E setup. - Backend Dev: Fix
TestSetSecureCookie_*mismatch (policy-consistent behavior for localhost/scheme/forwarded cases). - DevOps + Backend Dev: Upgrade vulnerable dependency path to a non-vulnerable version and rebuild image.
- QA Security + DevOps: Correct artifact generation paths for local patch preflight and freshness snapshots.
- 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:
- Targeted Playwright PR-1 suites (including security/emergency affected flows).
- Backend test gate (including
TestSetSecureCookie_*). - Local patch preflight artifact generation and existence checks.
- Freshness-gate artifact generation and existence checks.
- CodeQL check-findings (confirm target PR-1 rules remain clear).
- Docker image security scan (confirm zero High/Critical).
- 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 requirederror occurs in setup/fixture path. - Emergency/security-related user flows in PR-1 scope have explicit pass evidence.
B2 — Backend Cookie Test Failures (P0)
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=0andCritical=0. GHSA-69x3-g4r3-p962no 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.mdexists after run.test-results/local-patch-report.jsonexists 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.mdtest-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.mdexists and is current.test-results/local-patch-report.jsonexists 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.