Skip to content

feat(erp-seed): AD_Form + ad_val_rule manifest entries (ship blocked — see body) - #91

Merged
red1oon merged 6 commits into
fable/meshdb-livewirefrom
fix/erp-seed-forms-valrules
Aug 23, 2026
Merged

feat(erp-seed): AD_Form + ad_val_rule manifest entries (ship blocked — see body)#91
red1oon merged 6 commits into
fable/meshdb-livewirefrom
fix/erp-seed-forms-valrules

Conversation

@red1oon

@red1oon red1oon commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

Adds AD_Form and ad_val_rule to scripts/ad_seed_manifest.json (383 tables), closing the manifest-side gap found in this session's fresh ERP triage against the live iDempiere Postgres. Verified against the live docker postgres/idempiere container: export_ad_seed.js lands AD_Form=49 rows (53 real, 4 inactive — exact match to a direct PG query) and ad_val_rule=332 rows (exact match), correct DDL/PK inferred from the PG catalog, zero errors, reproduced twice.

NOT shipped — a real showstopper, not a detail

Running the full export against the current live PG container produces a severely regressed seed vs. what's actually deployed:

table shipped ad_seed.db (2026-07-05) fresh export (today)
ad_client 6 1
ad_role 14 4
C_BPartner 113 18
ad_window_access 4448 1080
fact_acct present table not in manifest at all
HR_, C_Subscription present not in manifest at all
kernel_ops present not a PG table — bim-ootb's own op-log

Neither idempiere nor idempiere_test on the live container currently holds anywhere near the richer data state that built the shipped seed. The container has drifted or been reset since July. Re-exporting from it right now would regress production.

Root cause, not a fix

The shipped ad_seed.db was clearly built by a multi-stage pipeline beyond export_ad_seed.js alone — something adds fact_acct (likely from idempiere_test, the posted-oracle DB per reference_idempiere_source.md), HR module rows, subscription rows, and client-13 shard data on top of the base GardenWorld export. That stage isn't identified here — this PR stops at the manifest fix and names the gap rather than guessing at a merge.

Test plan

  • export_ad_seed.js runs clean, 383/383 tables, 0 missing
  • AD_Form/ad_val_rule row counts verified against direct PG queries
  • Diff reproduced twice, identical
  • NOT run: full seed regeneration/deploy — blocked on the pipeline gap above

Claude-Session: https://claude.ai/code/session_01GmNVMG9ZGcKygz4zXuCe6m

red1oon and others added 6 commits August 23, 2026 21:26
…fest

Extends scripts/ad_seed_manifest.json (383 tables now) so export_ad_seed.js
can carry the 2 structural categories missing from the shipped erp/ad_seed.db:
AD_Form (0 rows shipped vs 53 in the real PG) and ad_val_rule (table absent
entirely vs 332 rows real). Entries follow the established convention:
AD_Form as "canonical" case + activeOnly (matches AD_Window/AD_Reference,
the other UI-list tables); ad_val_rule as "lower" case, all rows (matches
ad_process, the other engine-consumed table).

Verified against the live docker PG (postgres/idempiere): a scratch run of
export_ad_seed.js landed AD_Form=49 rows (53 real, 4 inactive - exact match
to a direct PG query) and ad_val_rule=332 rows (exact match), both with
correct DDL/PK inferred from the PG catalog, zero errors.

NOT shipped further than this: re-running the full export against the
CURRENT live PG container produces a severely regressed seed relative to
what's actually deployed (ad_client 6->1, ad_role 14->4, C_BPartner
113->18, ad_window_access 4448->1080, and fact_acct/HR_*/C_Subscription*
missing entirely - none of those tables are even in this manifest). Neither
`idempiere` nor `idempiere_test` on the live container currently holds the
richer data state that built the shipped erp/ad_seed.db (2026-07-05) - the
container has drifted or been reset since. Shipping a fresh export now
would regress production. Root-caused and left for a real fix (locate or
rebuild the pipeline stage that adds fact_acct/HR/Subscription/client-13
shard data before re-exporting), not guessed at here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GmNVMG9ZGcKygz4zXuCe6m
…fest

Extends scripts/ad_seed_manifest.json (383 tables now, minimal diff — the
prior commit on this branch reformatted the whole file via json.dump and
is reverted) so export_ad_seed.js can carry the 2 structural categories
missing from the shipped erp/ad_seed.db: AD_Form (0 rows shipped vs 53 in
the real PG) and ad_val_rule (table absent entirely vs 332 rows real).

Entries follow the established convention: AD_Form as "canonical" case +
activeOnly (matches AD_Window/AD_Reference, the other UI-list tables);
ad_val_rule as "lower" case, all rows (matches ad_process, the other
engine-consumed table).

Verified against the live docker PG (postgres/idempiere): export_ad_seed.js
lands AD_Form=49 rows (53 real, 4 inactive - exact match to a direct PG
query) and ad_val_rule=332 rows (exact match), correct DDL/PK inferred
from the PG catalog, zero errors, re-run twice with identical results.

NOT shipped further than this: re-running the full export against the
CURRENT live PG container produces a severely regressed seed relative to
what's actually deployed (ad_client 6->1, ad_role 14->4, C_BPartner
113->18, ad_window_access 4448->1080, and fact_acct/HR_*/C_Subscription*
missing entirely - none of those tables are even in this manifest, and
neither `idempiere` nor `idempiere_test` on the live container currently
holds anywhere near the richer data state that built the shipped
erp/ad_seed.db, 2026-07-05). The container has drifted or been reset
since. Shipping a fresh export now would regress production. Root-caused,
not shipped, left for a real fix: locate or rebuild whatever pipeline
stage originally added fact_acct/HR/Subscription/client-13 shard data
before ever re-exporting against this container again.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GmNVMG9ZGcKygz4zXuCe6m
… the seed-pipeline showstopper found

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GmNVMG9ZGcKygz4zXuCe6m
# Conflicts:
#	docs/ERP_PROJECT_REVIEW.md
# Conflicts:
#	docs/ERP_PROJECT_REVIEW.md
@red1oon
red1oon merged commit 6c15471 into fable/meshdb-livewire Aug 23, 2026
1 check failed
@red1oon
red1oon deleted the fix/erp-seed-forms-valrules branch August 23, 2026 13:47
red1oon added a commit that referenced this pull request Aug 23, 2026
… 2026-08-23

Access-gate + Forms/ValRules T-0 items closed this session (bim-ootb #1495/#1496,
bim-compiler #91). Written so a new session can pick up the remaining T-0 items
(enumerable ledger, lane-index write-back) and the standing 454/476-process gap
without re-deriving today's findings from docs/ERP_PROJECT_REVIEW.md §2.1/§7/§8.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GmNVMG9ZGcKygz4zXuCe6m
red1oon added a commit that referenced this pull request Aug 23, 2026
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