knowledge(upgrade): upgrade code must not use ChangeCompany (#210)

* knowledge(upgrade): upgrade code must not use ChangeCompany

Addresses ADO bug 651092. Upgrade and feature data update code must run in the
context of the company being upgraded; ChangeCompany leaves triggers, events and
upgrade tags in the calling company and races the target company's own upgrade.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Address review: self-contained samples, fixture registration, scoped feature routing

- Declare the sample table in both companions so each compiles on its own.
- Register no-changecompany-in-upgrade and changecompany-runs-triggers-in-the-calling-company in review-fixtures.json.
- Limit the Feature Data Update rule to UpdateData/AfterUpdate and their reachable helpers; read-only IsDataUpdateRequired/ReviewData preflight is permitted and shown as a clean control.
- Add feature data update execution to al-upgrade-review applicability and not-applicable scope.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Clarify cross-company upgrade sequencing without race claims

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Jesper Schulz-Wedde 2026-10-02 11:35:11 +02:00 • committed by GitHub
parent 206c5feff4
commit 488ce50775
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 186 additions and 8 deletions

View file

@ -37,7 +37,10 @@
]
},
"events": {
"article": "reset-ishandled-only-when-the-value-can-carry-over"
"articles": [
"reset-ishandled-only-when-the-value-can-carry-over",
"changecompany-runs-triggers-in-the-calling-company"
]
},
"finance": {
"articles": [
@ -167,7 +170,8 @@
"upgrade": {
"articles": [
"initvalue-does-not-update-existing-rows",
"upgrade-tag-logic-must-not-nest-deeply"
"upgrade-tag-logic-must-not-nest-deeply",
"no-changecompany-in-upgrade"
],
"context": "The extended table existed in the previous app version and already contains rows."
},