Robert Bond
0150e243ed
Merged PR 2408: updated context for current state at 19062026
...
updated context for current state at 19062026
Related work items: #23754
2026-06-19 12:39:40 +00:00
Robert Bond
e195e09429
Merged PR 2407: Extract representation entry specialist rules to domain policy
...
Extract representation entry specialist rules to domain policy
Related work items: #23754
2026-06-19 11:21:17 +00:00
Robert Bond
be68b987a1
Merged PR 2405: Representation Entry Policy discovery and wrapper
...
Related work items: #23754
2026-06-19 08:19:56 +00:00
Robert Bond
60a2ff4594
Merged PR 2404: case stage analysis
...
Related work items: #23754
2026-06-18 16:02:40 +00:00
Robert Bond
81a6276f44
Merged PR 2401: docs: document representation participation availability model
...
docs: document representation participation availability model
Related work items: #23754
2026-06-18 10:27:53 +00:00
Robert Bond
c84ff3fff9
Merged PR 2399: Adds characterization coverage and documentation for CRM query field profile
...
Related work items: #23754
2026-06-18 08:04:36 +00:00
Robert Bond
a6941a8a06
Merged PR 2398: amends to appeal policy
...
Related work items: #23754
2026-06-18 05:17:10 +00:00
Robert Bond
475aa965b4
Merged PR 2395: helpers for dashboard domain layer
...
Related work items: #23754
2026-06-17 16:06:09 +00:00
Robert Bond
0b66a0e1d4
Merged PR 2394: adjusting reps domain logic
...
Related work items: #23754
2026-06-17 10:55:32 +00:00
Robert Bond
ca244e5de1
Merged PR 2392: updated project types for new sub grid
...
updated project types for new sub grid
Related work items: #23752
2026-06-16 17:44:04 +00:00
Robert Bond
3efaafdb72
Merged PR 2388: added updated copy for contact us
...
added updated copy for contact us
Related work items: #23482 , #23483
2026-06-16 08:25:05 +00:00
Robert Bond
1e14fbc709
Merged PR 2387: update welsh translations for new appeal pdf
...
update welsh translations for new appeal pdf
Related work items: #23562
2026-06-15 12:03:28 +00:00
Robert Bond
628b2b71fd
Merged PR 2385: update unsubscribe
...
update unsubscribe
Related work items: #23796
2026-06-11 13:04:21 +00:00
Robert Bond
3297fe4f16
Merged PR 2384: updated pdf to show correct lang prefs on appeal pdf
...
updated pdf to show correct lang prefs on appeal pdf
Related work items: #23562
2026-06-11 10:51:38 +00:00
Robert Bond
7b1faf0bac
Merged PR 2382: missing import
...
missing import
Related work items: #23780
2026-06-10 12:41:04 +00:00
Robert Bond
c6e42fc314
Merged PR 2381: ROW case stage updates
...
Related work items: #23564 , #23779 , #23780
2026-06-10 10:12:11 +00:00
Robert Bond
7e47340326
Merged PR 2377: added enlarge map view on dnsapplication list
...
added enlarge map view on dnsapplication list
Related work items: #23774
2026-06-09 10:04:32 +00:00
Robert Bond
c39e4bcc9a
Merged PR 2375: update representation policy
...
## Summary
Introduces a new `representation-policy` domain boundary and incrementally extracts low-risk representation entry policy logic while preserving existing behaviour.
This PR intentionally stops before extracting ROW and Advert entry rules because characterization uncovered behavioural differences between consumers that require a separate business decision.
## What Changed
Added:
```text
lib/domain/representation-policy/
```
Including:
- `resolveRepresentationWindow(...)`
- `isRepresentationWindowOpen(...)`
- `isRepresentationWindowClosed(...)`
- `canShowRepresentationButtonForAppealType(...)`
- `canStartHouseholderRepresentation(...)`
- `canStartCpoRepresentation(...)`
Updated consumers:
```text
components/case/summary/utils/representationEntry.js
components/search/repsonresults.js
```
## Extracted Behaviour
### Representation Window Calculation
Centralised shared representation window logic and adopted it in both consumers.
### Appeal Type Entry Gating
Centralised excluded appeal-type logic while preserving existing behaviour.
### Householder Rule
Centralised Householder (`846040004`) entry rule.
Preserved behaviour:
```text
Householder representations can only be started by LPAs.
```
### CPO Rule
Centralised CPO (`846040019`) entry rule.
Preserved behaviour using:
```text
pinswg_startdate
pinswg_statementduedate
```
No fallback date broadening introduced.
## Characterization Added
### ROW (`846040015`)
Documented:
- hearing vs non-hearing behaviour
- specialist-process field behaviour
- date gating
- appeal-type coercion behaviour
### Advert (`846040018`)
Documented:
- LPA/non-LPA behaviour
- specialist-process behaviour
- appeal-type coercion behaviour
## Important Findings
### ROW Divergence
Summary and Search consumers currently behave differently when only:
```text
pinswg_speacialistcaseprocess
```
exists.
### Advert Divergence
Summary and Search consumers currently use different specialist-process resolution paths.
### CRM Compatibility
Both fields remain in production use and must be preserved:
```text
pinswg_specialistcaseprocess
pinswg_speacialistcaseprocess
```
## Documentation
Added:
```text
lib/domain/representation-policy/README.md
```
Documenting:
- ownership
- non-goals
- CRM compatibility requirements
- ROW divergence
- Advert divergence
- future extraction constraints
## Validation
Executed during the slice series:
```bash
node tests/phase22/representation-window.test.cjs
node tests/phase22/representation-appeal-type-entry-gating.test.cjs
node tests/phase22/representation-householder-entry-rule.test.cjs
node tests/phase22/representation-cpo-entry-rule.test.cjs
node tests/phase22/representation-row-entry-rule.test.cjs
node tests/phase22/representation-advert-entry-rule.test.cjs
npm run lint
```
All passing.
## Out of Scope
No changes to:
- submission/finalisation
- uploads
- dashboards
- CRM/OData queries
- API routes
- Redux state
- translations
- blocked-message rendering
- CTA l...
2026-06-08 10:51:02 +00:00
Robert Bond
9595ad86df
Merged PR 2374: addeding domain layer extrraction
...
# Summary
This PR introduces a **Case Lifecycle Domain Boundary** to centralize lifecycle decision logic and reduce coupling within the appeals application.
The work is **behaviour-preserving** and introduces no intentional changes to business rules, CRM integrations, translations, dashboards, API routes, or user-facing functionality.
## What was added
New lifecycle boundary:
```text
lib/domain/case-lifecycle/
```
Key responsibilities extracted:
- Specialist process normalization
- Appeal type mapping
- Specialist process stage override mapping
- Stage case-type resolution
- Stage catalogue lookup
- Closed-case status recognition
- Lifecycle stage index resolution
- Lifecycle stage status assignment
## Behaviour preserved
Characterization tests were added before each extraction to preserve:
- Appeal type mapping and aliases
- Specialist process handling
- Lifecycle stage progression
- Closed-case handling
- Status assignment (`complete`, `in-progress`, `not-started`)
- Existing ROW behaviour
- Existing `statuscode` lifecycle semantics
Closed-case recognition remains unchanged for:
```text
1000
5
6
846040013
846040059
846040060
```
## Documentation
Added:
```text
lib/domain/case-lifecycle/README.md
```
Documenting:
- Boundary ownership
- Non-goals
- Lifecycle invariants
- Known architectural constraints
- Future extraction roadmap
## Testing
Added lifecycle characterization coverage for:
- Stage wrapper behaviour
- Specialist process normalization
- Appeal type mapping
- Specialist process stage mapping
- Stage case-type resolution
- Stage catalogue lookup
- Progress behaviour
- Closed-case status handling
- Stage index resolution
- Stage status assignment
## Validation
- Lifecycle characterization tests passed
- `npm run lint` passed with no errors
## Out of Scope
No changes to:
- Stage catalogue ownership
- Representation eligibility
- Dashboard calculations
- CRM/OData queries
- API routes
- Redux state
- EN/CY translations
- Event visibility logic
## Risk
**Low risk**
The refactor was delivered through small, characterization-first slices with no functional changes intended.
Related work items: #23527
2026-06-08 09:34:30 +00:00
Robert Bond
2262f3ab74
Merged PR 2369: added dns sips case close message and in welsh
...
added dns sips case close message and in welsh
Related work items: #23555
2026-06-03 14:48:58 +00:00
Robert Bond
d0cae0fff1
Merged PR 2368: case stage ROW updates and case closed variants and adv search fix
...
Related work items: #23551 , #23555 , #23559
2026-06-03 12:44:59 +00:00
Robert Bond
a9be19b901
Merged PR 2367: updated description and welsh
...
updated description and welsh
Related work items: #23551
2026-06-02 14:46:55 +00:00
Robert Bond
da07b4873e
Merged PR 2365: update welsh case stage
...
update welsh case stage
Related work items: #23359
2026-06-02 12:40:08 +00:00
Robert Bond
4ced5d0f42
Merged PR 2363: updated status and welsh
...
updated status and welsh
Related work items: #23319 , #23359
2026-06-02 08:34:51 +00:00
Robert Bond
18a05d4be8
Merged PR 2357: dashboards in admin for appeals and lpa
...
dashboards in admin for appeals and lpa
Related work items: #23527
2026-05-29 16:35:27 +00:00
Robert Bond
b71a93076b
Merged PR 2352: adjusted query to only show published
...
adjusted query to only show published
Related work items: #23447
2026-05-28 11:02:18 +00:00
Robert Bond
3f2b8807e7
Merged PR 2351: fix csp by making it server side
...
Related work items: #23447
2026-05-28 10:41:11 +00:00
Robert Bond
24cd7000f7
Merged PR 2350: added in count on case status dropdown
...
added in count on case status dropdown
Related work items: #23447
2026-05-28 09:02:30 +00:00
Robert Bond
905c82f598
Merged PR 2349: updated dropdown to show all new case stages
...
updated dropdown to show all new case stages
Related work items: #23447
2026-05-28 07:05:06 +00:00
Robert Bond
26e8464d46
Merged PR 2348: corrected welsh version of representations period
...
corrected welsh version of representations period
Related work items: #23319
2026-05-27 14:29:20 +00:00
Robert Bond
1df5573fce
Merged PR 2346: updated close status on non val
...
updated close status on non val
Related work items: #23365
2026-05-26 16:11:48 +00:00
Robert Bond
25485d73ed
Merged PR 2345: typo
...
typo
Related work items: #23365
2026-05-26 14:57:34 +00:00
Robert Bond
6d8d56d745
Merged PR 2343: update to non val
...
Related work items: #23365
2026-05-26 13:42:09 +00:00
Robert Bond
f6bbaa5c1d
Merged PR 2342: ammend case status and descriptions per bugs
...
ammend case status and descriptions per bugs
Related work items: #23319 , #23357 , #23359 , #23365 , #23394
2026-05-26 07:50:33 +00:00
Robert Bond
4f3e3f5183
Merged PR 2338: updated welsh translation
...
updated welsh translation
Related work items: #23319
2026-05-21 12:28:36 +00:00
Robert Bond
a6cc030612
Merged PR 2333: updated welsh link on events tab
...
updated welsh link on events tab
Related work items: #22423
2026-05-19 15:26:33 +00:00
Robert Bond
2e98be3b65
Merged PR 2331: updated welsh text
...
updated welsh text
Related work items: #23094
2026-05-19 05:23:14 +00:00
Robert Bond
149238dd4e
Merged PR 2330: welsh translation update and reps and site visit fix
...
welsh translation update and reps and site visit fix
Related work items: #23087 , #23088
2026-05-18 12:18:03 +00:00
Robert Bond
b6bd543527
Merged PR 2329: welsh link for events
...
welsh link for events
Related work items: #23054
2026-05-18 08:50:58 +00:00
Robert Bond
5967665138
Merged PR 2325: missing welsh translations on search results
...
missing welsh translations on search results
Related work items: #23044
2026-05-15 15:08:53 +00:00
Robert Bond
9860f47cbe
Merged PR 2324: updated status message for case started/case in progrsss
...
updated status message for case started/case in progrsss
Related work items: #23064
2026-05-15 13:14:23 +00:00
Robert Bond
5bf1393020
Merged PR 2322: removed the ? on event
...
removed the ? on event
Related work items: #23063
2026-05-15 10:33:01 +00:00
Robert Bond
5a8fd73bfd
Merged PR 2321: updated welsh status on search results and status tab descriptions
...
updated welsh status on search results and status tab descriptions
Related work items: #23044 , #23045
2026-05-14 15:03:36 +00:00
Robert Bond
c2ae6964f9
Merged PR 2318: auth stabilisation: extract shared myportal auth guard helper
...
auth stabilisation: extract shared myportal auth guard helper
ntroduces a small shared SSR helper (resolveMyPortalAuthContext) to standardize common myportal auth/session guards (session presence, session user identity, and pinsUser cookie) with preserved reason-coded diagnostics and signin redirect behavior. Migrates exactly two loaders (pages/myportal/searchresults.js, pages/myportal/addresssearchresults.js) to use the helper while keeping loader-specific UPSTREAM_FAILURE and CONTACT_LOOKUP_FAILED logic unchanged.
Related work items: #23020
2026-05-14 10:38:45 +00:00
Robert Bond
4fb62a6773
Merged PR 2317: Auth stabilisation: add reason-coded guards to MyPortal loaders
...
Adds incremental auth/session hardening across myportal loader paths (loadMyPortalAppealPage, searchresults, addresssearchresults) with explicit guard ordering and reason-coded diagnostics for missing session, missing session identity, missing cookie identity, contact/account lookup failures, and upstream dependency failures. Includes targeted Phase22 loader guard tests and keeps redirect behaviour policy unchanged.
Related work items: #23020
2026-05-14 10:27:12 +00:00
Robert Bond
d0b2fd077a
Merged PR 2315: Auth stabilistatiion and hardening
...
Related work items: #23020
2026-05-14 08:55:49 +00:00
Robert Bond
d295a507ac
Merged PR 2303: updated company name to pinswg_companyname
...
updated company name to pinswg_companyname
Related work items: #22774
2026-05-11 10:47:39 +00:00
Robert Bond
4f90c9a058
Merged PR 2302: updated text as per vickis request
...
updated text as per vickis request
Related work items: #22987
2026-05-11 09:52:19 +00:00
Robert Bond
0b02acf035
Merged PR 2300: updated final comments matching string
...
updated final comments matching string
Related work items: #22842
2026-05-08 10:31:27 +00:00
Robert Bond
12a28a4be0
Merged PR 2296: added in statuscode and summary description
...
added in statuscode and summary description
Related work items: #22612 , #22616
2026-05-07 10:20:28 +00:00