TASK22028: phase 16 memory-bank updates

This commit is contained in:
2026-03-13 16:24:55 +00:00
parent c196edb457
commit 6a9a257ae8
4 changed files with 145 additions and 0 deletions
+21
View File
@@ -500,6 +500,27 @@
- Valid-hash spot-check:
- `GET /api/file/setupcontainer?ident=c1&hash=<valid>` -> **200**.
## Phase 16 hardening status (2026-03-13)
- Continued on branch:
- `TASK22028-phase15-hardening-slice`
- Added a consistency-only file-proxy hardening slice across:
- `pages/api/file/getbloblistproxy.js`
- `pages/api/file/getrepsblobproxy.js`
- `pages/api/file/getawaitingsubmissionfromblobproxy.js`
- Changes focused on:
- standardized required-input guards via `hasValue`
- removed unused imports/dead constants from touched proxy handlers
- preserved existing response contracts and status semantics
- Added focused test pack:
- `tests/phase16/service-behaviour.test.cjs`
### Phase 16 validation evidence snapshot
- phase6 parity + phase6phase15 behavioural suites: pass
- phase16 behavioural suite: pass (4/4)
- lint: warnings only (pre-existing)
## Likely next steps
1. Stabilize and simplify breadcrumb/back-link decision logic with focused regression checks.
+40
View File
@@ -978,3 +978,43 @@ Follow-ups:
- Continue small-batch consistency hardening for remaining sensitive handlers where guard patterns are still inconsistent.
- Keep manual happy-path checks constrained to feasible local dependencies; document downstream/environment-caused failures separately.
---
### CL-027: Phase 16 hardening — file proxy required-input guard consistency slice
date: 2026-03-13
author: Cline
scope: `pages/api/file/{getbloblistproxy,getrepsblobproxy,getawaitingsubmissionfromblobproxy}.js`, `tests/phase16/service-behaviour.test.cjs`, `memory-bank/*`
type: change
rationale: Continue within the same branch using separate commits to apply a small consistency-only hardening slice for sensitive file proxy handlers.
impact: More consistent required-input validation and cleaner proxy handler internals without changing response-shape/signature contracts.
status: completed
Summary:
- Continued on `TASK22028-phase15-hardening-slice` as a separate commit.
- Standardized required-input guards using a local `hasValue` helper in 3 file proxy handlers.
- Removed unused imports/constants from touched files.
- Added `tests/phase16/service-behaviour.test.cjs` with negative-path coverage and one valid-input contract check.
Validation:
- `node tests/phase6/service-parity.test.cjs` -> pass
- `node tests/phase6/service-behaviour.test.cjs` -> pass (8/8)
- `node tests/phase7/service-behaviour.test.cjs` -> pass (10/10)
- `node tests/phase8/service-behaviour.test.cjs` -> pass (5/5)
- `node tests/phase9/service-behaviour.test.cjs` -> pass (5/5)
- `node tests/phase10/service-behaviour.test.cjs` -> pass (5/5)
- `node tests/phase11/service-behaviour.test.cjs` -> pass (4/4)
- `node tests/phase12/service-behaviour.test.cjs` -> pass (4/4)
- `node tests/phase13/service-behaviour.test.cjs` -> pass (7/7)
- `node tests/phase14/service-behaviour.test.cjs` -> pass (5/5)
- `node tests/phase15/service-behaviour.test.cjs` -> pass (5/5)
- `node tests/phase16/service-behaviour.test.cjs` -> pass (4/4)
- `npm run lint` -> warnings only (pre-existing)
- Manual checks (`localhost:3002`): missing required inputs across selected proxies -> 400
Follow-ups:
- Continue incremental endpoint/file proxy consistency slices with same contract-preserving constraints.
+53
View File
@@ -650,6 +650,59 @@
- `tests/phase15/service-behaviour.test.cjs`
2. Re-run phase6phase15 tests and lint to confirm parity.
## Latest update (2026-03-13 — Phase 16 file-proxy consistency slice)
- Continued on branch:
- `TASK22028-phase15-hardening-slice`
- Delivered a small consistency-only hardening slice across 3 sensitive file proxy handlers:
- `pages/api/file/getbloblistproxy.js`
- `pages/api/file/getrepsblobproxy.js`
- `pages/api/file/getawaitingsubmissionfromblobproxy.js`
- Scope delivered:
- removed unused imports/constants in touched handlers to reduce noisy/unsafe dead code
- standardized required input checks using shared local `hasValue` pattern
- preserved response shape/signature/status behavior contracts
- Added focused tests:
- `tests/phase16/service-behaviour.test.cjs`
- negative-path checks for missing required container/casefolder inputs
- one valid-input happy-path contract check for `getbloblistproxy` (200 + passthrough shape)
### Validation snapshot (Phase 16)
- `node tests/phase6/service-parity.test.cjs` -> **pass**
- `node tests/phase6/service-behaviour.test.cjs` -> **pass** (8/8)
- `node tests/phase7/service-behaviour.test.cjs` -> **pass** (10/10)
- `node tests/phase8/service-behaviour.test.cjs` -> **pass** (5/5)
- `node tests/phase9/service-behaviour.test.cjs` -> **pass** (5/5)
- `node tests/phase10/service-behaviour.test.cjs` -> **pass** (5/5)
- `node tests/phase11/service-behaviour.test.cjs` -> **pass** (4/4)
- `node tests/phase12/service-behaviour.test.cjs` -> **pass** (4/4)
- `node tests/phase13/service-behaviour.test.cjs` -> **pass** (7/7)
- `node tests/phase14/service-behaviour.test.cjs` -> **pass** (5/5)
- `node tests/phase15/service-behaviour.test.cjs` -> **pass** (5/5)
- `node tests/phase16/service-behaviour.test.cjs` -> **pass** (4/4)
- `npm run lint` -> **warnings only** (pre-existing `react-hooks/exhaustive-deps` warnings)
### Manual HTTP checks (Phase 16)
- Dev server on `http://localhost:3002`.
- Negative-path checks:
- `/api/file/getbloblistproxy?casefolderID=case-1` -> **400**
- `/api/file/getbloblistproxy?container=c1` -> **400**
- `/api/file/getrepsblobproxy` -> **400**
- `/api/file/getawaitingsubmissionfromblobproxy` -> **400**
- Feasible valid-input spot-check:
- `/api/file/getbloblistproxy?container=c1&casefolderID=case-1` -> **400** (expected downstream/local dependency behavior; input guard passed)
### Rollback plan (Phase 16)
1. Revert commit `c196edb` or files:
- `pages/api/file/getbloblistproxy.js`
- `pages/api/file/getrepsblobproxy.js`
- `pages/api/file/getawaitingsubmissionfromblobproxy.js`
- `tests/phase16/service-behaviour.test.cjs`
2. Re-run phase6phase16 tests and lint.
## Outstanding risks / gaps
- Navigation regressions across EN/CY + route query combinations.
@@ -505,6 +505,37 @@ Status key: `[x] done`, `[ ] pending`
- `tests/phase15/service-behaviour.test.cjs`
- Re-run phase6phase15 baseline tests and lint after rollback to confirm parity.
### Phase 16 completion snapshot (2026-03-13)
Status key: `[x] done`, `[ ] pending`
1. `[x]` Continue on current branch with separate commit for additional small slice
- branch: `TASK22028-phase15-hardening-slice`
2. `[x]` Apply minimal consistency hardening in 3 file proxy handlers
- `pages/api/file/getbloblistproxy.js`
- `pages/api/file/getrepsblobproxy.js`
- `pages/api/file/getawaitingsubmissionfromblobproxy.js`
3. `[x]` Standardize required-input guard pattern
- added local `hasValue` checks for required params
- removed unused/dead imports/constants in touched files
4. `[x]` Add focused Phase 16 tests
- added `tests/phase16/service-behaviour.test.cjs`
- missing-input negative-path checks + one valid-input contract check
5. `[x]` Execute validation bundle
- phase6 parity + phase6phase16 behaviour tests pass
- lint warnings only (pre-existing)
6. `[x]` Execute manual checks
- missing required-input proxy calls -> 400
### Phase 16 rollback notes
- Revert commit `c196edb` (or files):
- `pages/api/file/getbloblistproxy.js`
- `pages/api/file/getrepsblobproxy.js`
- `pages/api/file/getawaitingsubmissionfromblobproxy.js`
- `tests/phase16/service-behaviour.test.cjs`
- Re-run phase6phase16 baseline tests and lint.
## Safe execution mode for migration chunks (required)
To reduce terminal hangs during bulk migration work, run refactor chunks in **safe stepwise mode** instead of long chained commands.