New React Backend Repository
Find a file
Alexandre Brandizzi 582af8fb2c fix(workorders): compare manual POC against the followed contact, not any site contact
The manual POC "follow the site" clear-rule compared the edit against every
live Site contact. A work order only ever displays one of them, so editing to
a different live contact (Site has Alice primary and Bob; WO shows Alice; edit
to Bob) matched, cleared the override, and left the row showing Alice with no
audit row written — the SH-379 symptom on a different input. A work order with
a linked WorkOrderContacts POC hit the same bug when the dispatcher typed the
Site's primary: the override cleared and the linked contact showed instead.

Compare the edit against the single contact the work order actually follows —
the linked WorkOrderContacts POC, or else the Site primary (ResolvePrimary) —
matching the board projection's override -> linked -> site precedence, and
store the override whenever the edit differs from it. The create path in
WorkOrderBoardCreateService had the same any-contact rule and gets the same
fix; a supplied PocContactId that is not a live Site contact leaves no follow
target, so the typed POC is stored.

Replaces MatchesAnySiteContact with Matches(name, phone, contact); comment and
PR-body wording updated to state the followed-contact rule. Adds tests for the
second-site-contact edit, the linked-contact-differs edit, and the
second-site-contact create case.
2026-09-18 18:56:29 -03:00
.ebextensions fix(eb): configure work-order webhook HMAC secret source (#41) 2026-07-30 11:44:43 -03:00
.github fix(cd): grant caller id-token write for reusable deploy workflows 2026-09-18 12:42:42 -04:00
Api.SeaHavenIndustries fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
Api.SeaHavenIndustries.Tests fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
Data.SeaHavenIndustries Merge branch 'dev' into feat/ab/sh-207-uplift-queue-flags 2026-09-17 13:17:04 -04:00
docs fix(observability): preserve backend release identity (#114) 2026-09-15 16:08:14 -03:00
postman docs: add complete dev Postman API collection (#119) 2026-09-15 16:39:49 -03:00
scripts chore(terraform): complete staging environment adoption (#156) 2026-09-18 15:13:18 -04:00
SeaHaven.DataServices fix(workorders): persist manual POC override with audit and site-follow (SH-379) 2026-09-18 14:30:54 -03:00
SeaHaven.Services fix(workorders): compare manual POC against the followed contact, not any site contact 2026-09-18 18:56:29 -03:00
SeaHaven.Services.Tests feat(team-members): add member detail editing (SH-326) 2026-09-16 21:41:55 -03:00
SeaHavenIndustries chore(config): document Phase 7 feature flags in appsettings and .env.example 2026-07-13 13:23:54 -03:00
SeaHavenIndustries.Tests fix(workorders): compare manual POC against the followed contact, not any site contact 2026-09-18 18:56:29 -03:00
terraform fix(iam): scope staging githubdeploy uploads to the staging release prefix (#158) 2026-09-18 17:10:13 -04:00
.env.example feat: add API Sentry tracing (SH-298) (#105) 2026-09-04 14:11:32 -03:00
.gitattributes Initial commit 2024-09-28 14:58:36 -04:00
.gitignore feat(deploy): move dev application CD through Terraform (#102) 2026-09-03 14:12:06 +00:00
AGENTS.md chore(governance): enforce backend architecture and quality gates (#31) 2026-07-24 17:41:10 -03:00
ARCHITECTURE_AND_CODE_QUALITY.md chore(governance): enforce backend architecture and quality gates (#31) 2026-07-24 17:41:10 -03:00
BACKEND_ARCHITECTURE.md refactor: enforce backend boundaries and optimize dispatch (#30) 2026-07-24 17:35:34 -03:00
QUALITY_GATES.md chore(cd): retire leftover Terraform app CD path 2026-09-18 12:38:15 -04:00
REVIEW_AND_PR_FRAMEWORK.md refactor(cd): ship Elastic Beanstalk versions from GitHub on main 2026-09-17 15:54:31 -04:00
SeaHavenIndustries.sln test(work-orders): add Phase 0 domain unit tests 2026-07-02 09:19:28 -03:00
TODO.md chore(docs): remove Phase 7 ops markdown from PR scope 2026-07-13 13:51:34 -03:00