• Third commit closing high-value gaps the user flagged in the
    verification plan.
    
    Cross-node cache coherence — LOCKED EMPIRICALLY:
    - Connected to live Redis at 118.178.19.35:16379 db=0.
    - 233 of 267 keys use Spring's `<cacheName>::<key>` separator.
    - Confirmed key shapes match @Cacheable SpEL specs:
        businessGdsconfigformsServiceGetFormconstData::{...}  (37 entries)
        gdsmoduleById::gdsmoduleById_<sBrandsId>_<sSubsidiaryId>_<sLanguage>  (2 entries)
    - Conclusion: Spring's RedisCacheManager IS the active CacheManager.
      @CacheEvict on any node clears the shared Redis store; cross-node
      coherence works without any JMS involvement. Removed the "open
      question" hedge in cache-invalidation.md.
    
    New page — Metadata-management services (xlyManage):
    - Closes the biggest documentation gap surfaced by Pass C2.
    - Catalogs the 8 large Gds*ServiceImpl classes (878+729+555+489+
      362+319+243+221 = ~3,800 lines of metadata-CRUD logic) plus
      CommonServiceImpl (56) and SysbrandsServiceImpl (125).
    - Documents the universal five-method shape every Gds*Service
      follows (get/getBysId/add/update/delete) and how it pairs with
      the corresponding Gds*Controller in xlyEntry/.../systemweb/.
    - Maps each service to its BACK admin screen.
    - Notes the cache-invalidation hookpoint (synchronous
      BusinessCleanRedisData.delCleanRedisData* on commit).
    - Added to mkdocs nav under Reference (Maintainer).
    
    Worked examples:
    - Slice 04: gdsconfigformcustomslave is empty in the dev DB
      (0 rows). Updated the open verification item to confirm this
      rather than leave the framing "depends on the deployment".
    - Slice 05: side-by-side diff of 重庆展印's Sp_SalSalesCheck vs
      the standard. Quantified differences (1714 vs 723 lines, same
      14-param signature, override adds CbxSrcNoCheck branch and
      strips temp-table aggregation, 12 sibling procs use the same
      CbxSrcNoCheck pattern). Added a copy-pasteable diff command.
    
    Honest scope acknowledgement:
    - api-reference/internal.md: explicit "what this catalog
      includes vs treats as illustrative" paragraph. ~19 framework-
      primitive controllers documented; ~52 business-domain
      controllers (workorder/salesorder/productionPlan/etc.) treated
      as illustrations of the framework at work, with grep guidance
      for maintainers who need to find them.
    
    Auto-catalog regenerated:
    - Ran scripts/gen_catalog.py against live DB. No changes
      (catalog was already current); 3081 generated pages.
    
    Pass E save trace:
    - Tried multiple angles (UI flow, hand-crafted POST with token
      in Authorization header, fetch interception). Edit-mode UI
      didn't yield a save fire under our setup (Ant Design grid +
      Vue SPA edit-mode peculiarity). Read trace remains
      fully verified end-to-end. Save body shape is documented in
      the Javadoc on BusinessBaseController.java:161-163 and
      reflected in the wiki; live save corroboration deferred again.
    zichun authored
     
    Browse Code »