toga-ai 1.0.1191 → 1.0.1192

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.
@@ -28,6 +28,6 @@
28
28
  | [V2 request retry (Prong A) — deadlock AND retriable unique-key race, route-scoped in-process replay](features/v2-deadlock-retry.md) | api2's front-controller "Prong A" that detects a retriable concurrency failure (deadlock 1213/1205 or unique-race 1062) and replays the whole request in-process |
29
29
  | [V2 REST query contract (params, where grammar, encoding, ACL behavior)](features/v2-rest-query-contract.md) | What an **HTTP client** has to get right to query the Toga v2 REST API: which query params are recognized, the exact `where` grammar, how the query string is (n |
30
30
  | [V2 reverse hasMany collections must be named in the fetch fields whitelist](features/v2-reverse-hasmany-fields-whitelist.md) | Why a reverse hasMany collection (a parent's child records that FK back to it) is absent unless named in the fetch `fields` list; open when a related collection |
31
- | [AWS CodePipeline Deployment via CodeConnections (GitHub → Elastic Beanstalk)](workflows/codepipeline-codeconnections-deploy.md) | How 2.0 apps deploy (CodePipeline → CodeConnections → EB), the per-env `_underscore` branch resolution, the production auto-deploy + Rolling/batch-1 policy, and |
31
+ | [AWS CodePipeline Deployment via CodeConnections (GitHub → Elastic Beanstalk)](workflows/codepipeline-codeconnections-deploy.md) | How 2.0 apps deploy (CodePipeline → CodeConnections → EB), the standard env branch set in every 2.0 repo, the per-env `_underscore` branch resolution, the produ |
32
32
  | [New Environment Configuration & Provisioning (api2)](workflows/environment-configuration-and-provisioning.md) | The three things that must be right for a new 2.0 API environment to serve requests (config conventions, `Core.DatabaseHosts` data, DB seeding incl. |
33
33
  | [api2 instance frozen by php-fpm out of memory (triage and recovery)](workflows/php-fpm-out-of-memory-triage.md) | How to spot, confirm and recover an api2 EB instance that the kernel OOM-killer has frozen (every call 60 s then 504, EB "No Data", yet EC2 checks pass and CPU |
@@ -6,8 +6,8 @@ project: API
6
6
  client: shared
7
7
  type: workflow
8
8
  status: active
9
- updated: 2026-10-12
10
- owners: ["jcardinal", "mhammontree", "bala", "apeterson"]
9
+ updated: 2026-10-29
10
+ owners: ["jcardinal", "mhammontree", "bala", "apeterson", "rgirish"]
11
11
  files:
12
12
  - api2/.platform/hooks/postdeploy/060_register_instance_to_shared_application_load_balancer.sh
13
13
  - api2/ebs/register_instance_to_shared_application_load_balancer.php
@@ -19,13 +19,20 @@ related:
19
19
  - ../../../standards/frontend-deploy.md
20
20
  ---
21
21
 
22
- How 2.0 apps deploy (CodePipeline → CodeConnections → EB), the per-env `_underscore` branch resolution, the production auto-deploy + Rolling/batch-1 policy, and the Source-stage GitHub-error / stale-instance traps; open when deploying, promoting a change, or triaging a pipeline failure.
22
+ How 2.0 apps deploy (CodePipeline → CodeConnections → EB), the standard env branch set in every 2.0 repo, the per-env `_underscore` branch resolution, the production auto-deploy + Rolling/batch-1 policy, and the Source-stage GitHub-error / stale-instance traps; open when deploying, promoting a change, or triaging a pipeline failure.
23
23
 
24
24
  ## Summary
25
25
 
26
26
  2.0 apps (`api2`, `_underscore`) deploy through **AWS CodePipeline**. The Source stage pulls from GitHub via a **CodeConnections** connection (the modern replacement for CodeStar Connections), backed by the **"AWS Connector for GitHub" GitHub App** installed on the `agilantsolutions` org. A single pipeline can have multiple Source actions sharing one connection (e.g. `agilantsolutions/api2` and `agilantsolutions/_underscore` on the same connection ARN). Deployment target is Elastic Beanstalk.
27
27
 
28
- **Branch model (which branch deploys where).** The application repos (`_underscore`, `api2`, `toga2-supply`) deploy from **long-lived per-env branches** — `_beta`, `_production` (and `_stage`, etc.) — not from `_main`. **api2 pulls `_underscore`'s matching `_<env>` branch at EB build time**, so promoting a shared `_underscore` change to an env means merging it into that `_underscore` `_<env>` branch (the api2 build then picks it up). **`dbchanges2` has only `_main`** — its migrations are applied **per-environment by the team's process**, decoupled from the app branches; a code deploy does not run migrations. So a full feature promotion to an env = apply the `dbchanges2` migrations to that env **and** deploy the app-repo `_<env>` branches.
28
+ **Branch model (which branch deploys where).** The application repos (`_underscore`, `api2`, `toga2-supply`) deploy from **long-lived per-env branches** — `_beta`, `_production` (and `_stage`, etc.) — not from `_main`. **api2 pulls `_underscore`'s matching `_<env>` branch at EB build time**, so promoting a shared `_underscore` change to an env means merging it into that `_underscore` `_<env>` branch (the api2 build then picks it up). **`dbchanges2` migrations are applied per-environment by the team's process**, decoupled from the app branches (its working branch is still `_main`); a code deploy does not run migrations. So a full feature promotion to an env = apply the `dbchanges2` migrations to that env **and** deploy the app-repo `_<env>` branches.
29
+
30
+ **Standard env branch set (all 2.0 repos, TRUE-83396, 2026-10-29).** Every 2.0 repo in `agilantsolutions` has these 8 branches: `_dev`, `_qa`, `_stage`, `_uat`, `_hotfix`, `_production`, `_demo`, `_sandbox`. Repos: `api2`, `_underscore`, `worker2`, `dbchanges2`, `apiproxy`, `saml`, `toga2-hub`, `toga2-commerce`, `toga2-supply`, `toga2-view`, `toga25-supply`, `toga25-desk`, `toga25-iq`, `toga2-template`, `toga25-blox`.
31
+ - New branches were cut from each repo's `_production`. Branches that already existed were left as they were (not reset).
32
+ - `dbchanges2`, `apiproxy`, `toga25-iq`, `toga2-template`, `toga25-blox` had no `_production`: it was cut from `_main`, then the other 7 from it. Their GitHub default branch is still `_main`.
33
+ - `toga-blox` does not exist in the org (closest: `toga-blox-npm`) — skipped, has none of the 8.
34
+ - Older env branches still exist next to them (`_sandbox-dev`, `_sandbox-client`, `_qa-alpha`/`-beta`/`-gamma`/`-hotfix`/`-task`, `_qc-*`, `_client-*`, `_alpha`/`_beta`/`_gamma`, `toga25`). The new `_sandbox` and `_qa` are separate branches, not renames.
35
+ - **No pipeline watches any of the 8 new names except `_production` and `_stage`** (checked 2026-10-29, accounts 654654170868, 975050298201, 502614707982; us-east-1 + us-west-2). Existing watches: `_production` → `api-production-1/2`, `webhook-production`, `Worker-Production`, `saml-production`, non-prod `API-Demo`; `_stage` → `API-Stage`, `API-QC-Performance`, `API-QC-Security`. Once a pipeline points at a new branch, every push to it deploys.
29
36
 
30
37
  > **Not every EB env pulls `_underscore` from its `_<env>` branch — check `git.<env>.json`.** The beta env **`API-Sandbox-Dev`** does **not** deploy `_underscore` from `_beta`. Its `.platform/hooks/prebuild/git.sh` `rm -Rf`s and **re-clones `_underscore` from the branch named in `.ebextensions/git.<env>.json`** — for this env, `git.sandbox-dev.json` → branch **`_sandbox-dev`** — **overwriting the CodePipeline-supplied copy.** So merging a change into `_beta` does nothing for this env; you must push it to **`_sandbox-dev`**. Always confirm the exact env↔branch mapping in the env's `git.<env>.json` before assuming `_<env>` applies.
31
38
 
@@ -119,6 +126,7 @@ aws codeconnections get-connection --connection-arn "<CONN_ARN>" --region "$REGI
119
126
  - **On-instance composer install (when a dep is missing post-deploy).** If a Composer dep is missing on the running instance (e.g. `Class "FPDF" not found` because `composer.lock` wasn't committed), you can install it on the box over SSH/PuTTY — but `composer require setasign/fpdf:^1.8` must have **no space** after the colon (`fpdf: ^1.8` parses `^1.8` as a separate package and errors), and run it as the web app user / `chown` the result so the webserver can read `vendor/`. The real fix is to **commit `composer.lock`** so EB's `composer install` picks it up — the on-instance install is a stopgap that a redeploy wipes.
120
127
 
121
128
  ## Change history
129
+ - 2026-10-29 — Added the standard 8 env branches in all 2.0 repos and which ones pipelines watch (TRUE-83396) (rgirish)
122
130
  - 2026-10-12 — Added prod Approve-stage gotcha and `_underscore`-first merge order (TRUE-82705) (jcardinal)
123
131
 
124
132
  ## Related
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toga-ai",
3
- "version": "1.0.1191",
3
+ "version": "1.0.1192",
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",