toga-ai 1.0.369 → 1.0.370

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,5 +8,5 @@
8
8
  | [Rate SAML SSO](features/saml-sso.md) | 2.0 | Rate uses Azure AD as its IdP (`login.rate.com`). | _underscore/Model/Rate/ClientAuthentication.php, saml/Controller/Index.php, toga2-view/src/hooks/useAuthenticationFlow.ts |
9
9
  | [Service Card Entitlement Display](features/service-card-entitlements.md) | 2.0 | Rate's home and services pages display one service card per purchased entitlement. | src/components/ServiceCard/ServiceCard.tsx, src/components/ServiceCard/index.ts, src/hooks/useBundleServices.ts, src/pages/Home/api/homeApi.ts, src/pages/Home/view/HomePage.tsx, src/pages/Home/viewModels/useHomePageViewModel.ts, src/pages/Services/view/ServicesPage.tsx, src/pages/Services/viewModels/useServicePageViewModel.ts |
10
10
  | [Rate Service-Purchase Confirmation Emails (Tech / Warranty)](features/service-purchase-emails.md) | 2.0 | When a Rate customer purchases a service, a confirmation email is sent. | _underscore/Model/Rate/Entitlement.php, worker2/Worker/Notification/EmailTemplate.php, dbchanges2/Client_Rate/2026-06-30a - Rate purchase email templates.sql |
11
- | [Rate Whole Home Warranty Per-Address Purchase Guard](features/whole-home-warranty-purchase-guard.md) | 2.0 | > **⚠ NOT IN PRODUCTION (as of 2026-07-17).** TRUE-79533 is **not** merged to `_production`. | _underscore/Model/Rate/Entitlement.php, _underscore/Model/Client/Address.php, dbchanges2/Client_Rate/2026-07-07a - WholeHomeWarrantyPerAddressGuard.sql, test/@Mark/Rate/verify_wholehome_per_address_guard.php |
11
+ | [Rate Whole Home Warranty Per-Address Purchase Guard](features/whole-home-warranty-purchase-guard.md) | 2.0 | > **⚠ BETA-VERIFIED, NOT IN PRODUCTION (as of 2026-07-17).** TRUE-79533 is now merged to > `_beta` (both `_underscore` and `dbchanges2`), applied to the beta `C | _underscore/Model/Rate/Entitlement.php, _underscore/Model/Client/Address.php, dbchanges2/Client_Rate/2026-07-07a - WholeHomeWarrantyPerAddressGuard.sql, test/@Mark/Rate/verify_wholehome_per_address_guard.php |
12
12
  | [Rate](profile.md) | 2.0 | Rate is a mortgage/lending client. | |
@@ -19,12 +19,14 @@ related:
19
19
  - ../../../2.0/apps/_underscore/features/address-validation.md
20
20
  ---
21
21
 
22
- > **⚠ NOT IN PRODUCTION (as of 2026-07-17).** TRUE-79533 is **not** merged to `_production`.
23
- > Its `_underscore` + `dbchanges2` PRs are still OPEN / "BACK-END REVIEW" (git-verified: commit
24
- > `be5002f4` is contained only in branches `TRUE-79533` and `_beta`, never `_production`). An
25
- > earlier belief that it "shipped weeks ago" is incorrect — TRUE-79251 (purchase emails) shipped,
26
- > this guard did not. The branch is being caught up to `_production` now. See the
27
- > **shared-interceptor merge hazard** gotcha below before merging.
22
+ > **⚠ BETA-VERIFIED, NOT IN PRODUCTION (as of 2026-07-17).** TRUE-79533 is now merged to
23
+ > `_beta` (both `_underscore` and `dbchanges2`), applied to the beta `Client_Rate` DB, deployed,
24
+ > and **PM Paulina successfully tested the Whole Home Warranty purchase flow on beta — it works.**
25
+ > It is still **not** merged to `_production`: the `_underscore` + `dbchanges2` `TRUE-79533` PRs to
26
+ > `_production` remain the open path, and the deliberate production promotion is the only remaining
27
+ > step. An earlier belief that it "shipped weeks ago" is incorrect — TRUE-79251 (purchase emails)
28
+ > shipped, this guard did not. See the **shared-interceptor merge hazard** gotcha below and the
29
+ > **beta unblock procedure** note before merging to `_production`.
28
30
 
29
31
  ## Summary
30
32
 
@@ -164,6 +166,17 @@ live carrier waterfall is opt-in via `RUN_LIVE=1` (defaults off). Verified **18/
164
166
  two failures (undefined class constant, EV-8 regression) are runtime, not syntax. Verify with
165
167
  `test/@Mark/Rate/verify_wholehome_per_address_guard.php` (18/18 against `Client_Rate`,
166
168
  carrier calls off).
169
+ - **Beta unblock procedure (how the broken `_beta` was fixed — 2026-07-17).** To repair the
170
+ partially-merged/broken `_beta` state (the mis-resolved `_production`→`_beta` merge above): merge
171
+ `TRUE-79533` → `_beta` resolving `Entitlement.php` by taking the TRUE-79533 version wholesale
172
+ (`git checkout TRUE-79533 -- Model/Rate/Entitlement.php`); do the same on `dbchanges2` to bring
173
+ the `2026-07-07a` migration onto `_beta`; apply that migration to the beta `Client_Rate` schema
174
+ (its **step-4 `ApiPayloadInterceptors` PRE/POST row** is the load-bearing part that makes
175
+ `prePost` fire — the `POST/POST → postPost` row already existed on beta); then redeploy the beta
176
+ env (api2 beta pulls `_underscore` at deploy). Note the `git checkout <branch> -- <file>`
177
+ wholesale-take shortcut is only safe here because the *other* interceptor concerns (TRUE-79251
178
+ passThrough / EV-8) already live on `TRUE-79533`; a straight `_production` conflict still needs
179
+ the hand-merge described above.
167
180
  - **TOCTOU on the uniqueness check (accepted).** The check-then-persist dedup is **not**
168
181
  lock-guarded. Two truly concurrent same-address WH purchases could both pass. Accepted for
169
182
  sequential purchases; documented in code.
@@ -180,6 +193,13 @@ live carrier waterfall is opt-in via `RUN_LIVE=1` (defaults off). Verified **18/
180
193
 
181
194
  ## Change history
182
195
 
196
+ - 2026-07-17 — **Beta-verified** (TRUE-79533): corrected code merged to `_beta` (`_underscore` +
197
+ `dbchanges2`), `2026-07-07a` migration applied to the beta `Client_Rate` DB, beta redeployed, and
198
+ **PM Paulina successfully tested the WH purchase flow on beta.** Recorded the **beta unblock
199
+ procedure** (take the TRUE-79533 `Entitlement.php` wholesale via `git checkout`, apply the
200
+ migration whose step-4 PRE/POST interceptor row makes `prePost` fire, redeploy). Status remains
201
+ pre-production — the `_underscore` + `dbchanges2` PRs to `_production` are still the open path.
202
+ (mhammontree)
183
203
  - 2026-07-17 — **Status corrected to `draft` / not-in-production** (TRUE-79533): git-verified the
184
204
  guard was never merged to `_production` (PRs open / back-end review), contrary to a belief it had
185
205
  shipped. Documented the **shared-interceptor merge hazard** with TRUE-79251 and the correct
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.369",
3
+ "version": "1.0.370",
4
4
  "description": "TOGA Technology Team Claude Knowledge System — shared AI coding harness with skills, knowledge base CLI, and project installer for Claude Code.",
5
5
  "keywords": [
6
6
  "claude",