Skip to content

Fold demo-build learnings: Swift 2.4 profiles recipe, checkout order-field contract, order-line seeding, update backup gate, MCP no-op rows#60

Merged
Justinvolved merged 2 commits into
v2from
fold/learnings-triage-recipes
Jul 13, 2026
Merged

Fold demo-build learnings: Swift 2.4 profiles recipe, checkout order-field contract, order-line seeding, update backup gate, MCP no-op rows#60
Justinvolved merged 2 commits into
v2from
fold/learnings-triage-recipes

Conversation

@Justinvolved

Copy link
Copy Markdown
Collaborator

Folds eight learnings from two 2026-07 demo runs (a customer build dispatch and a Swift 2.4 profiles key test) into the demo and staged-foundational skills. Version 4.11.0 — 4.9.0 and 4.10.0 are claimed by open PRs #58/#59; the CHANGELOG sequence is independent of merge order.

dw-demo-swift

  • customer-center.md §6 (new) — Swift 2.4 sign-in profiles / switch user: profiles (same-username AccessUser rows + AccessUserIsLogin, ListUserProfiles/UserProfilesTemplate, DwSwitchUserUniqueId -> StartSwitchUser) vs impersonation (AccessUserSecondaryRelation + CanImpersonate) — two mechanisms, easy to conflate; the zero-custom-code picker recipe (cloned rows, NEWID() unique ids, distinct customer numbers, master IsLogin=1, one restart; per-profile isolation free via PriceUserCustomerNumber + UseUserID); the ?ShowProfiles=1 sign-in-page picker quirk; and the platform-honesty rule — the documented 10.29+ gate does not bite on a 10.28.1-PreRelease build, so state the platform when a demo shows features the customer's GA lacks.
  • checkout-order-fields.md (new reference + routing row) — the stock delivery-date beat needs NO custom order field (EnableDeliveryDate posts into native OrderShippingDate); order-field values live in per-system-name EcomOrders columns, so a definition without its matching column breaks every order read (IndexOutOfRangeException in ExtractOrderFieldValues); MCP create_order_field always violates DW_FK_EcomOrderField_EcomFieldType (upstream bug — SQL contract documented).

Staged foundational (dw-demo-base/references/foundational/)

  • commerce-orders.md — order-line price seeding: change default currency -> restart -> THEN seed (pre-restart seeding lands x100 unit-price artifacts); qty-tier EcomPrices rows silently reprice explicit unit prices; add_products writes only unit-price columns, so backfill line/order totals and sanity-sweep in SQL. Pointer added from the dw-demo-pim order-seeding appendix.
  • setup-upgrade.md — in-place platform update gate: pre-update SELECT COUNT(*) FROM ItemList + BACKUP DATABASE, post-update counts must match — an in-place update cycle has been observed to empty ItemList/ItemListRelation/child item tables with no error; protective rule only, no root-cause claim. Routing row added in dw-demo-base SKILL.md.
  • extend-mcp-tools.md §5 — two silent no-op catalogue rows: patch_products_safe on variant EcomProducts rows echoes its input model while the row stays NULL (SQL sweep is the canonical variant-enrichment surface — canonical-setup-order.md step 14 updated to say so); copy_page with destinationParentPageId=0 lands the copy in area 1 unless areaId is passed.

Gates

  • python scripts/validate-skills.py exit 0 (0 errors, 0 warnings)
  • Sanitize grep pack: zero hits across staged diff and commit message
  • Dedup: profiles content is new (no prior ListUserProfiles/ShowProfiles coverage); order-line rules extend the existing commerce-orders seeding section; no supersedes required

…field contract, order-line seeding, update backup gate, MCP no-op rows

Folds eight learnings from two 2026-07 demo runs (a customer build dispatch and a
Swift 2.4 profiles key test). dw-demo-swift gains the customer-center profiles /
switch-user section (profiles-vs-impersonation disambiguation, zero-custom-code
picker recipe, the 10.29+/PreRelease platform-honesty rule) and a new
checkout-order-fields reference (stock EnableDeliveryDate beat, the
EcomOrderField/EcomOrders column contract, the broken create_order_field tool).
The staged foundational files gain the order-line price-seeding rules
(currency-restart-then-seed, x100 artifacts, tier repricing, totals backfill),
the in-place-update backup + ItemList content-count gate, and two silent no-op
catalogue rows (patch_products_safe on variant rows echoes its input;
copy_page defaults top-level copies into area 1 without areaId).
dw-demo-pim canonical-setup-order step 14 now names the SQL sweep as the
canonical variant-enrichment step. Version 4.11.0 (4.9.0/4.10.0 are claimed by
open PRs; the CHANGELOG sequence is independent of merge order).
@Justinvolved
Justinvolved merged commit dbd95dd into v2 Jul 13, 2026
1 check passed
@Justinvolved
Justinvolved deleted the fold/learnings-triage-recipes branch July 13, 2026 14:56
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