Skip to content

Add FP guards: field relocation to tableextension + event parameter addition (bug 642303) - #124

Merged
gggdttt merged 1 commit into
mainfrom
bcq/642303-fp-guards
Aug 4, 2026
Merged

Add FP guards: field relocation to tableextension + event parameter addition (bug 642303)#124
gggdttt merged 1 commit into
mainfrom
bcq/642303-fp-guards

Conversation

@gggdttt

@gggdttt gggdttt commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

What

Two knowledge false-positive guards that resolve the agent false positives reported in bug 642303, reproduced on BCApps PR #9607 (a deliberate "Test-Code-Reviewer-Comments" PR).

1. breaking-changes/relocating-a-field-to-a-tableextension-is-not-a-deletion.md

Moving a field out of a base table (or a base-app layer modification of one) into a tableextension that extends the same table, within the same app and keeping the same field ID and name, is a relocation — not a deletion or rename. The field still resolves on the table (Rec."Field Name" and the ID compile exactly as before), so dependent code is not broken and the obsoletion lifecycle does not apply.

The agent misread the two-sided diff (field removed from the base object, re-declared in the tableextension under the same ID) as a deleted shipped field re-added illegally, and demanded ObsoleteState = Pending staging via obsolete-table-fields-instead-of-deleting-them / obsolete-pending-to-removed-staging.

Scope: contract axis only. The guard says the move is not a deletion/rename and needs no obsoletion. It stays deliberately silent on data migration, so genuine data-loss findings on tables with persisted data are not masked.

2. events/adding-a-parameter-to-an-event-is-not-a-breaking-change.md

Adding a parameter to an event publisher does not break existing subscribers: AL binds subscribers by event name and matches their parameter list as a subset by name/type, so a subscriber that does not declare the new parameter keeps compiling and binding. The addition itself must not be reported as a breaking signature change. Complements the existing add-new-event-parameters-at-the-end (which covers the append-position concern).

Repro (PR #9607)

  • Field 7000000 "Bill No." relocated from ES layer table 17 "G/L Entry" to new tableextension "G/L Entry ES" (same ID) -> flagged High "Breaking Changes" (deleted shipped field) + Medium "Upgrade".
  • Test parameter appended to local event OnAfterCopyFromDeferralPostBuffer.

Notes

  • Both files follow the negative-clarification format: false-positive in keywords, ## Description + ## Best Practice, no sibling .al, no ## Anti Pattern.
  • knowledge-index.json regenerated locally (252 articles, both new slugs present); not committed (gitignored).
  • No engine change — false-positive suppression belongs in BCQuality knowledge per the boundary contract.

Refs: AB#642303.

…ter addition

Two knowledge false-positive guards addressing bug 642303 (agent FPs on BCApps PR #9607):

- breaking-changes: relocating a field to a tableextension in the same app under the same field ID/name is a relocation, not a deletion/rename; the field still resolves on the table, so it must not be flagged as a deleted shipped field or require ObsoleteState staging. Scoped to the contract axis; silent on data migration.

- events: adding a parameter to an event publisher does not break existing subscribers (subscribers bind by name and match a subset), so the addition itself must not be reported as a breaking signature change.
@gggdttt
gggdttt merged commit 1687b57 into main Aug 4, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant